孟杰 龔波 沈書生
(1.南京師范大學(xué)附屬中學(xué) 新城初級中學(xué)怡康街分校,江蘇 南京 210017; 2.南京師范大學(xué) 教育科學(xué)學(xué)院,江蘇 南京 210000)
1949年的圣誕節(jié),荷蘭的吉多(Guido)為了打發(fā)節(jié)日的無趣,決定開發(fā)一種新的編程語言,也就是Python,它語法簡潔,極易上手,可以如同“膠水”一樣把許多語言黏合在一起,由于它的簡潔易懂和跨平臺等特點,逐漸受到計算機(jī)編程領(lǐng)域的重視,目前已經(jīng)成為最受歡迎的程序設(shè)計語言之一。
隨著Python語言的逐漸強(qiáng)大,不少教師開始挖掘它的教學(xué)價值,將其引入到中小學(xué)的編程課中。在編程課中如何把握學(xué)科素養(yǎng),提升學(xué)科思維,尤其是計算思維,成為教師們需要思考的問題。項目式教學(xué)作為提升學(xué)生實踐動手能力和積累項目實踐經(jīng)驗的有效途徑和方式,開始進(jìn)入到教師的視野。
項目式教學(xué)是一種圍繞項目展開的教學(xué)模式,對學(xué)生而言,是圍繞真實的情境開展學(xué)習(xí),提升自我學(xué)習(xí)和實踐創(chuàng)新能力;對教師而言,則是借助項目完成的過程,收集學(xué)生的成長數(shù)據(jù),感受學(xué)生的集成性智慧,實現(xiàn)教學(xué)相長。
何克抗[1]認(rèn)為項目式教學(xué)是在建構(gòu)主義的指導(dǎo)下,對傳統(tǒng)的教學(xué)內(nèi)容進(jìn)行重新整合,將需要掌握的內(nèi)容知識劃分為獨立的教學(xué)項目,并在每一個教學(xué)項目中設(shè)置不同的任務(wù)。胡舟濤[2]提出項目式教學(xué)就是學(xué)習(xí)者以某一個具體的學(xué)習(xí)項目為中心,通過實踐體驗、探索創(chuàng)新等方式,獲得較為完整而具體的知識。宋朝霞[3]認(rèn)為項目式教學(xué)是通過一系列完整的教學(xué)項目,以任務(wù)為導(dǎo)向,以培養(yǎng)學(xué)生的專業(yè)技能為教學(xué)首要任務(wù)的教學(xué)模式。結(jié)合以上研究可以發(fā)現(xiàn),項目式教學(xué)是以項目為主線,學(xué)生為主體,教師為引導(dǎo),立足知識內(nèi)容,包含多個學(xué)習(xí)任務(wù)的一種教學(xué)模式。
項目式教學(xué)要求理論結(jié)合實踐,應(yīng)當(dāng)具備以下特征:一是真實的項目情境。建構(gòu)主義理論認(rèn)為,學(xué)習(xí)是學(xué)習(xí)者基于自身的經(jīng)驗,通過同化、順應(yīng)等方式,與外界發(fā)生交互,實現(xiàn)從未知到已知的跨越,從而構(gòu)建新的知識網(wǎng)絡(luò)。因此,項目式教學(xué)構(gòu)造的是真實、有意義的具體問題。二是具體的學(xué)習(xí)任務(wù)。項目式教學(xué)以任務(wù)驅(qū)動為主,關(guān)注項目完成的過程。在一個完整項目中,學(xué)生需要完成一系列的子項目,而這些子項目中都包含了具體的學(xué)習(xí)任務(wù)。三是多樣的學(xué)習(xí)方式。項目式教學(xué)鼓勵學(xué)生主動參與,合作學(xué)習(xí),致力于培養(yǎng)學(xué)生處理、分析、應(yīng)用信息的多種能力,需要學(xué)生運(yùn)用多樣的學(xué)習(xí)方式,如協(xié)作學(xué)習(xí)、探究學(xué)習(xí)等,從而達(dá)到解決問題的目的[4]。四是多元的學(xué)習(xí)評價。加德納認(rèn)為智力應(yīng)該包含多樣的內(nèi)容,如語言智力、音樂智能等。項目式教學(xué)需要教師擺脫原有的評價方式,轉(zhuǎn)而從多元的角度,發(fā)現(xiàn)和開發(fā)每個學(xué)生的智力強(qiáng)項[5]。五是多變的師生角色。當(dāng)前社會,信息化飛速發(fā)展,協(xié)作的手段日益先進(jìn),教師不再是傳統(tǒng)的授課者,而變成引導(dǎo)者。而學(xué)生作為數(shù)字土著,亦可能掌握了更有效的交流手段,此時,在一定的場景下,學(xué)生就會擔(dān)任傳授的角色,而教師則成為學(xué)習(xí)者。
Python編程中實施項目式教學(xué),需要從學(xué)生和教師兩個角度思考。
1.立足核心素養(yǎng),關(guān)注計算思維
《中國學(xué)生發(fā)展核心素養(yǎng)》文件,指明了學(xué)生應(yīng)具備的,能夠適應(yīng)終身發(fā)展和社會發(fā)展需要的必備品格和關(guān)鍵能力。文件對信息技術(shù)學(xué)科的核心素養(yǎng)也進(jìn)行了解釋,包括信息意識、計算思維、數(shù)字化學(xué)習(xí)等。其中,計算思維,即運(yùn)用計算機(jī)科學(xué)的基礎(chǔ)概念進(jìn)行問題求解、系統(tǒng)設(shè)計、人類行為理解的一種思維方式[6],主要是通過算法與程序設(shè)計模塊進(jìn)行培養(yǎng)的。
目前,對于一般問題,計算機(jī)的計算性能已經(jīng)不再是求解問題的瓶頸,有關(guān)計算思維的實踐才是大部分學(xué)生需要的體驗。在實踐中,思考如何將計算問題轉(zhuǎn)化為計算機(jī)程序,成為Python編程課必須解決的問題。項目式教學(xué)可以將計算問題包裝為有趣的社會化問題,幫助學(xué)生實現(xiàn)從計算思維意識到方法,再到能力的轉(zhuǎn)變,讓學(xué)生掌握利用計算機(jī)解決計算問題的通用方法。
2.依托真實問題,實現(xiàn)教學(xué)相長
當(dāng)前中小學(xué)教師的編程水平普遍不高,但是“算法和編程”的模塊,卻在其課程標(biāo)準(zhǔn)中占有重要的地位,因此教師必須立足已有的教學(xué)方法,尋求一種有效的教學(xué)模式。而項目式教學(xué)以真實情境、協(xié)作化的特點,在Python編程教學(xué)中,展現(xiàn)出了獨有的優(yōu)勢。情境化的項目,可以激發(fā)學(xué)生的探究熱情;多樣的學(xué)習(xí)方式,可以削弱學(xué)生的畏難情緒。
在項目完成過程中,教師不僅需要幫助學(xué)生搭建“腳手架”,而且要根據(jù)學(xué)生的學(xué)習(xí)情況,收集、分析生成性的問題,調(diào)整教學(xué)航線,因此教師不得不隨時補(bǔ)充自我的知識脈絡(luò)圖,當(dāng)然,學(xué)生的集成智慧也擴(kuò)充了教師的知識庫。在項目實施過程中,教師不再僅限于引導(dǎo)者,也成為學(xué)習(xí)者和協(xié)作者。
面向Python編程開展項目式教學(xué),首先需要關(guān)注學(xué)情,從學(xué)習(xí)者的角度去思考,然后根據(jù)學(xué)習(xí)目標(biāo),落實學(xué)習(xí)過程,提升學(xué)生計算思維。
在Python語言的項目式教學(xué)中,不僅要關(guān)注學(xué)情,還要分析編程語言的特點。
1.結(jié)合學(xué)情,師生共導(dǎo)
初中學(xué)生處于青春期,好奇心強(qiáng),喜歡探索,尤其是以自我為中心的建構(gòu)活動。在這一時期開展教學(xué),要充分考慮學(xué)生學(xué)習(xí)動機(jī)的啟發(fā)和學(xué)習(xí)興趣的持續(xù)性。因此在教學(xué)過程中,需要設(shè)計學(xué)生感興趣的情境,讓學(xué)生能感受到學(xué)以致用和學(xué)習(xí)的成就感。另外,這個階段的學(xué)生自我意識強(qiáng),喜歡掌控自我,但是能力又不足,所以需要教師和他們一起主導(dǎo)學(xué)習(xí)的節(jié)奏。
2.先易后難,激發(fā)興趣
江蘇省教材中,原有的編程板塊是VB,它具有可視化的設(shè)計平臺,相較于Python,VB作為入門的編程語言,可能更易讓學(xué)生接受。但是Python簡潔清晰的語法和結(jié)構(gòu),又是其他語言無法替代的。在實際教學(xué)中,如何實現(xiàn)Python的入門呢?考慮到學(xué)生在小學(xué)階段接觸過Logo語言,這與Python中的繪圖模塊,在概念和編程方法中具有相似性,恰好可以作為切入點。這樣不僅削弱了學(xué)生的畏難心理,也可以幫助學(xué)生實現(xiàn)知識的同化、順應(yīng)。從了解Python,到體驗繪圖,再到使用Python解決實際問題,不僅提升了學(xué)生的編程興趣,也在潛移默化中培養(yǎng)了計算思維。
結(jié)合初中生年齡特點和Python編程的語言特點,筆者認(rèn)為Python編程的項目式教學(xué)模式可以如圖1所示。從學(xué)習(xí)目標(biāo)出發(fā),結(jié)合內(nèi)容,借助層級任務(wù)的實現(xiàn),實現(xiàn)思維的提升,即“目標(biāo)—任務(wù)”模式,包含五個步驟。第一步,基于課程和教材,分析學(xué)習(xí)內(nèi)容,確定學(xué)習(xí)目標(biāo);第二步,根據(jù)內(nèi)容,設(shè)計導(dǎo)入課;第三步,說明和分解項目任務(wù),幫助學(xué)生明晰每一個子任務(wù)的內(nèi)容和要求;第四步,根據(jù)層級子任務(wù),重組課堂學(xué)習(xí),設(shè)計多樣的學(xué)習(xí)任務(wù),主要使用的是任務(wù)驅(qū)動和學(xué)習(xí)單,以從幫助學(xué)生完成圍繞知識點的層級相關(guān)任務(wù),最終指向項目子任務(wù)的實現(xiàn)。在此過程中,可以采用半成品的教學(xué)策略。第五步,學(xué)生探究合作,完善項目任務(wù)。
圖1 面向初中Python編程的項目式教學(xué)模式
教學(xué)的實施,是在分析教學(xué)要素,如學(xué)情、編程語言特點、教學(xué)安排等的基礎(chǔ)上,制訂切實可行的教學(xué)計劃,并根據(jù)學(xué)習(xí)內(nèi)容,開展教學(xué)。
為從教材出發(fā),筆者首先分析和對比了七年級信息技術(shù)蘇科版和青島版教材在程序設(shè)計單元的知識結(jié)構(gòu),發(fā)現(xiàn)無論是VB編程還是Python編程,都包含了輸入輸出命令、變量、條件語句、循環(huán)語句、自定義函數(shù)(通用過程)等知識,不同之處在于算法部分,青島版是單獨列出,而蘇科版是與程序設(shè)計融合在一章。考慮到學(xué)生已經(jīng)學(xué)習(xí)了算法章節(jié),掌握了判斷、循環(huán)結(jié)構(gòu),因此在實際的教學(xué)中,直接從Python編程起步。
另外,為增加學(xué)生對Python編程的興趣,筆者借鑒了Logo語言的特征和VB的可視化平臺的特點,從海龜繪畫模塊進(jìn)入,并嵌入了變量、分支語句、循環(huán)語句等知識,讓學(xué)生先對Python編程有一個感性認(rèn)識。之后從學(xué)校的智能圖書柜入手,引入了圖書管理系統(tǒng)。教學(xué)計劃如表1所示。
表1 Python編程項目式教學(xué)進(jìn)度表
圍繞項目化的Python編程教學(xué)不僅強(qiáng)調(diào)項目作品的生成,也要關(guān)注每節(jié)課的學(xué)習(xí)任務(wù),讓學(xué)生通過完成不同的任務(wù),掌握相關(guān)的編程知識。在此過程中,可以借助多樣的學(xué)習(xí)形式,幫助學(xué)生攻克學(xué)習(xí)重難點。另外,明確的學(xué)習(xí)單和半成品的任務(wù),可以作為學(xué)生的“腳手架”,幫助其順利實現(xiàn)知識結(jié)構(gòu)的同化、順應(yīng)。
1.項目作品引領(lǐng)層級任務(wù)
要想確保項目作品的最終實現(xiàn),需要在教學(xué)過程中,要時刻關(guān)注項目主線,但對于初中生來說,獨立地完成單元項目,難度很大。而且由于Python編程的特殊性,學(xué)生需要完成一些子任務(wù)來掌握基礎(chǔ)知識。項目作品分解如圖2所示(見下頁)。本單元項目為智能圖書柜系統(tǒng),筆者首先借助流程圖,幫助學(xué)生梳理程序,然后分解相關(guān)知識點,幫助學(xué)生明確學(xué)習(xí)內(nèi)容,形成“項目任務(wù)引領(lǐng)層級任務(wù)”和“學(xué)以致用”的思維意識。
圖2 項目作品知識點分解
2.學(xué)習(xí)單明晰任務(wù)邏輯
考慮到Python編程學(xué)習(xí)的特殊性,需要先夯實編程基礎(chǔ)知識,再進(jìn)行項目整合。因此,必須在課堂教學(xué)中借助學(xué)習(xí)任務(wù),幫助學(xué)生掌握完成項目需要的知識,在這個過程中,可以使用學(xué)習(xí)單作為“腳手架”,一方面幫助學(xué)生明晰學(xué)習(xí)任務(wù)的邏輯結(jié)構(gòu),根據(jù)學(xué)習(xí)單要求開展學(xué)習(xí)活動,另一方面幫助學(xué)生反思學(xué)習(xí)過程,調(diào)整學(xué)習(xí)方向和節(jié)奏。學(xué)習(xí)單樣例如表2所示。
表2 For循環(huán)語句學(xué)習(xí)單
當(dāng)然對于初中生來說,只有學(xué)習(xí)單是不夠的,還需要適當(dāng)?shù)闹v解和幫助,如“知識點加油站”“學(xué)習(xí)網(wǎng)站”等。
3.半成品輔助任務(wù)成型
在中小學(xué)開展Python編程教學(xué),并非培養(yǎng)計算機(jī)專業(yè)的預(yù)備生,而是借助這樣一種高級語言,培養(yǎng)學(xué)生的計算思維。半成品策略(即在學(xué)習(xí)過程中,提供“待完成”的作品)作為一種輔助式的教學(xué)方法,可以減少學(xué)生在編程語言和技巧上的耗時,增加他們的軟件開發(fā)體驗[7],激發(fā)程序設(shè)計的樂趣。實踐發(fā)現(xiàn),應(yīng)用項目式教學(xué),必須考慮初中生的能力狀況,他們尚不具備獨立完成所有子任務(wù)的能力,因此在具體的學(xué)習(xí)任務(wù)中提供半成品,可以有效地提升學(xué)生的學(xué)習(xí)效率。
4.多樣形式助推作品生成
項目式教學(xué)中,學(xué)生面對的是半結(jié)構(gòu)化或者非結(jié)構(gòu)化的問題,需要在多節(jié)課中圍繞同一類的問題開展學(xué)習(xí)[8],必須要借助師生交流、生生交流等方式,所涉及的學(xué)習(xí)和教學(xué)形式,包括但不限探究式學(xué)習(xí)、合作學(xué)習(xí)等??紤]到初中生初次接觸Python編程,基礎(chǔ)比較薄弱,因此在項目式教學(xué)之初,小組學(xué)生需要先獨立掌握基礎(chǔ)知識,如Python中的變量、判斷、循環(huán)等。在學(xué)生能夠熟練地應(yīng)用編程,完成小任務(wù)后,再合力完成項目化大作品。這樣既可以幫助學(xué)生夯實編程基礎(chǔ),又可以避免邊緣人的出現(xiàn)。
在中小學(xué)信息技術(shù)編程教學(xué)中,教師對知識和原理一般都能較為正確地把握和傳授,但是往往忽略其學(xué)科思維的培養(yǎng),尤其是對計算思維的強(qiáng)調(diào)。在初中Python編程課中實施項目式教學(xué),可以實現(xiàn)學(xué)生在真實的情境中,學(xué)技術(shù),用技術(shù),培養(yǎng)信息技術(shù)學(xué)科思維,特別是計算思維,養(yǎng)成用學(xué)科知識解決實際問題的習(xí)慣。只有這樣,學(xué)生才能在這個飛速發(fā)展的信息社會中,更好地生存與發(fā)展。