崔艷麗 李宇翔
課程核心素養(yǎng)目標
①結(jié)合數(shù)據(jù)信息情境觀察并識別均勻、正態(tài)和冪律三種數(shù)據(jù)分布形態(tài)。(信息意識)
②分析信息情境,提取問題關(guān)鍵特征,用適當?shù)臄?shù)據(jù)結(jié)構(gòu)進行抽象建模,設(shè)計合理算法繼而編程解決。(計算思維)
③在學(xué)習(xí)過程中,評估數(shù)字化學(xué)習(xí)資源并根據(jù)需要合理選擇。(數(shù)字化學(xué)習(xí)與創(chuàng)新)
④在用程序解決問題的過程中熟悉列表、列表遍歷,區(qū)分循環(huán)和分支適用的問題情境。(計算思維)
⑤通過課堂實踐和數(shù)據(jù)實驗,直觀感受計算機強大算力對數(shù)據(jù)處理的價值。(計算思維、信息社會責任)
學(xué)業(yè)要求
《普通高中信息技術(shù)課程標準(2017年版)》中關(guān)于必修《模塊1 數(shù)據(jù)與算法》中的內(nèi)容要求是:“1.7 掌握一種程序設(shè)計語言的基本知識,使用程序設(shè)計語言實現(xiàn)簡單算法。通過解決實際問題,體驗程序設(shè)計的基本流程,感受算法的效率,掌握程序調(diào)試與運行的方法?!?/p>
教學(xué)內(nèi)容分析
本教學(xué)案例是“用程序進行數(shù)據(jù)模擬”單元教學(xué)的第2課時。單元總體設(shè)計思路是緊扣“數(shù)據(jù)、算法”的學(xué)科大概念,以用程序解決問題的基本知識和能力為主線,包含呈遞進關(guān)系的4個課時,如圖1所示。
學(xué)情分析
本單元的教學(xué)對象是高一學(xué)生,他們每周有一次信息技術(shù)課,兩節(jié)連堂進行,因此筆者嘗試設(shè)計微型項目和單元教學(xué),在同一主題下,使每周的學(xué)習(xí)內(nèi)容相對完整而又逐層推進。他們大都對信息技術(shù)課有興趣,并初步具備良好的邏輯推導(dǎo)和問題解決能力,愿意主動思考問題,有較好的自學(xué)習(xí)慣,能根據(jù)需要查閱資料支持學(xué)習(xí)過程。學(xué)生已經(jīng)掌握程序的一些基礎(chǔ)知識,能理解并基本正確使用三種程序結(jié)構(gòu),初步學(xué)習(xí)過列表和字典數(shù)據(jù)類型,對函數(shù)封裝有一定了解,對程序解決問題的過程有一定認識。但面對復(fù)雜信息情境,他們無法將學(xué)過的知識有效整合來抽象建模設(shè)計算法并編程解決。
教學(xué)難點
①針對復(fù)雜的數(shù)據(jù)模擬情境,提取問題關(guān)鍵特征,繼而確立數(shù)據(jù)結(jié)構(gòu)與算法編程模擬。
②列表遍歷(列表中元素的逐一讀取及修改)的方法。
③循環(huán)和分支適用的不同情況。
教學(xué)過程
1.明確單元主題
通過單元第1課時的學(xué)習(xí),學(xué)生對程序模擬問題情境預(yù)估結(jié)果有了一定認識。本節(jié)課從計算機發(fā)明的最初目的(完成大量復(fù)雜的計算)說起,提示學(xué)生計算機幫助人類解決了很多人力難以解決的問題,途徑之一就是用計算機為現(xiàn)實問題甚至假想問題建模,通過改變一些變量值和條件,借助計算機的強大算力來進行研究預(yù)測。繼而明確本單元主題:結(jié)合問題用計算機程序進行數(shù)據(jù)模擬。
2.提出本節(jié)課的問題情境,引發(fā)懸念
利用計算機教室的局域網(wǎng)環(huán)境,筆者在課前設(shè)計了問題情境瀏覽網(wǎng)頁和預(yù)估結(jié)果投票網(wǎng)頁。問題情境來源于一個與經(jīng)濟學(xué)相關(guān)的模擬人類財富流動的項目,項目所得的結(jié)論是人類財富經(jīng)過多次即使接近于均等機會的分配后總是會出現(xiàn)所謂的馬太效應(yīng)。為貼合單元設(shè)計主題和實際教學(xué)情況,筆者對項目進行改良,將情境預(yù)設(shè)為學(xué)生感興趣的游戲平臺(如圖2),并以網(wǎng)頁形式發(fā)布,要求學(xué)生先閱讀分析問題并進行預(yù)測,同時以在線投票方式迅速反饋學(xué)生預(yù)測結(jié)果,引發(fā)課堂懸念。該問題的復(fù)雜度,使得學(xué)生無法靠現(xiàn)有的數(shù)學(xué)知識推導(dǎo)結(jié)論,凸顯了程序解決問題的必要性。
3.師生討論,明晰問題,抽象建模,確立算法
在完成問題瀏覽和結(jié)果預(yù)測后,結(jié)合問題情境,師生共同討論后提取問題關(guān)鍵信息“每啟動一輪分配機制,會依次讓每個成員拿出1個能量值隨機贈送給其他成員”。基于此,引導(dǎo)學(xué)生結(jié)合程序知識進行抽象建模及算法思路的梳理。這個教學(xué)環(huán)節(jié)至關(guān)重要,明確清晰的分析對學(xué)生的實踐過程起到?jīng)Q定性作用。因此,筆者借助表1所示的問題串,以師生討論的方式,突破問題情境和算法與程序之間的屏障。
4.學(xué)生實踐環(huán)節(jié)
受課堂教學(xué)的多種客觀因素制約,再清晰的思路引導(dǎo)都可能無法幫助學(xué)生克服因語法代碼不熟悉導(dǎo)致的學(xué)習(xí)障礙。筆者認為,突破此學(xué)習(xí)難點可采用以下教學(xué)方法:其一,提供條理清晰的學(xué)習(xí)資料,供學(xué)生有疑問時查詢使用;其二,請學(xué)生以代碼接力的方式在教師電腦上合作完成。代碼接力活動順利進行的前提是課前要對問題科學(xué)分析,課上進行思路明晰,并輔以代碼提示。下頁圖3所示是本節(jié)課的思路引導(dǎo)和代碼簡要提示。
在實踐過程中,筆者隨時觀察學(xué)生的完成狀況,并設(shè)計了如下頁表2所示的五個接力環(huán)節(jié),其中學(xué)生3和學(xué)生4完成的是本節(jié)的程序難點。參與課堂代碼接力活動的學(xué)生既需明了自己要完成的部分,也要理解之前的代碼,這除了能幫助他們更好地把握程序,還起到了很好的同伴示范作用,一定程度上實現(xiàn)了協(xié)作式學(xué)習(xí)。
以學(xué)生3完成的難點為例,在實際上課時,參與接力的學(xué)生所編的程序片段如圖4所示,這顯然不符合情境要求。突破該難點的方式是結(jié)合之前所學(xué)的抽取不重復(fù)學(xué)號的問題,輔以如圖5所示的流程圖引導(dǎo)。
課堂中的問題五花八門,作為一個實踐導(dǎo)向明顯的學(xué)科,再精心的設(shè)計也無法完全幫助學(xué)生實現(xiàn)舊知和新問題情境的準確鏈接。因此需要教師靈活把握課堂節(jié)奏,用課堂生成性問題來動態(tài)推進學(xué)習(xí)進程。例如,在編程實踐中,有一個學(xué)生所編的代碼片段如圖6所示,執(zhí)行結(jié)果顯示,輸出的數(shù)據(jù)是呈正態(tài)分布的。教師用此代碼與學(xué)生討論了兩個問題:①while條件是否能保證贈予的是其他人?②如果某成員的能量值變成0,其暫時不參與贈送在程序中有體現(xiàn)嗎?此前,學(xué)生已經(jīng)弄清楚了程序如何體現(xiàn)贈送的含義,經(jīng)過討論,學(xué)生修改和完善了代碼,輸出了如下頁圖7所示的直方圖。
5.以立體式課堂總結(jié)串聯(lián)前后學(xué)習(xí)內(nèi)容
課堂總結(jié)環(huán)節(jié)分為三個層面:知識總結(jié)、拓展思考和項目展望。知識總結(jié)是引導(dǎo)學(xué)生對本節(jié)用到的知識進行提煉,同時是對算法與程序?qū)崿F(xiàn)的主要基礎(chǔ)知識的回顧。拓展思考部分會提示學(xué)生改變程序中的關(guān)鍵變量,觀察輸出結(jié)果的變化并分析原因。項目展望是對單元后兩課時的項目——基于數(shù)據(jù)模擬探究乒乓球賽制做簡要說明和展望,希望學(xué)生能做相關(guān)思考。
教學(xué)反思
筆者設(shè)計這個單元教學(xué)的初衷是既希望能夠聚焦計算思維的提升,緊扣數(shù)據(jù)與計算的學(xué)科大概念,又希望能貼合大部分學(xué)生的實際能力和教學(xué)的基本情況。同時筆者還考慮在學(xué)完必修1中關(guān)于算法與程序?qū)崿F(xiàn)的基礎(chǔ)知識后,除了按照教材上的思路進行詞頻分析外,有無可能設(shè)計一系列的問題情境,帶領(lǐng)學(xué)生更深層次理解計算機程序解決問題的方法,同時承接后續(xù)的數(shù)據(jù)處理單元。在明確單元教學(xué)目標后,筆者以《計算機模擬》作為單元課程開發(fā)的主體內(nèi)容,通過用程序模擬一系列具體問題下的數(shù)據(jù),將計算思維的形式化(如抽象出算法解決問題的一般過程)、模型化(如用結(jié)構(gòu)化程序表示算法)、自動化特征滲透到課程內(nèi)容中。單元設(shè)計路線是從生活實例出發(fā),結(jié)合學(xué)生基本情況和學(xué)習(xí)興趣,逐漸延伸到數(shù)據(jù)模擬實驗。單元學(xué)習(xí)的歸并路徑是對問題情境關(guān)鍵信息的提取,抽象量化問題的核心特征,繼而確立算法和數(shù)據(jù)結(jié)構(gòu)編程解決。貫穿單元的教學(xué)策略是合作式學(xué)習(xí)策略。
在完成教學(xué)實踐后,筆者也發(fā)現(xiàn)了其中的不足:①課堂教學(xué)進行了明確的算法思路引導(dǎo),但事實上程序解決同樣問題的算法常常不唯一。②該單元部分問題情境顯得真實性不夠,是否引發(fā)了學(xué)生的深度學(xué)習(xí)值得商榷,同時也沒能充分關(guān)聯(lián)學(xué)科的前沿知識。筆者希望能在后續(xù)的數(shù)據(jù)處理學(xué)習(xí)中開展小組合作式的基于真實數(shù)據(jù)的項目式學(xué)習(xí),對這些問題進行彌補和改進。
點? 評
《普通高中信息技術(shù)課程標準(2017年版)》提出了學(xué)科大概念和學(xué)科核心素養(yǎng),并建議以項目教學(xué)方式設(shè)計單元教學(xué),最終實現(xiàn)提升學(xué)生學(xué)科核心素養(yǎng)的目標。
從整體內(nèi)容安排看,在本教學(xué)案例中教師充分考慮學(xué)生基本情況,并根據(jù)課時安排特點設(shè)計了單元的教學(xué)內(nèi)容,不拘泥于整體單元項目,而是利用可在連續(xù)課時中完成的、層次遞進的、學(xué)生熟悉的情境中的若干問題展開,從而達成單元教學(xué)目標。這使得單元內(nèi)容既圍繞一個直接指向?qū)W科大概念和學(xué)科核心素養(yǎng)的核心主題,又便于教學(xué)實施,并且使學(xué)生的學(xué)科素養(yǎng)水平達到遞進提升的目標。
從單元教學(xué)邏輯看,本教學(xué)案例聚焦計算思維培養(yǎng),設(shè)計了一連串學(xué)生力所能及的程序模擬情境,從簡單有趣的概率問題開始,明確計算機模擬的意義,繼而創(chuàng)設(shè)了一個相對復(fù)雜的問題情境,完成思維建構(gòu),在此基礎(chǔ)上引入實踐中真實情境下的程序模擬。在微觀問題解決的過程中映射宏觀的學(xué)科大概念和思維特點,實現(xiàn)了問題與程序的有機鏈接,能夠促進學(xué)習(xí)的高通路遷移。在復(fù)雜度逐漸提升的問題解決過程中持續(xù)引領(lǐng)學(xué)生理解計算機模擬的基本要點,包括明晰問題的關(guān)鍵特征、建立模型、明確問題的算法和數(shù)據(jù)結(jié)構(gòu)等等。學(xué)生經(jīng)歷了從具體問題到抽象原理再到具體問題的學(xué)習(xí)過程,逐漸形成持續(xù)性的理解,實現(xiàn)計算思維的提升。
從教學(xué)實施策略看,在本教學(xué)案例中教師采用多種教學(xué)策略助力學(xué)生突破學(xué)習(xí)難點。首先,在關(guān)鍵核心問題的分析上通過精心設(shè)計問題鏈,以提問及追問的方式引導(dǎo)學(xué)生思考,突破算法設(shè)計的難點。其次,在編程實踐中,尊重學(xué)生個體差異,設(shè)計“編程接力”環(huán)節(jié),由多位學(xué)生合力完成編程任務(wù),既幫助學(xué)生樹立信心,又鍛煉其協(xié)作意識及能力,突破編程驗證算法的難點。最后,在學(xué)生學(xué)習(xí)的全過程中,教師提供較為全面的學(xué)習(xí)資源作為學(xué)習(xí)支架,助力學(xué)生個性化自主學(xué)習(xí),突破學(xué)生個性化學(xué)習(xí)難點。
(點評人:北京市東城區(qū)教育科學(xué)研究院信息技術(shù)教研員 李宇翔)