黎韻音
程序設(shè)計題作為浙江省高中信息技術(shù)選考中的壓軸題,題型多變,程序復(fù)雜;學(xué)生在解題過程中往往因計算思維能力偏弱而難以自主完成解題。由此,在教學(xué)中可以采用打基礎(chǔ),體驗算法變式、辨析理論,清晰表述思維、上機實踐,梳理綜合程序、針對練習(xí),促進(jìn)個人發(fā)展的方式,培養(yǎng)學(xué)生計算思維能力,進(jìn)一步提升選考中程序設(shè)計題的解題智慧。
體驗算法變式
近年來,隨著浙江省技術(shù)選考的展開,信息技術(shù)程序設(shè)計題的難度有了顯著提升。題目內(nèi)容涉及數(shù)據(jù)加密、排序、查找替換等多項綜合性問題。在考查學(xué)生知識積累的同時,更注重對學(xué)生運用已有知識分析及解決問題的計算思維能力的考察。有的學(xué)生運用計算思維解題的綜合能力偏弱,常出現(xiàn)讀題困難、思路混亂等問題,難以運用自主探究的方式高效解題。在此情境下,如何運用恰當(dāng)?shù)慕虒W(xué)模式,進(jìn)一步培養(yǎng)學(xué)生的計算思維能力,實現(xiàn)更有效的學(xué)習(xí)效果,是當(dāng)前算法與程序設(shè)計教學(xué)中亟須解決的問題。
算法與程序設(shè)計模塊最根本的知識點,在于基礎(chǔ)算法實現(xiàn)思想及其代碼,基礎(chǔ)算法的學(xué)習(xí)鞏固應(yīng)從算法原理效果開始,到用自然語言描述,再到用流程圖設(shè)計算法執(zhí)行流程,最后形成模塊化的程序語言算法實現(xiàn)。層層遞進(jìn),逐步實現(xiàn)計算思維中界定問題、抽象特征、建模處理、分析信息、解決問題的過程。
當(dāng)然,選考中的程序設(shè)計題往往在基礎(chǔ)算法的架構(gòu)上加以變化,例如設(shè)置相應(yīng)變式,或是結(jié)合其他算法實現(xiàn)綜合性的程序功能,用以考查學(xué)生運用已學(xué)算法進(jìn)行綜合性解題的能力。此外,根據(jù)歷年選考題來看,還會涉及拓展提升的各類知識點,例如桶排序、矩陣排列、序列變化等。因而在掌握了基礎(chǔ)算法后,還應(yīng)體驗算法變式,拓寬思路,接觸更多的知識點與題型,梳理各地市聯(lián)考卷及選考題中出現(xiàn)的程序設(shè)計題中的各類算法思想,比較其中的異同點并體驗不同的程序?qū)崿F(xiàn)方式,加深印象,提升知識梳理能力與計算思維能力。
辨析原理,梳理程序
在學(xué)習(xí)基礎(chǔ)算法及其變式后,需要學(xué)以致用,明確該算法的原理、代碼及其使用方式,做到熟記于胸。遇見新的程序設(shè)計題就要能提取其中的關(guān)鍵點,知道題中大概運用了哪些基礎(chǔ)算法,又和哪些已做過的題目有相似之處,程序運行的大概流程是怎樣的。學(xué)習(xí)中,先模仿教師所授思路,按照提示一步步完成解題。在能聽懂講題思路的基礎(chǔ)上,慢慢開始提升自主解題能力。
為了更好提升學(xué)習(xí)參與度,在課堂中可以進(jìn)行角色互換的學(xué)生授課模式。學(xué)生在課前通過自主探究、小組合作等方式,理解算法思路以及代碼的由來。在課堂中按照自己的思路對題意及代碼進(jìn)行分析,梳理每一部分代碼所對應(yīng)的功能,并繪圖講演,逐步推導(dǎo)出空格中應(yīng)該填寫的答案。在本題解析之外,還可以根據(jù)自己的心得說一說快速解題的技巧。其余學(xué)生一起聆聽思考,對于不懂之處進(jìn)行提問。教師在糾正錯誤的同時,也對學(xué)生講解過程中的優(yōu)點進(jìn)行鼓勵評價,提升學(xué)生自信心。
由于選考中的程序設(shè)計題往往是綜合性題目,因而在掌握各類基礎(chǔ)知識點后,還需要根據(jù)程序意思,用多重選擇語句、循環(huán)語句嵌套等,將各種算法編寫在一個程序中。在上機實踐課中,可以運用自主探究、小組合作等方式,舉一反三,將多種程序功能進(jìn)行整合重組,培養(yǎng)思維多樣性,提升思維能力。
例如,在排序綜合算法編寫中,可以設(shè)計課間操小程序,從數(shù)據(jù)庫中讀取學(xué)生信息并從中抽取一定量學(xué)生,根據(jù)身高按照中間高、兩邊低的方式進(jìn)行排隊。該程序編寫過程中,要用到多種常量與變量,涉及賦值、選擇、循環(huán)等多種語句及多重結(jié)構(gòu),對于數(shù)據(jù)進(jìn)行多樣化運算處理,既能檢驗學(xué)生對于數(shù)據(jù)庫的數(shù)據(jù)讀取、排序算法變式和去重隨機數(shù)等知識技能,又可考察學(xué)生將多種功能有機融合在一起的綜合解題能力,更能有效提升學(xué)生分析問題、運用合理算法、編寫相應(yīng)代碼解決問題的計算思維能力。
學(xué)習(xí)促進(jìn)個人發(fā)展
由于不同學(xué)生在知識技能掌握程度和實際應(yīng)用水平存在一定差異,在課堂共同學(xué)習(xí)的基礎(chǔ)上,根據(jù)學(xué)生自身情況進(jìn)行有針對性的練習(xí)。程序設(shè)計題的練習(xí)分為三層。
第一層為基礎(chǔ)層,主要是基礎(chǔ)算法及其簡單應(yīng)用,難度略低于選考。
第二層為提高層,在第一層的基礎(chǔ)上進(jìn)行提升,主要考查算法的綜合性應(yīng)用,思路相對更復(fù)雜,練習(xí)難度約為選考難度。
第三層為拓展層,在選考難度上進(jìn)一步提升,要求根據(jù)程序功能,運用已學(xué)算法單獨編寫完整的代碼。
學(xué)生在完成練習(xí)時,首先通過自主探究思考的方式完成。如遇到疑難問題,可以與他人交流探討或請教老師。如果學(xué)生在完成本層次的基礎(chǔ)上仍學(xué)有余力,則可以繼續(xù)完成下一層次的練習(xí)。分層練習(xí)的方式,可以提升學(xué)生學(xué)習(xí)自信心,促進(jìn)整體發(fā)展。
結(jié)束語
計算思維的培養(yǎng)和提升是一個循序漸進(jìn)的過程,因此在教學(xué)中,教師還需要根據(jù)學(xué)生的學(xué)情,探究更恰當(dāng)?shù)姆绞?,將計算思維有效融入教學(xué),潛移默化地引導(dǎo)學(xué)生學(xué)習(xí)探究、實踐操作,在真正意義上提升學(xué)生運用計算機處理方式界定問題,建立結(jié)構(gòu)模型思想,合理組織數(shù)據(jù)、分析與綜合各種信息資源,運用合理的算法形成解決問題的意識與能力。
(作者單位:浙江省龍游中學(xué))