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