陳曉
【摘? 要】算法是計(jì)算機(jī)科學(xué)的基礎(chǔ),算法思想是指按照一定的步驟去解決某個(gè)問(wèn)題的程序化思想。筆者在課堂教學(xué)中從鼓勵(lì)直覺(jué)思考、挖掘教材思想、引導(dǎo)遷移學(xué)習(xí)這三個(gè)層次實(shí)施建構(gòu)算法思想的策略。本研究致力于幫助學(xué)生建構(gòu)算法思想,提升解決問(wèn)題的能力,養(yǎng)成科學(xué)的思維方式。
【關(guān)鍵詞】算法思想;直覺(jué)思考;遷移學(xué)習(xí)
中圖分類號(hào):G633? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ? 文章編號(hào):0493-2099(2021)03-0072-03
【Abstract】Algorithm is the basis of computer science, algorithm idea refers to according to a certain step to solve a problem of procedural thought. In the classroom teaching, the author implements the strategy of constructing algorithm thinking from three levels: encouraging intuitive thinking, exploring textbook thinking and guiding transfer learning. This research is devoted to helping students to construct algorithm ideas, improve their problem-solving ability and develop scientific thinking mode.
【Keywords】Algorithm thought; Intuitive thinking; Migration study
一、算法思想構(gòu)建的意義
算法思想是指按照一定的步驟去解決某個(gè)問(wèn)題的程序化思想,即解決問(wèn)題的一般方法,如界定問(wèn)題、抽象特征、建立模型、判斷分析、設(shè)計(jì)問(wèn)題的解決方案。具備算法思想的學(xué)生能從復(fù)雜混亂的現(xiàn)象中跳脫出來(lái),對(duì)過(guò)程與方法進(jìn)行總結(jié),并進(jìn)行遷移。因此,激發(fā)學(xué)生對(duì)算法思想建構(gòu)的興趣和意識(shí),對(duì)他們后續(xù)發(fā)展有著重要的意義。
二、STEM學(xué)習(xí)的優(yōu)勢(shì)
STEM學(xué)習(xí)強(qiáng)調(diào)融合多學(xué)科知識(shí)去解決真實(shí)的問(wèn)題。筆者在實(shí)踐中引入虛擬機(jī)器人(以IRobotQ為例)和Scratch這兩塊具有趣味性、跨學(xué)科性、協(xié)作性等STEM理念的內(nèi)容,再結(jié)合浙教版教材的程序設(shè)計(jì)模塊,總結(jié)出了“鼓勵(lì)直覺(jué)思考,呵護(hù)算法思想的火花;挖掘教材思想,建構(gòu)解決問(wèn)題的基本步驟;引導(dǎo)遷移學(xué)習(xí),習(xí)得算法思想的利器”這三個(gè)層次來(lái)幫助學(xué)生構(gòu)建算法思想,提升他們解決問(wèn)題的能力。
三、算法思想建構(gòu)的策略
(一)鼓勵(lì)直覺(jué)思考,呵護(hù)算法思想的火花
直覺(jué)思考能快速產(chǎn)生靈感,主要依靠想象、猜測(cè)和洞察力等因素。諾貝爾獎(jiǎng)獲得者馬克斯·玻恩曾說(shuō):“實(shí)驗(yàn)物理的全部偉大發(fā)現(xiàn),都是來(lái)源于一些人的直覺(jué)?!币虼耍庇X(jué)思考得到的方法和思路往往是有效的甚至是最佳的,也是具有創(chuàng)造性的。一般來(lái)說(shuō),知識(shí)經(jīng)驗(yàn)越豐富,直覺(jué)洞察力和判斷力就越強(qiáng)。因此,直覺(jué)思維是可以進(jìn)行訓(xùn)練和培養(yǎng)的。
1.提煉算法思想。教師提供隱含算法思想的項(xiàng)目,請(qǐng)學(xué)生以自然語(yǔ)言的形式直覺(jué)概括解決問(wèn)題的思路。如虛擬機(jī)器人教學(xué)中,不同任務(wù)中都會(huì)包含行進(jìn)任務(wù),如走軌跡、高架、城市道路、迷宮、盤山公路等不同路況。
2.誘導(dǎo)算法思想。直覺(jué)的生成需要相關(guān)知識(shí)的積累和特定情境的激發(fā)。筆者通過(guò)提問(wèn)、矛盾或失敗結(jié)果呈現(xiàn)等方法把學(xué)生表面、感性的“直覺(jué)”推向深入、理性和完善。如《神秘迷宮》項(xiàng)目,請(qǐng)學(xué)生把自己設(shè)想成機(jī)器人,閉眼沉浸在場(chǎng)景中思考走出迷宮的辦法。通過(guò)追問(wèn)“迷宮深處四周可能都有墻,辨不清方向怎么辦?”他們恍然大悟:“始終沿墻走!”在“跟著感覺(jué)走”的過(guò)程中,他們的直覺(jué)思維得到了充分展現(xiàn),在教師的誘導(dǎo)下得到了推進(jìn)。這種模擬真實(shí)情景下的問(wèn)題往往是未經(jīng)洗凈熨平的原生態(tài)問(wèn)題,解決思路也是開(kāi)放多樣的,因此呵護(hù)、扶持他們直覺(jué)思考的積極性至關(guān)重要。
3.拓展算法思想。將不同任務(wù)離散再重組,提取隱含共同算法思想的子項(xiàng)進(jìn)行拓展練習(xí),既可鞏固強(qiáng)化,也能激發(fā)學(xué)生新的思考,不斷擴(kuò)建他們?cè)械闹R(shí)網(wǎng)絡(luò)。如“巡跡踢球”學(xué)會(huì)了走黑色軌跡后,嘗試應(yīng)用到“跑道競(jìng)速”和“汽車總動(dòng)員”項(xiàng)目,三個(gè)任務(wù)中因軌跡線、邊界線和傳感器相對(duì)位置不同,或邊界線有連續(xù)性的差異,“始終走在路中間”這個(gè)基本的算法思想雖然可借鑒,但還不足以解決后兩者的問(wèn)題,這時(shí)教師要適時(shí)介入引導(dǎo)學(xué)生重新審視,幫助他們搭建思維的“橋梁”,逐步開(kāi)辟新思路。
(二)挖掘教材思想,建構(gòu)解決問(wèn)題的基本步驟
浙教版《信息技術(shù)》對(duì)計(jì)算機(jī)解決問(wèn)題的一般過(guò)程作了闡述,在課例安排時(shí)按任務(wù)分析、設(shè)計(jì)界面、編寫代碼、調(diào)試運(yùn)行四步驟進(jìn)行編排。教學(xué)時(shí),注重教學(xué)內(nèi)容這條明線的同時(shí),鼓勵(lì)學(xué)生去發(fā)現(xiàn)、模仿、實(shí)踐教材安排所體現(xiàn)的思想方法暗線,幫助學(xué)生習(xí)得解決問(wèn)題的基本方法與步驟。
1.問(wèn)題分析。通讀審視問(wèn)題,聚焦關(guān)鍵詞或特征,忽略無(wú)關(guān)信息,暫時(shí)隱藏細(xì)節(jié),把問(wèn)題簡(jiǎn)單化、清晰化。
2.項(xiàng)目分解。將大項(xiàng)目分解成已有經(jīng)驗(yàn)可解決的單個(gè)小項(xiàng)目,逐步細(xì)化、模塊化,為結(jié)構(gòu)化編程思想打下基礎(chǔ)。
3.算法設(shè)計(jì)。結(jié)合算法的基本要素進(jìn)行設(shè)計(jì):(1)數(shù)據(jù)對(duì)象的運(yùn)算和操作;(2)算法的控制結(jié)構(gòu);(3)匹配教材中涉及的算法。編程涉及要素(1)時(shí),關(guān)注運(yùn)算符選取、格式書寫、邊界條件及取值范圍等內(nèi)容,減少語(yǔ)法錯(cuò)誤及嚴(yán)謹(jǐn)性問(wèn)題;涉及要素(2)時(shí),建議先畫流程圖,重點(diǎn)分析分支結(jié)構(gòu)的判斷條件或循環(huán)結(jié)構(gòu)的循環(huán)變量、循環(huán)條件,再選擇合適的結(jié)構(gòu);涉及要素(3)時(shí),根據(jù)不同算法的特點(diǎn)和已有條件,逐個(gè)匹配和排除。教師提供如下表1,幫助學(xué)生搭建解決問(wèn)題的思考支架。
案例一:求兩個(gè)數(shù)的最小公倍數(shù)。學(xué)生直覺(jué)思考后,易得出方法a:根據(jù)數(shù)學(xué)思路,最小公倍數(shù)肯定能被兩個(gè)數(shù)都整除,因此,從1開(kāi)始每次循環(huán)增加1,往大找最小公倍數(shù)。
4.優(yōu)化改進(jìn)。進(jìn)行頭腦風(fēng)暴,集思廣益,在原有基礎(chǔ)上進(jìn)行算法迭代,獲得思維進(jìn)階。上述案例改進(jìn)方法如下:方法b:最小公倍數(shù)肯定大于等于兩個(gè)數(shù)中的最大值,從最大值開(kāi)始每次循環(huán)增加1,往上找最小公倍數(shù),減少了循環(huán)次數(shù),節(jié)約了執(zhí)行時(shí)間。方法c:最小公倍數(shù)肯定大于等于兩個(gè)數(shù)中的最大值,并且一定是最大值的整數(shù)倍。因此,從最大值開(kāi)始,每次循環(huán)按最大值的倍數(shù)增加,循環(huán)次數(shù)更少,時(shí)間更省,算法更優(yōu)。
簡(jiǎn)析:在教師引導(dǎo)下采用了問(wèn)題分析、項(xiàng)目分解、算法設(shè)計(jì)、改進(jìn)優(yōu)化的四步操作法,深入探討了最小公倍數(shù)的問(wèn)題,給學(xué)生示范了解決問(wèn)題的一般方法和步驟。分析問(wèn)題時(shí),我們應(yīng)聚焦關(guān)鍵詞,明確求解的問(wèn)題。項(xiàng)目分解時(shí),厘清公倍數(shù)的概念以及它們所隱含的條件,再把問(wèn)題細(xì)化為:(1)如何驗(yàn)證n是a和b兩數(shù)的倍數(shù);(2)如何確定求得的n是所有公倍數(shù)中的最小的。算法設(shè)計(jì)時(shí),應(yīng)鼓勵(lì)學(xué)生用自然語(yǔ)言描述解決方案。自然語(yǔ)言是日常語(yǔ)言,使用熟練,排除了對(duì)編程語(yǔ)言不熟悉引起的干擾而回歸到解決問(wèn)題本身,通過(guò)填寫表格來(lái)明確算法的基本要素,為后續(xù)編寫代碼做好鋪墊。
(三)引導(dǎo)遷移學(xué)習(xí),習(xí)得算法思想的利器
遷移學(xué)習(xí)是指用某個(gè)問(wèn)題中獲取的知識(shí)和經(jīng)驗(yàn)去解決另一個(gè)不同但相關(guān)的問(wèn)題,有歸納、類比、演繹等不同方法。筆者在教學(xué)中發(fā)現(xiàn),用類比法來(lái)比較源問(wèn)題與目標(biāo)問(wèn)題的異同,分析兩者的結(jié)構(gòu)框架和相關(guān)特征,會(huì)因易于掌握而被學(xué)生接受。
1.結(jié)構(gòu)相似遷移。面臨新問(wèn)題時(shí),引導(dǎo)學(xué)生分析源和目標(biāo)問(wèn)題之間的結(jié)構(gòu)異同,建立新舊問(wèn)題之間的關(guān)聯(lián),從而利用已知去解決未知。教材課后的習(xí)題,基本都是本課內(nèi)容的鞏固性和拓展型練習(xí),在結(jié)構(gòu)上和例題有相似之處。使用這些練習(xí)時(shí),教師可指導(dǎo)學(xué)生把練習(xí)和例題結(jié)合起來(lái)分析它們的相似性,從結(jié)構(gòu)上進(jìn)行類比遷移。
簡(jiǎn)析:三個(gè)問(wèn)題看似截然不同,分析后發(fā)現(xiàn)結(jié)構(gòu)完全相同。求解問(wèn)題、循環(huán)變量的初始值、步長(zhǎng)都相同,終止值都是確定值,累加和都是前i項(xiàng)的累加。其中循環(huán)變量的提煉是難點(diǎn),經(jīng)歷過(guò)棋盤問(wèn)題后,寶塔問(wèn)題中循環(huán)變量是類似的,憑直覺(jué)就可得到。累加問(wèn)題的循環(huán)變量,學(xué)生的直覺(jué)是[1i],經(jīng)追問(wèn)“此時(shí)步長(zhǎng)是多少?”,他們會(huì)發(fā)現(xiàn)這個(gè)設(shè)定不成立,因步長(zhǎng)不是一個(gè)固定值,問(wèn)題隨即轉(zhuǎn)化為“循環(huán)變量如何確定,步長(zhǎng)才能是一個(gè)固定值?”,突破此難點(diǎn)后,這三個(gè)看似完全不同的問(wèn)題可通過(guò)結(jié)構(gòu)遷移迎刃而解。此案例引導(dǎo)學(xué)生思考求什么,再進(jìn)行分解細(xì)化,確定各要素,解析結(jié)構(gòu),從而幫助學(xué)生條理清晰地進(jìn)行類比遷移學(xué)習(xí)。
2.特征相似遷移。特征是指問(wèn)題外表或形式上獨(dú)特的標(biāo)識(shí),比結(jié)構(gòu)更易被發(fā)現(xiàn),因此,學(xué)生更樂(lè)于利用特征相似性進(jìn)行遷移學(xué)習(xí)。如 “跑道競(jìng)速”和“金字塔漫游”路面情況基本相同,都有兩條連續(xù)邊界線,只是路面顏色不同,因此,面臨“金字塔漫游”時(shí),腦海中馬上會(huì)浮現(xiàn)已有的經(jīng)驗(yàn),傳感器的選擇和安裝位置等方案的遷移也就水到渠成了。
四、結(jié)語(yǔ)
經(jīng)過(guò)教學(xué)實(shí)踐,筆者所帶學(xué)生在近三年的省、市、區(qū)各級(jí)的機(jī)器人、Scratch編程比賽中有20多人次獲獎(jiǎng),可見(jiàn)教師有意識(shí)地引導(dǎo)學(xué)生構(gòu)建算法思想,對(duì)提升他們解決問(wèn)題的能力有較明顯的效果。
參考文獻(xiàn):
[1]中華人民共和國(guó)教育部.普通高中信息技術(shù)課程標(biāo)準(zhǔn)[S].北京:人民教育出版社,2017.
[2]李范珍.基于STEM理念的初中數(shù)學(xué)自主課堂的構(gòu)建探索[J].科學(xué)咨詢,2020(17).
(責(zé)任編輯? 范娛艷)