甘肅省天水市電教館(741008) 李彥賓 甘肅省天水市秦安縣第一中學(271000) 魏鵬飛
高中信息技術(shù)課程是一門旨在提升學生信息素養(yǎng)、幫助學生發(fā)展思維能力的基礎(chǔ)性學科,新課標理念下信息技術(shù)課程呈現(xiàn)綜合性強、涉獵范圍廣、操作實踐要求高等特點。新課標立足核心素養(yǎng),重視學生問題解決能力及計算思維能力的培養(yǎng)。學科大概念視角下育人目標發(fā)生轉(zhuǎn)變,由注重知識的學習轉(zhuǎn)向能力的培養(yǎng)。在此背景下,傳統(tǒng)編程教學已無法滿足新課程發(fā)展要求,具體表現(xiàn)為授課形式單一、課程內(nèi)容陳舊、學科融合度不夠、學生參與度不高等問題,這種缺乏學生自主探究的編程教學,不利于學生計算思維能力的養(yǎng)成。Python實驗教學基于真實問題解決,教學內(nèi)容指向多學科融合,是連接技術(shù)與素養(yǎng)的重要橋梁,是重構(gòu)知識內(nèi)化能力的重要樞紐,也是滲透學科知識、發(fā)展計算思維的重要手段。實踐證明,基于跨學科整合下的Python實驗教學授課形式多樣、教學內(nèi)容新穎、跨學科整合度高、學生學習積極性強,更加有利于學生計算思維的提升,有利于學生創(chuàng)新意識和實踐能力的培養(yǎng)。
Python實驗教學是指在編程教學時,利用實驗教學的原理和章程開展教學活動,課堂教學以學生為中心,教師更多的是以“教練員”的身份出現(xiàn),是課堂的組織者、引導者和幫助者,學生以小組為單位通過創(chuàng)設(shè)實驗條件控制實驗過程,引起實驗數(shù)據(jù)的變化以預測事物發(fā)展變化的趨勢或模擬跨學科中難以理解的學科知識。教學活動以現(xiàn)實情境中跨學科問題為任務(wù)切入點,以Python編程環(huán)境為實驗探究工具,以數(shù)據(jù)可視化或驗證實驗假設(shè)為探究目的。教學過程歷經(jīng)創(chuàng)設(shè)實驗情境、提出探究假設(shè)、學生自主探究、數(shù)據(jù)可視化或驗證探究假設(shè)等過程,以實現(xiàn)知識的重構(gòu)及遷移,例如:將Pyhton編程與數(shù)學、物理、化學、生物等學科進行整合,可直觀呈現(xiàn)學科數(shù)據(jù),不僅增加了編程的趣味性,還加深了學生對學科知識的理解和掌握。
計算思維是指個體在運用計算機科學領(lǐng)域的思想方法形成問題解決方案的過程中產(chǎn)生的一系列思維活動。具備計算思維的學生,能夠采用計算機可以處理的方式界定問題、抽象特征、建立結(jié)構(gòu)模型、合理組織數(shù)據(jù);通過判斷、分析和綜合各種信息資源,運用合理的算法形成解決問題的方案;總結(jié)利用計算機解決問題的過程和方法,并遷移到與之相關(guān)的其他問題解決中[1]。用編程的思想理解計算思維,可將其劃分為問題分解、問題抽象、設(shè)計算法、方案評估、問題遷移五大要素框架:①分解:是指將問題涉及的數(shù)據(jù)或過程進行拆分,界定關(guān)鍵問題,制定初步解決步驟;②抽象:模式識別形成背后的一般原理,能夠過濾細節(jié),抽取現(xiàn)象的本質(zhì),建立模型;③算法:為問題解決制定的步驟與規(guī)則并編程實現(xiàn),整合資源,制定、細化問題解決方案;④評估:思考解決方案的適用性,不斷修正和改進直到最優(yōu),評估問題解決效率;⑤遷移:總結(jié)問題解決的過程與方法,運用到相關(guān)問題的解決中。
傳統(tǒng)的編程教學主要采用單向灌輸、被動接受的教學模式,課堂形式單一,授課內(nèi)容以學科知識為主。其優(yōu)勢在于學生可在短期內(nèi)對知識進行快速掌握,缺陷在于學生習得知識是零散的,不成體系的,當面臨解決現(xiàn)實情境中真實的復雜的問題時,不利于知識的遷移與活用。
傳統(tǒng)的編程教學授課內(nèi)容基本局限于本學科知識,跨學科知識較少。課程教學主要以教授基本語法和基本算法為主,教師習慣采用傳統(tǒng)經(jīng)典案例作為教學示例,例如:通過計算圓的面積來講解程序的順序結(jié)構(gòu)、變量及基本語法規(guī)則等;通過判斷一個三位數(shù)是否為水仙花數(shù)來講解枚舉算法等。教學內(nèi)容面向知識本身,雖然有助于傳統(tǒng)意義上的應試教育,但是這種缺乏趣味性、探究性及交互性的編程教學,不利于學生知識的重構(gòu)與遷移,不利于學生計算思維能力的提升。
興趣是最好的老師。課堂教學能最大限度激發(fā)學生學習興趣及積極性,是課堂教學成功的一半。現(xiàn)階段的編程教學課堂形式單一、缺乏探究性、內(nèi)容陳舊,久而久之,學生的積極性不高,會產(chǎn)生厭學情緒。
教學評價是對學生學習效果的檢驗,新課標注重學生的學習態(tài)度、自主探究能力及協(xié)作探究能力等體現(xiàn)學習過程的階段性評價要素。受傳統(tǒng)教學內(nèi)容、教師觀念等因素的影響,傳統(tǒng)編程教學評價偏向于總結(jié)性評價,缺少多元化的過程性評價,不利于學生自主學習能力的養(yǎng)成性培養(yǎng)。
計算思維是信息技術(shù)學科核心素養(yǎng)中最為重要的組成部分,直接影響著學生問題解決能力的培養(yǎng)。新課標倡導通過跨學科主題培養(yǎng)學生的計算思維能力及問題解決能力,編程教育是落實新課標跨學科主題的有效方式之一,也是信息技術(shù)課程可持續(xù)發(fā)展的關(guān)鍵要素。同時,新課標要求課程要從“技術(shù)本位”轉(zhuǎn)變?yōu)椤翱萍疾⒅亍?側(cè)重學生信息素養(yǎng)的提升,實驗是連接技術(shù)與素養(yǎng)的重要橋梁。Python實驗教學既有編程的知識體系又有實驗的探究性過程,通過解決跨學科問題達成素養(yǎng)目標,全面培養(yǎng)學生自主學習、自主創(chuàng)新、合作探究的核心素養(yǎng),為培養(yǎng)學生具備終身學習能力與創(chuàng)新能力奠定基礎(chǔ)。
Python實驗教學在很多方面都超越傳統(tǒng)的編程教學,其形式更加豐富多樣,技術(shù)手段更具時代特點,是數(shù)字化背景下創(chuàng)新信息技術(shù)課堂教學的先行者。Python實驗教學幫助學生直觀深入地理解學科原理、技術(shù)以及工程思維,拓展教師的評價維度。信息技術(shù)學科特點要求學生既動腦也動手,實驗教學增加過程性評價比重,通過發(fā)現(xiàn)問題、制定方案、解決問題、得出結(jié)論等一系列探究過程,培養(yǎng)學生高階思維能力,促進核心素養(yǎng)落地。
數(shù)字化學習與創(chuàng)新能力是信息技術(shù)新課標定義的學科核心素養(yǎng)之一,課標要求根據(jù)實際需求,選擇恰當?shù)臄?shù)字化工具開展自主或協(xié)作學習,創(chuàng)造性地解決問題。Python實驗教學具有真實的問題解決、跨學科整合、任務(wù)驅(qū)動、探究學習及知識的重構(gòu)與遷移等特點,與數(shù)字化學習與創(chuàng)新核心素養(yǎng)的育人價值高度一致,是落實數(shù)字化學習與創(chuàng)新能力核心素養(yǎng)的著眼點和重要抓手。Python實驗教學區(qū)別于傳統(tǒng)意義上的分科實驗教學,內(nèi)容更豐富、形式更多樣、主題更具跨學科性。所以,在課程教學中教師應該打破信息技術(shù)與數(shù)學、物理、化學等學科間的壁壘,充分發(fā)揮信息技術(shù)的優(yōu)勢,促進多學科融合,引導學生選擇諸如Python編程軟件、虛擬仿真軟件、在線模擬軟件等數(shù)字化工具進行數(shù)據(jù)采集、分析、建模、得出結(jié)論、驗證假設(shè),讓學生真實體會知識的獲取過程,掌握科學研究的一般方法。
Python實驗情境的創(chuàng)設(shè)應遵循開放性、探究性及科學性原則,創(chuàng)設(shè)情境是Python實驗教學的首要環(huán)節(jié),也是尤為重要的環(huán)節(jié)之一。實驗情境應來源于學生日常生活中真實的復雜性問題,亦能和學科知識建立聯(lián)系。以“投骰子”為例,投骰子是學生日常生活中常見的趣味性游戲,很容易激發(fā)起學生的學習興趣,投骰子背后的科學問題是隨機事件,又能與數(shù)學知識建立聯(lián)系。
Python實驗教學注重學生的探究體驗,讓學生歷經(jīng)問題探究的整個過程顯得尤為重要,通過在線模擬體驗投骰子的整個過程,可讓學生初步了解實驗探究的基本步驟及背后的科學原理,為后續(xù)利用Pyhton編程設(shè)計算法模擬該過程做鋪墊。在課程教學中教師事先準備好“投骰子”在線模擬軟件的鏈接并于課前發(fā)送至學生端,學生以小組為單位,在教師的引導下打開模擬軟件開始模擬實驗。每個小組投擲1枚骰子12次,并記錄每次投擲出現(xiàn)的點數(shù),實驗結(jié)束后填寫“點數(shù)標記與概率統(tǒng)計表”,統(tǒng)計表的行表示骰子的點數(shù)1~6,列表示投擲的次數(shù)1~12,行和列的交叉處表示某一次投擲出現(xiàn)的點數(shù)并通過畫圓做標記,最后通過出現(xiàn)的點數(shù)和除以投擲總數(shù)計算出各點出現(xiàn)的概率,其點數(shù)標記及概率統(tǒng)計表見表1。
表1 點數(shù)標記及概率統(tǒng)計表
教師引導學生分析表1中的實驗數(shù)據(jù),得出如下結(jié)論:在投擲次數(shù)有限的情境下,每次出現(xiàn)的點數(shù)都是隨機的,各點出現(xiàn)概率值相差不大。上述實驗是在投擲次數(shù)較少的情況下出現(xiàn)的實驗結(jié)果,那么隨著投擲總次數(shù)的逐漸增加,各點出現(xiàn)的概率是否趨于相同?當投擲總次數(shù)增加至幾千甚至幾萬時,如何開展實驗?教師通過第1個設(shè)問引發(fā)學生的深度思考,引導學生提出探究假設(shè),隨著投擲總次數(shù)的逐漸增加,各點出現(xiàn)的次數(shù)趨于相等,并接近某個確定值。教師通過第2個設(shè)問引導學生認識到人工解決復雜性問題的局限性,并指出利用計算機程序解決問題的方便和快捷。
利用Python模擬“投骰子”的過程,是開展Python實驗探究的首要環(huán)節(jié),也是后續(xù)實驗數(shù)據(jù)的重要來源,該階段的探究要用到Python的內(nèi)置庫Random,這部分內(nèi)容是學生的知識盲區(qū),需要教師提供相關(guān)的學習支架。其內(nèi)容主要包括:①random.random()函數(shù):隨機產(chǎn)生一個0~1之間的浮點數(shù);②random.randint(a,b):隨機產(chǎn)生一個a~b(包括a和b)之間的一個整數(shù)。為了加深學生的理解,教師可選擇一兩個教學案例,就random庫的用法做針對性的講解,為學生進行自主探究掃清知識上的盲區(qū)。
通過前面的實驗環(huán)節(jié),學生對“投骰子”的實驗過程已經(jīng)有了較為深入的理解。如何通過建立數(shù)學模型將手動實驗轉(zhuǎn)化為計算機自動實驗,進行思維的遷移是培養(yǎng)學生計算思維能力的重要環(huán)節(jié)。通過抽象建模,投擲骰子可以遷移至數(shù)學問題隨機數(shù);由于投擲次數(shù)較多,出現(xiàn)的點數(shù)情況也較復雜,需要定義一個變量用來存儲多個數(shù)據(jù),學生很容易聯(lián)想到前面學習過的列表數(shù)據(jù)類型,所以記錄數(shù)據(jù)可遷移至Python中的列表;計算概率可以遷移至數(shù)學知識c=p/n(c代表概率,p代表各點出現(xiàn)的次數(shù)和,n代表骰子總數(shù))。在該階段的教學中,為了增加學習的趣味性,教師可通過數(shù)據(jù)的可視化真實還原投骰子的過程,即:通過程序自動標記每次投擲出現(xiàn)的點數(shù)情況。在該階段的教學中要用到Python數(shù)據(jù)可視化第三方庫matplotlib,這部分內(nèi)容在第2章“知識與數(shù)字化學習”中學生已經(jīng)接觸過,教師只需要引導學生建立數(shù)據(jù)域,matplotlib庫就會自動繪制出投點圖,當投擲總數(shù)為100,用x軸表示投擲次數(shù),用y軸表示出現(xiàn)的點數(shù)標記,點數(shù)軌跡圖如圖1所示。
圖1 骰子出現(xiàn)的點數(shù)軌跡圖
程序編寫采用面向?qū)ο笤O(shè)計思維,通過函數(shù)將各模塊功能進行封裝,模擬投擲通過roll()函數(shù)實現(xiàn),存儲點數(shù)通過 Record_points()函數(shù)實現(xiàn),計算概率通過Calculate_probability()函數(shù)實現(xiàn)。編程的難點在于各點出現(xiàn)次數(shù)的累計上,在實際授課過程中發(fā)現(xiàn)學生會選擇建立2個列表來分別存儲骰子的點數(shù)值和出現(xiàn)點數(shù)累計值,用這種方式解決問題無可厚非,但是為了體現(xiàn)算法的高效性,這種算法并不是最優(yōu)的,教師需要引導學生對算法進行優(yōu)化。通過認真分析會發(fā)現(xiàn)列表的下標與骰子的點數(shù)值之間有著天然的對應關(guān)系,有了這種對應關(guān)系,就可以通過定義一個列表來同時存儲骰子的點數(shù)值和各點出現(xiàn)次數(shù)的累計值(如圖2)。
圖2 編程截圖
組織學生運行程序,分別輸入投擲點數(shù)為100、1 000、10 000,查看程序執(zhí)行結(jié)果,填寫概率統(tǒng)計表,統(tǒng)計表的列表示投擲總次數(shù),行表示骰子的點數(shù)值,行和列的交叉處表示各點出現(xiàn)的概率值。分析實驗數(shù)據(jù),得出實驗結(jié)論,隨著投擲點數(shù)的逐漸增加,各點出現(xiàn)的概率趨于相同,接近固定值1/6,從而驗證實驗假設(shè)成立,概率統(tǒng)計表見表2。
表2 概率統(tǒng)計表
文章圍繞高中信息技術(shù)新課程標準學科核心素養(yǎng)“計算思維”的培養(yǎng)展開討論,首先對Python實驗教學、計算思維的概念進行了界定,然后討論了傳統(tǒng)編程教學在培養(yǎng)高中生計算思維能力上存在著授課形式單一、課程內(nèi)容陳舊、學生參與度不高、過程性評價缺失等問題,接著深度探討了Python實驗教學的價值和意義,最后以真實情境“投骰子”為教學案例,通過“創(chuàng)設(shè)學科情境,激發(fā)探究欲望”“在線模擬實驗,統(tǒng)計實驗結(jié)果”“分析實驗數(shù)據(jù),提出探究假設(shè)”“教師提供學習支架,掃清實驗盲區(qū)”“拓展遷移思維,建立數(shù)學模型”“程序編寫,解決問題”“運行程序,驗證實驗假設(shè)”等7個環(huán)節(jié)的教學過程,介紹了具體的教學方法, 以期為一線信息技術(shù)教師開展Pyhton實驗教學,滲透計算思維,落實核心素養(yǎng)提供借鑒。