0 引言
《普通高中信息技術(shù)課程標(biāo)準(zhǔn)(2017年版2020年修訂)》將計算思維列為高中信息技術(shù)學(xué)科的核心素養(yǎng)之一,計算思維是指個體運用計算機科學(xué)領(lǐng)域的思想方法,在形成問題解決方案的過程中產(chǎn)生的一系列思維活動[1]。計算思維基本原理的教學(xué)指導(dǎo)意義在于提升了教學(xué)的抽象層次,將目前面向知識傳授的單一層次拓展為面向知識傳授、方法與思維培養(yǎng)的兩個層次,并解析兩個層次的內(nèi)在辯證關(guān)系[2]。高中信息技術(shù)課程中的Python教學(xué)不僅僅是教授學(xué)生編程知識和技能,更重要的是要教會學(xué)生界定問題、分析問題、抽象思維和有效思考,不斷地挖掘問題,得出解決問題的算法,最終將解決問題的過程遷移到解決日常各類問題中去。筆者認(rèn)為,這才是高中信息技術(shù)課程培養(yǎng)學(xué)生計算思維的根本目標(biāo)。
1面向計算思維培養(yǎng)的高中Python教學(xué)設(shè)計模式實踐應(yīng)用:以遞歸部分的教學(xué)為例
前期,筆者參考相關(guān)教學(xué)理論,結(jié)合自身的教學(xué)實踐,以培養(yǎng)高中生計算思維為導(dǎo)向,構(gòu)建面向計算思維培養(yǎng)的高中Python教學(xué)設(shè)計模式(以下簡稱模式)。該模式大體分為課程導(dǎo)入、課程實施、課程總結(jié)與評價三個模塊。整體教學(xué)設(shè)計模式如圖1所示。
筆者嘗試將該模式應(yīng)用于教育科學(xué)出版社普通高中教科書《信息技術(shù)必修1數(shù)據(jù)與計算》遞歸部分的教學(xué)實踐,驗證該模式能否有效培養(yǎng)學(xué)生的計算思維,從而促進(jìn)高質(zhì)量編程教學(xué)。
1.1 前期分析
1.1.1 學(xué)習(xí)內(nèi)容分析
本研究的授課內(nèi)容選自教育科學(xué)出版社普通高中教科書《信息技術(shù)必修1數(shù)據(jù)與計算》第四章“計算與問題解決”的第三節(jié)“非數(shù)值計算—遞歸”。這節(jié)內(nèi)容的學(xué)習(xí)目標(biāo)是:1)體驗遞歸算法,并結(jié)合具體問題開展編程實踐;2)運用合適的算法形成解決問題的方案。
1.1.2 學(xué)習(xí)者特征分析
本研究的實踐對象是蘇州市吳江區(qū)蘇州灣外國語學(xué)校高一(2)、高一(3)兩個班級的學(xué)生,這兩個班級差異性較小,是平行班級,其中高一(2)班為本次實踐研究的實驗班,高一(3)班為對照班,班級人數(shù)均為26人。本教學(xué)實驗利用正常的授課時間進(jìn)行研究實踐,均由筆者擔(dān)任授課教師。兩個班的學(xué)生都已經(jīng)學(xué)習(xí)了第二章的Python基礎(chǔ)知識,掌握了Python語法、程序設(shè)計結(jié)構(gòu)、自定義函數(shù)相關(guān)內(nèi)容,能夠閱讀和完善簡單程序,但缺乏對算法的系統(tǒng)學(xué)習(xí)。因此,他們需要進(jìn)一步學(xué)習(xí)基礎(chǔ)的思維方式和算法,用“算法的眼睛”看待生活,用算法的思維去解決實際問題,進(jìn)而理解計算的本質(zhì)。
1.2 課程開展
本研究的兩個班級授課內(nèi)容相同,授課過程各異。其中,實驗班的教學(xué)過程依據(jù)模式中課程導(dǎo)入、課程實施、課程總結(jié)與評價三個模塊展開,而對照班則采用傳統(tǒng)的講授法進(jìn)行授課。
1.2.1實驗班的具體教學(xué)過程
1)課程導(dǎo)入。教師播放自制微視頻“小P學(xué)編程”,視頻呈現(xiàn)小P求解 [1,n] (n表示非零自然數(shù))的連續(xù)數(shù)之和的過程,讓學(xué)生感知情境,喚醒意識。
2)課程實施。該過程可用“引”“思”“拓”三個關(guān)鍵字簡要概括。模式中教師活動部分的“有效提問,引出主題”對應(yīng)“引”,“剖析問題,啟發(fā)思考”與“問題深化,適度變形”對應(yīng)“思”,“同類拓展,問題遷移”對應(yīng)“拓”。一系列的教師活動旨在引導(dǎo)學(xué)生明確學(xué)習(xí)目標(biāo),思考問題、分解問題、抽象處理問題,并將解決問題的過程與方法遷移到與之相關(guān)的問題解決中,幫助學(xué)生理解算法和提升計算思維。
① “引”表示導(dǎo)引、引問。教師圍繞視頻提問:“視頻中小P運用了哪些方法求解 [1,n] 的連續(xù)數(shù)之和?”學(xué)生結(jié)合已有知識總結(jié)出用循環(huán)結(jié)構(gòu)求和(圖2)、用自定義函數(shù)求和(圖3)的方法。教師繼續(xù)提問:“兩個程序的寫法不一樣,其算法核心相同嗎?求和的算法本質(zhì)是什么?”通過教師的啟發(fā)引問,學(xué)生逐步深入學(xué)習(xí)主題和課程任務(wù)。
圖1面向計算思維培養(yǎng)的高中Python教學(xué)設(shè)計模式
② “思”表示思考問題、直擊問題本質(zhì)。學(xué)生經(jīng)過思考與討論回答:“上述兩個程序的求和算法思路一樣,都是在已有項求和的基礎(chǔ)上重復(fù)累加后一個值。本質(zhì)上而言,求解 [1,n] 的自然數(shù)和就是求解[1, n-1] 的連續(xù)數(shù)之和再加上 n 。”教師結(jié)合教學(xué)目標(biāo),進(jìn)一步深化問題,繼續(xù)提問:“上述自定義函數(shù)的功能是什么?如何改寫自定義函數(shù),實現(xiàn)求和算法的本質(zhì)?”學(xué)生經(jīng)過認(rèn)真思考與討論,結(jié)合函數(shù)的功能分析,重新設(shè)計算法和修改代碼,最終以[1,n-1]的連續(xù)數(shù)之和加上 n 作為函數(shù)返回值(圖4)。然而,學(xué)生在運行程序時發(fā)現(xiàn)程序報錯,教師進(jìn)行適當(dāng)引導(dǎo):“調(diào)用的參數(shù)一直在減少1,最終參數(shù)可能變?yōu)樨?fù)數(shù),符合題意嗎?”學(xué)生經(jīng)過思考和討論,增加“回歸條件”,實現(xiàn)遞歸的合理退出(圖5)。教師結(jié)合學(xué)生的上述實踐過程,啟發(fā)學(xué)生歸納與理解“遞推”與“回歸”的過程,明晰遞歸的本質(zhì),學(xué)生進(jìn)行完善并補充。
圖5完整的遞歸求和
③ “拓”表示拓展、延伸。當(dāng)學(xué)生已經(jīng)掌握了遞歸的核心知識點,并能結(jié)合具體問題開展編程實踐,教師進(jìn)一步深化問題:“《棋盤放麥子》故事中,64個棋盤中總共有多少麥粒?\"學(xué)生需要舉一反三,分析實際問題,采用遞歸算法,編寫Python程序(圖6)。學(xué)生已經(jīng)能根據(jù)具體應(yīng)用問題正確寫出遞歸程序。教師作進(jìn)一步拓展:“如何用之前學(xué)的迭代算法計算麥粒總數(shù)?”學(xué)生根據(jù)先前知識編寫代碼(圖7)。教師提出“分析遞歸與迭代的關(guān)系”,引導(dǎo)學(xué)生在面對具體問題時,要運用合理的算法形成解決問題的方案。
3)課程總結(jié)與評價。教師引導(dǎo)學(xué)生回顧解決問題的全過程,從聯(lián)系已有知識到剖析問題本質(zhì)到全面理解算法到問題深化變形到拓展知識體系,學(xué)生學(xué)會在遇到類似問題時能學(xué)以致用。學(xué)生完成自我評價,從知識學(xué)習(xí)和計算思維兩個方面正確認(rèn)識自我的學(xué)習(xí)效率和學(xué)習(xí)方法。
1.2.2對照班的具體教學(xué)過程
1)教師以“求解[1,n]連續(xù)自然數(shù)之和”導(dǎo)入新課。2)結(jié)合PPT課件,教師講授遞歸的定義,強調(diào)遞推關(guān)系式與回歸條件,學(xué)生體會算法。3)教師集中講解,演示遞歸求解 [1,n] 連續(xù)自然數(shù)之和的Python程序,學(xué)生練習(xí)編寫程序。4)教師講解遞歸求解階乘的問題。5)學(xué)生進(jìn)行自我評價。
1.3 效果分析
實驗班與對照班采用相同的自我評價表(表1),從知識學(xué)習(xí)和計算思維兩個方面進(jìn)行評價,結(jié)果如表2所示。
表2兩個班的評價情況統(tǒng)計
由表2數(shù)據(jù)可知,在各評價因素的達(dá)成度方面,實驗班均高于對照班。這表明,筆者構(gòu)建的模式對培養(yǎng)高中生的計算思維是有效的。在實施教學(xué)實驗前,兩個班級的整體水平?jīng)]有顯著差異,但教學(xué)實驗實施后,實驗班的學(xué)生更注重分析和思考問題本質(zhì),能在理解知識后進(jìn)行編程,并通過試錯發(fā)現(xiàn)新知,課堂參與度高,能很好地完成變式訓(xùn)練,最終有意識地對自己解決問題的方案和過程進(jìn)行評估。對照班的學(xué)生則更多地關(guān)注教師的演示與代碼,思維存在惰性,課堂上回答問題也不是很積極。
2 總結(jié)與反思
本研究構(gòu)建的面向計算思維培養(yǎng)的高中Python課程教學(xué)設(shè)計模式從課程導(dǎo)入、課程實施、課程總結(jié)與評價三個模塊,將培養(yǎng)高中生計算思維的方法與途徑融入日常編程教學(xué)。學(xué)生通過問題驅(qū)動的學(xué)習(xí)方式,將知識的建構(gòu)與思維的發(fā)展融入運用Python解決實際問題的過程,這有助于其提升計算思維能力。但是該研究還存在以下幾點問題。
表1自我評價表
1)缺乏前測實驗。實驗中的兩個班級是平行班級,做前測實驗可以更好地通過數(shù)據(jù)檢測兩個班級的計算思維是否真正處于同一水平、學(xué)生實際的計算思維水平是否相當(dāng)。如果實驗中增加前后測對比統(tǒng)計,實驗將更嚴(yán)謹(jǐn)。
2)樣本數(shù)量少。由于學(xué)校實行小班化教學(xué),研究的測試樣本較少,難免存在一定誤差,所以在后續(xù)研究中需要擴(kuò)大研究范圍,為教學(xué)設(shè)計普適研究提供更有力的數(shù)據(jù)支撐。
3 結(jié)束語
本文構(gòu)建了面向計算思維培養(yǎng)的高中Python教學(xué)設(shè)計模式,并結(jié)合具體的教學(xué)案例對該模式進(jìn)行應(yīng)用與分析。筆者深知,對高中生計算思維的培養(yǎng)來說,編程技術(shù)只是外顯的工具,教師與學(xué)生的教與學(xué)邏輯和思維方法才是本質(zhì)。希望本文構(gòu)建的教學(xué)設(shè)計模式能夠在高中信息技術(shù)課堂上真正落地,有效提升學(xué)生的計算思維水平。
4參考文獻(xiàn)
[1]中華人民共和國教育部,普通高中信息技術(shù)課程標(biāo)準(zhǔn)(2017年版2020年修訂)[S].北京:人民教育出版社,2020.
[2]沈軍.基于計算思維的大學(xué)程序設(shè)計課程教材建設(shè)新思路[J].計算機教育,2019(7):29-32.