董偉娜
摘要:當(dāng)下信息技術(shù)在中學(xué)生思維培養(yǎng)當(dāng)中越來越重要,故自身在大學(xué)和畢業(yè)后繼續(xù)教育中編程學(xué)習(xí)的經(jīng)驗,以及這一年中用Python和C++在編程教學(xué)當(dāng)中的實踐,思考寫下本文。
學(xué)而不思則罔,思而不學(xué)則殆。靜下心來去寫這篇文章,就是希望把這些經(jīng)驗和思考記錄下來,總結(jié)其中的一些優(yōu)秀做法,并能引起反思,為以后自身的學(xué)習(xí)和在教學(xué)過程中提供一些可能性的操作。
理論和實踐的反復(fù)結(jié)合,才能開出最美麗的花。而實踐不僅僅是教師自身,還有一位位的同學(xué),教育管理能力和編程專業(yè)教學(xué)的思考兩者并行,才是學(xué)生成長的最好方式。
關(guān)鍵詞:編程;初中;計算思維;教育
2019-2020學(xué)年,在八年級的信息課程中,我立足當(dāng)下,改良教材,分別引入了python和C++編程教學(xué),在這里分享一些實踐與思考。
一、背景:計算思維
在信息迅猛發(fā)展的今天,用計算機(jī)的相關(guān)方法和技術(shù)解決現(xiàn)實中的問題成為當(dāng)代學(xué)生的基本素質(zhì)之一。義務(wù)教育階段的信息技術(shù)課程綱要明確指出:義務(wù)教育階段的信息技術(shù)課程目標(biāo)將圍繞發(fā)展學(xué)生核心素養(yǎng)內(nèi)容展開。而計算思維作為本學(xué)科的核心素養(yǎng),在中學(xué)的信息課上至關(guān)重要,那么我們首先就要弄明白計算思維是什么,我們的初中編程和計算思維又有著怎樣的聯(lián)系。
1)計算思維概念
為了更好地培養(yǎng)學(xué)生的計算思維,2011 年,ISTE 和 CSTA 等國際組織給出其“ 操作性定義”,歸納出計算思維包含的九個核心部分,如表 1 所示。
計算思維的操作性定義把計算思維特征點歸結(jié)為:問題分析、抽象、算法與程序和自動化四個方面,這也是我進(jìn)行教學(xué)設(shè)計思路和學(xué)生計算思維評價的依據(jù),具體見表二。
2)計算思維在初中信息課程中的分析
想要了解這個,要從小學(xué)階段看起,小學(xué)階段計算思維要求學(xué)生能夠分析、界定簡單問題;掌握用自然語言描述算法的方法;初步認(rèn)識程序的三種基本結(jié)構(gòu);能夠調(diào)試和運(yùn)行簡單程序。
初中階段的計算思維要求學(xué)生能用計算思維界定問題;掌握用自然語言或流程圖描述算法的方法;掌握程序的三種基本結(jié)構(gòu);能使用編程語言,解決生活中的問題。初中階段的計算思維要求是小學(xué)階段的一個深化,學(xué)生從能夠分析簡單問題到能夠用計算思維界定問題;從初步認(rèn)識程序的三種基本結(jié)構(gòu)到掌握三種基本結(jié)構(gòu);從選擇簡單編程工具到能使用編程語言等等,具體如表 3 所示。
二、實踐出真知
在確定了順應(yīng)時代需求,了解初中階段的教學(xué)目標(biāo)后,就開始了Python的學(xué)習(xí),并經(jīng)過一個學(xué)期的Python和一個學(xué)期的C++后,碰撞出了以下一些思考:
1)編程語言的選擇-以師定教
編程語言其實就像我們?nèi)粘=涣髡f話一樣,想要表達(dá)清楚,總得選擇一種語言作為載體,方言、普通話、英語等都可以,只要交流無礙即可,但是和日常生活不同的是,信息技術(shù)發(fā)展的速度真的是太快了,語言是經(jīng)過幾千年的積累演變,可以編程語言時間短,各類又多,更新太快,目前頑強(qiáng)生長的并且在中小學(xué)教育里的主要就是Python和C++,尤其是Python已經(jīng)寫入了好幾個省份的教材中,我也是第一學(xué)期選擇了Python,因為其簡單易學(xué)、語法簡潔,入門快,學(xué)生一開始進(jìn)入的是挺快,但是第二學(xué)期,我又重新選擇了C++,這兩次經(jīng)歷讓我堅定了之后的選擇。
接下來,我會毫不猶豫的繼續(xù)進(jìn)行C++,原因有二。其一是知識儲備方面,信息學(xué)科不像語、數(shù)、英這些科目,初中要教授的知識不會有太大的變化,課堂輔導(dǎo)的參考書又多如牛毛,信息技術(shù)的更新速度,使信息課本都不能滿足我們對知識的渴求,更別說教學(xué)設(shè)計等的參考內(nèi)容,如果想真切地上好每一堂課,只能靠老師挖掘本身的儲備,多下功夫創(chuàng)造課堂,在此,Python是近些年新興語言,我也是初學(xué),大學(xué)時期學(xué)的是C++,剛開始選擇Python是新鮮,也是因為之前在市里組織的培訓(xùn)活動中進(jìn)行了學(xué)習(xí),但是通過實踐教學(xué)后,深感自身的不足,就像俗語所說,想要給學(xué)生一碗水,自己就要有一缸水,而基礎(chǔ)更是重中之重,在Python中,不能高屋建瓴地引導(dǎo)學(xué)生,這是想想就害怕的事情。其二是編程語言有共通性,雖然Python語言很受歡迎,入門快,但是初中階段,學(xué)生的能力已經(jīng)是可以理解到C++的入門的。所以綜合自身和學(xué)生的情況,做出這項決定。
2)編程內(nèi)容的界定-以學(xué)定教
在這一年的教學(xué)過過程中,有一個沖突是知識面的廣和深。就像本文之前提到的初中階段計算思維要求,學(xué)生能用計算思維界定問題;掌握用自然語言或流程圖描述算法的方法;掌握程序的三種基本結(jié)構(gòu);能使用編程語言,解決生活中的問題。這個要求不難,但是由于學(xué)科的特點,學(xué)生這方面知識較少,所以就給教學(xué)帶來了一些麻煩,但是在此過程中要堅持一個原則:初中編程的學(xué)習(xí)是體驗和簡單的問題應(yīng)用,不是系統(tǒng)開發(fā),系統(tǒng)的語言學(xué)習(xí)不是中學(xué)教學(xué)的本意,而且這也是在初中階段不可能的事情,所以在實際中一定要多關(guān)注學(xué)情,在我們制定的教學(xué)內(nèi)容上及時調(diào)整,注重培養(yǎng)學(xué)生的計算思維,培養(yǎng)他們解決問題的能力。
3)編程教學(xué)之思想先行
編程教學(xué)的前提是思想上的重視,之前提了很多計算思維,編程教學(xué),社會上也在如火如荼的開展著編程教育,可是在很多校園內(nèi),不管是從學(xué)校層面,還是學(xué)生層面,還是家長層面,大家對信息技術(shù),對編程教學(xué)的思想重視程序都或多或少的有些缺失。
在這一年的編程教學(xué)中,我對這一塊也是有了更真切的認(rèn)知。首先,編程教學(xué)的開展,不是一個人的事情,不是一個老師的事情,任何一本教材的編寫,都是有經(jīng)驗的專家教師的心血,像我們經(jīng)驗不足,又是面對著新興學(xué)科,只能自己多加重視,多取經(jīng),多實踐,摸著石頭過河;再者,信息技術(shù)非考試科目,一般的學(xué)生和家長不愿意在此學(xué)科上花費時間和精力,而由于編程的特殊性,即使是在中學(xué)階段進(jìn)行簡單的普及,同樣是需要學(xué)生花功夫在上面才可以的,否則學(xué)生兩節(jié)課之后就像是在聽天書了。另外,由于科目有一些難度,并且學(xué)生沒接觸過這一類的學(xué)習(xí)方式,所以需要一開始就吸引足學(xué)生思想上的重視和興趣,讓他們對這個學(xué)科充滿期待,樂意去學(xué),改變他們固有的認(rèn)知。
所以,對于編程教學(xué),在思想上,信息老師一方面要做各個層面的思想工作,一方面要做好面對繁難的教學(xué)研究工作的準(zhǔn)備,還要抓住學(xué)生的心,在思想上重視,提高主觀能動性,做好編程教學(xué)的先行工作。
4)編程教學(xué)之興趣引領(lǐng)
由于學(xué)生身心發(fā)展的特點,他們在這個年紀(jì)只靠思想的重視是不夠的,要根據(jù)他們的認(rèn)知現(xiàn)狀,采用貼近學(xué)生實際生活的案例,或者學(xué)生感興趣的小知識,在課堂之初就激發(fā)出他們的興趣和求知欲,引導(dǎo)他們主動去發(fā)現(xiàn)問題,吸收知識。
當(dāng)然,這就對教師整合素材的能力提出了較高的要求,對此,其實社會上也早已有了建議—跨學(xué)科融合。信息老師不妨將初一、初二,尤其是本學(xué)期的數(shù)學(xué)課本細(xì)讀一下,并在讀的過程中結(jié)合我們要學(xué)習(xí)的編程知識,一邊看,一邊思考這個是否可以用到我們的案例當(dāng)中,這樣時間久了,即使有很多不能用的,也會慢慢養(yǎng)成思考的習(xí)慣,漸漸地就會不僅僅是課本了,生活中的一些小事情也會下意識的去想一下,而這些,才是和學(xué)生的生活最貼切的東西。不過,這些不是一蹴而就的,需要日積月累,并多和同事交流,并且可以是多個科目地了解,說不定不經(jīng)意的一個小靈感,會開啟學(xué)生的一扇門呢。
比如,學(xué)生體育和我們?nèi)粘I疃紩岬绞欠癯氐膯栴},那我們是否可以做出自動計算的程序來實現(xiàn)呢,將這一活動貫穿到本節(jié)學(xué)習(xí)過程中,一下子就把抽象的程序問題轉(zhuǎn)化為生動的生活問題了。
5)編程教學(xué)之學(xué)生主體
一切教育活動都要以學(xué)生為主體,在信息技術(shù)課程中,我們是在相對較大的物理空間里,每位同學(xué)面前又都有一臺電腦,老師上課時,切換學(xué)生的電腦屏幕為教師的,每位同學(xué)只要看眼前的屏幕就可以,這雖然在技術(shù)上方便了,但是在效果上卻打了折扣,今年的疫情中,使用線上教學(xué)時,這個折扣最是嚴(yán)重,在這樣的課堂上,教師很容易把關(guān)注點更多的放在教上面,很難去關(guān)注到每一位學(xué)生的學(xué),以及學(xué)的效果。
在此,有兩點覺得可以對這一情況多多改善:
其一,教師可多多地各方面了解關(guān)注學(xué)生。學(xué)生的主體不僅僅是課堂那四十分鐘,并且信息老師有一個特別的地方是每周一個班只有一節(jié)課,但是一個老師一周有八節(jié)課,也就是說一位老師一周見將近400位同學(xué),卻只見一節(jié)課的時間,并且信息老師和班主任及其他任課老師并不在一間辦公室,聽到的學(xué)生信息也少??墒悄囊晃煌瑢W(xué)不希望他/她在老師的心目中是有一份位置的呢,不希望是被了解、被認(rèn)可的呢,所以,信息老師接手到一個班的課時,雖然我們每周和學(xué)生見面的時間少一點,但是我們可以更多的花功夫在課下,喊出他們的名字,多交流,多了解,這樣在課堂上不會發(fā)生一些尷尬的事情,同樣也讓這些主體們真切地感受到自己的主體地位,并樂于在這節(jié)課上是表現(xiàn)自己的主體。
其二,教師加強(qiáng)課堂管理的業(yè)務(wù)能力。課堂管理總是一節(jié)課效果的保證,也是每一位老師成長為經(jīng)驗型教師前重要的學(xué)習(xí)內(nèi)容,老師不能一味地討好學(xué)生,我們是要關(guān)心愛護(hù)他們的成長,但是這不意味著我們沒有原則。在課堂上,要讓學(xué)生明白,課堂就是課堂,對于我們信息課來說,不管是在教室,還是在機(jī)房,都是嚴(yán)肅而神圣的地方,教室應(yīng)有的紀(jì)律,機(jī)房當(dāng)然要有,并且還要有專門的規(guī)定;不管是室內(nèi),還是在走廊上,儀表儀態(tài)都是我們的一部分。有些同學(xué)進(jìn)入機(jī)房就興奮,坐到電腦前就不能控制自己,這些必須要嚴(yán)肅聲明。從這些一點一滴去規(guī)范我們的課堂,有獎有懲,有鼓勵有提醒,不過這不是一朝一夕的事情,可以多向本學(xué)科及其他學(xué)科老師們請教,多實踐,多改進(jìn)。當(dāng)學(xué)生在知道是上信息課時,就自覺的按著規(guī)矩來,明白這個課不能想干什么就干什么時,至少課堂管理就成功了一半。
6)編程教學(xué)之思維為重
初中編程入門時期,計算思維與流程圖為重,代碼次之。編程和數(shù)學(xué)考試不同的地方在于,數(shù)學(xué)有過程分,而編程沒有,是黑盒測試,只檢測你的運(yùn)行結(jié)果,那么,一旦是從思維上有問題,那么,即使努力檢查,可能都是徒勞。所以在入門時間,要先培養(yǎng)學(xué)生的計算思維,并學(xué)習(xí)使用流程圖來梳理其中的邏輯,這兩項解決了,再去用語法結(jié)構(gòu)代碼來實現(xiàn),那就沒多大問題了。
首先,面對問題,要運(yùn)用計算思維去進(jìn)行分析,從而發(fā)現(xiàn)問題、分析問題,找到問題的關(guān)鍵,并引導(dǎo)學(xué)生自主發(fā)現(xiàn)問題,重要的是教會他們其中的方法,在實際教學(xué)中,可以先用其感興趣的案例來引入問題,再通過幾個小提問來剖析這個問題,找到關(guān)鍵處,比如已知什么,要求什么,幫助學(xué)生將復(fù)雜問題簡單化,從而結(jié)合原有的認(rèn)知找到核心問題。從學(xué)生的思維和長遠(yuǎn)發(fā)展的角度來說,這一方面的培養(yǎng)比教會一點點代碼要重要的多。
再者,當(dāng)找到問題的關(guān)鍵后,就是怎么把問題用程序來解決,這是很多學(xué)生入門時的攔路虎。在教學(xué)時,找到核心問題后,不能直接帶學(xué)生進(jìn)行代碼學(xué)習(xí),代碼只是一些語法結(jié)構(gòu),重頭戲卻是要先理清楚程序的邏輯關(guān)系,這時,就要先帶領(lǐng)學(xué)生用語言來描述這個問題的程序應(yīng)該是怎么樣的,在教學(xué)初期,可以做成學(xué)案分發(fā),可以多找學(xué)生來說,用自然語言來說明一些簡單的算法。接著再帶領(lǐng)學(xué)生一起看流程圖,最好做成動畫的樣式來一步步呈現(xiàn),這時期學(xué)生最起碼要會看流程圖,制作簡單的流程圖出來,之后再在學(xué)案上的流程圖中呈現(xiàn)對應(yīng)的代碼,將自然語言轉(zhuǎn)換成程序語言,甚至入門的前兩節(jié)課,可以直接在教室上,養(yǎng)成好習(xí)慣,并且有了基本的編程思維和語法再去機(jī)房。
7)編程教學(xué)之評價反思
編程教學(xué)中對學(xué)生的評價和教師的反思都是重要的事情。
評價的途徑為線上和線下。除了常規(guī)的線下和學(xué)生當(dāng)面交流評價以外,由于信息技術(shù)效果的特殊性,須通過電腦這個媒介才可評價,故信息技術(shù)課程的作業(yè)和評價最好用一個專門的平臺來承載,在這個平臺中,學(xué)生可以下載學(xué)案,課件,微課,可以上傳作業(yè),可以詢問問題,教師可以直接通過平臺來批改作業(yè),給予評價。平臺上還有學(xué)生的作業(yè)評分排行,學(xué)生可以橫向看學(xué)生相互之間的,也可以縱向看自己前后期的,并且作業(yè)保存都比較省力,所以有這么一個平臺存在的話,對學(xué)生和教師來說都是比較好的。
評價的目的一方面是為了學(xué)生的發(fā)展,另一方面也是為了教師的反思,從而更好的教。從學(xué)生的表情、語言反饋和作業(yè)情況反思本節(jié)課的效果,以及下節(jié)課的計劃和本學(xué)期、學(xué)年的發(fā)展,由于編程的難度和課時的數(shù)目并不太相匹配,所以到后期會有部分學(xué)生跟不上進(jìn)度,這是很正常的,故老師要根據(jù)學(xué)生的情況和課程內(nèi)容把握好進(jìn)度,不貪快,每兩節(jié)課之間要注意銜接,溫故知新,對學(xué)生寬嚴(yán)相濟(jì),布置的任務(wù)內(nèi)容難度要分層次,學(xué)生的程序不是寫的多就好,可以少,但是靈活,多變,最好由一個項目進(jìn)行多節(jié)課,比如體重問題,早期輸入身高和體重,得知IBM值,之后再進(jìn)行判斷,是偏胖還是瘦,再之后可以循環(huán)輸入判斷。
總之,編程需要老師時刻關(guān)注學(xué)生的情況,不斷地進(jìn)行反思,從實際出發(fā),靈活安排,最大限度的培養(yǎng)學(xué)生的計算思維和能力。
三、創(chuàng)新與發(fā)展
編程教學(xué)在初步發(fā)展階段,這個時候一點點經(jīng)驗要注意總結(jié),之后的教學(xué)中會將經(jīng)驗繼續(xù)使用,教訓(xùn)多多探索改進(jìn),并注意創(chuàng)新,之后也可以嘗試使用STEAM課程框架下使用例題設(shè)計來進(jìn)行研究,也可以繼續(xù)帶領(lǐng)學(xué)生試試短期集訓(xùn),一起進(jìn)步。
總之,信息課程編程學(xué)習(xí)對學(xué)生來說重要而不易,我們一起且行且加油!
廣東省深圳市龍崗區(qū)外國語學(xué)校 廣東 深圳 518100