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