錢煥春


摘要: 新課標(biāo)要求提升學(xué)生的計算思維,而我們現(xiàn)行的教學(xué)方式很大程度上是學(xué)生讀取已有程序,分析猜測出題人的算法思維,缺少了在計算思維中抽象特征、建立結(jié)構(gòu)模型、通過判斷、分析與綜合各種信息資源、運用合理的算法形成解決問題方案的能力。本文通過項目學(xué)習(xí)的方法試圖提升學(xué)生的計算思維,提升學(xué)生程序設(shè)計的算法思維,提升學(xué)生的學(xué)生核心素養(yǎng)。
關(guān)鍵詞: 項目學(xué)習(xí);算法思維;計算思維;程序設(shè)計
中圖分類號: G633.67 ? ? ? ? ? ?文獻標(biāo)識碼: A ?文章編號: 1992-7711(2019)22-117-2
一、學(xué)科發(fā)展、存在困境
1.學(xué)科發(fā)展、未來趨勢
隨著新課標(biāo)(2017)的出臺,高中信息技術(shù)課程旨在全面提升全體高中學(xué)生的信息素養(yǎng),提出了核心素養(yǎng)概念,其中計算思維是核心素養(yǎng)中重要一環(huán)。學(xué)生要學(xué)會運用計算思維分析與識別問題,通過抽象、建立模型,最終設(shè)計解決方案。而算法思維是計算思維重要一部分體現(xiàn),高中信息技術(shù)中如何培養(yǎng)學(xué)生的計算思維,提升學(xué)生的算法思維,促進學(xué)生程序設(shè)計能力,值得我們?nèi)パ芯浚瑖L試,突破。
2.學(xué)科教學(xué)、思維困境
在實際教學(xué)的過程中我們發(fā)現(xiàn)學(xué)生算法思維不易落實,現(xiàn)在的程序設(shè)計教學(xué)模式基本上是教師給出問題、算法思路和部分代碼段,讓學(xué)生去填寫相應(yīng)的代碼。這種模式雖然提高了教學(xué)節(jié)奏,但是學(xué)生不知道為什么要這樣設(shè)計,為什么可以如此操作,算法設(shè)計的意義是什么?如何加深學(xué)生對算法思想的印象,提高學(xué)生的算法思維能力,提高學(xué)生算法思想的遷移能力,盡量拉平學(xué)生之間的差距,是我們信息技術(shù)教師面臨的一個迫在眉睫的問題。
3.上下求索、黎明之光
通過查閱文獻和實踐研究積累,我們發(fā)現(xiàn)項目學(xué)習(xí)是一個較為合適的提升算法思維的方法途徑。項目式學(xué)習(xí)(project based learning)是一種動態(tài)的學(xué)習(xí)方法,通過PBL讓學(xué)生自主、主動的探索、發(fā)現(xiàn)現(xiàn)實世界中存在的問題, 通過不斷探索,解決問題。學(xué)生在這個過程中領(lǐng)會到更深刻的知識和技能。
二、項目引領(lǐng)、真實情境
算法思維是一種思維方式,要通過實踐求證,在反復(fù)嘗試中逐步形成的可行方案。它于我們生活中的思維方式略有不同,學(xué)生要跳出固有思維方式,計算機原理出發(fā),設(shè)計符合計算機本身運行特點的算法。通過項目學(xué)習(xí),設(shè)計真實的情境,提供學(xué)生自由探索的環(huán)境,讓學(xué)生在不斷的嘗試中適應(yīng)計算機思維,設(shè)計合適的算法程序。課堂教學(xué)中設(shè)計一個合理的項目,通過實例來貫穿整堂課,在不斷的探索中摸清原理、加深印象,提升算法的設(shè)計能力。
例如我們在課堂上教授互換語句時(t=a;a=b;b=t),要使用臨時變量t來過度,但是學(xué)生在設(shè)計的時候會直接想到的是a=b;b=a,顯然這樣是錯誤的。學(xué)生從實際生活的習(xí)慣中就覺得互換,只要兩樣?xùn)|西換一下就行,沒有想到互換的中間過程,在這里我們可以設(shè)置一個簡單的項目,讓學(xué)生去思考,互換到底是怎么實現(xiàn)的。
設(shè)計項目:有兩個不同的容器,其中分別放蘋果和梨,要求學(xué)生設(shè)計算法程序,把碗中的蘋果和盤中的梨互換。提供實物兩個容器及相應(yīng)的水果,提供相關(guān)資料平臺(變量及賦值語句的概念)。
學(xué)生在拿到項目,在實行的過程中基本上設(shè)計的方案步驟都是:1.把盤中的梨放到碗中;2.把碗中的蘋果放到盤中。讓學(xué)生上臺實物演示,在互換梨或蘋果的時候提示學(xué)生新的內(nèi)容會覆蓋舊的內(nèi)容,是否可以實現(xiàn)互換?通過實際操作來檢驗學(xué)生設(shè)計方案是否可行,對項目進行階段性評價。
再對學(xué)生的項目設(shè)計進行分析,以上錯誤產(chǎn)生的原因?qū)W生習(xí)慣性的使用平時的慣性思維考慮問題,忽略了算法程序有自己的規(guī)則,學(xué)生脫離了是程序中的規(guī)則,即互換的過程其實是一個賦值的過程,變量賦值會把原內(nèi)容覆蓋。
引導(dǎo)學(xué)生在實際設(shè)計時先收集相關(guān)資料,再是把問題抽象化、模型化。如把碗抽象為變量A,盤抽象為變量B,問題抽象為要實現(xiàn)A與B中的值互換。再是讓學(xué)生實際操作互換過程,就會想到有把A中的蘋果拿出來放到空變量C中,再把B中的梨放到A,C中的蘋果放到B中。
最后對整個項目設(shè)計過程進行交流評價:1.對學(xué)生的設(shè)計進行展示;2.分析設(shè)計過程中存在的問題;3.總結(jié)課堂中收獲及相應(yīng)知識。
通過項目實施,在“嘗試——驗證——修正”的過程中,學(xué)生實際體驗,收集資料,設(shè)計方案,嘗試可行性,最終得到可行結(jié)果。這樣既培養(yǎng)了學(xué)生的算法思維,突出了以計算機的角度思考問題,鍛煉了學(xué)生的分析設(shè)計能力,通過實際設(shè)計加深了學(xué)生印象,提升學(xué)生興起,提高學(xué)生知識點記憶。達到高效學(xué)習(xí)。
三 、項目提升、開闊思路
解決問題的算法有多種多樣,而最終要找出能正確的、高效的、簡潔的解決問題方法。學(xué)生的思維是純潔的,沒有固定模式的,在設(shè)計算法時他們的思路是五花八門的,有的思路不行,有的思路可行,有的思路效率低下,有的思路高效,教師要引導(dǎo)學(xué)生從多種方面中找出最優(yōu)算法。切忌直接拋出一個最優(yōu)算法,讓學(xué)生學(xué)習(xí),只有通過學(xué)生自身的不斷嘗試,通過項目的實施,一步步深入分析,得到的解決問題的方法才是自身的。
如在學(xué)習(xí)枚舉算法時有一個經(jīng)典問題“水仙花數(shù)”,我們可以設(shè)計項目:我們生活中有很多有特點的數(shù)字,如153=1^3+5^3+3^3,這個數(shù)字每一位的三次和剛好等于它自己,老師對這些數(shù)很感興趣,在網(wǎng)上查到這些數(shù)字叫“水仙花數(shù)”,我們能不能設(shè)計一個算法,找一下所有的水仙花數(shù)。
設(shè)計前引導(dǎo)學(xué)生分析問題:1.三位數(shù);2.每一位的三次之和;3.三次之和于這個三位數(shù)相等。學(xué)生深入分析:1.三位數(shù)范圍100-999;2.怎么得到三位數(shù)中每一位數(shù)值;3.比較找符合結(jié)果。
學(xué)生設(shè)計過程中主要問題是第2步,怎么得到三位數(shù)中的每一位值,用i表示三位數(shù),有一下幾種情況:
1.a=i \100; b=i\10 mod 10 ; c=i mod 10
2.a=i\100 ;b=(i-a*100)\10;c=i-a*100-b*10
這兩種方法都是通過數(shù)值取整、取余的方法來實現(xiàn),實際操作可行,這是常規(guī)思路。但是在學(xué)生設(shè)計的過程中還有一種情況:
a=val(mid(cstr(i),1,1)) ;b= val(mid(cstr(i),2,1)) ;c= val(mid(cstr(i),3,1))
這種設(shè)計的思路是通過字符串來處理數(shù)據(jù),也可以實現(xiàn)三位數(shù)每一位分解。這種思路不是常規(guī)思考思路,但是學(xué)生會想到,因為學(xué)生沒有固定思維,他們把學(xué)到的知識應(yīng)用到解題中,作為教師要給予肯定及鼓勵。但是教師要引導(dǎo)學(xué)生培養(yǎng)一個意識,數(shù)字問題能用數(shù)值的方式解決盡量使用數(shù)值方式解決問題,我們要跳出具體的程序語言,設(shè)計合適算法。
還有的學(xué)生會從另一種角度考慮問題:1.先有百位、十位、個位上的數(shù)字;2.再通過這三位值來組成三位數(shù);3判斷百位、十位、個位數(shù)的三次和與三位數(shù)是否相等。a^3+b^3+c^3=a*100+b*10+c
通過反相思考,我們也能解決尋找水仙花數(shù)的問題。通過項目學(xué)習(xí)方法的實施,培養(yǎng)學(xué)生通過不同的角度,不同的思路,設(shè)計算法,驗證算法思路,在不斷嘗試過程中解決問題,擴展學(xué)生的思路,提升學(xué)生知識點掌握能力,促進算法思維養(yǎng)成。
通過“水仙花數(shù)”的學(xué)習(xí),擴展學(xué)生眼界,引出“自冪數(shù)”,讓學(xué)生嘗試4位數(shù)(玫瑰花數(shù))、5位數(shù)等數(shù)的 “自冪數(shù)”驗證。通過同類型問題的解答,培養(yǎng)學(xué)生的知識遷移能力和知識應(yīng)用能力。
同樣的問題有多種設(shè)計思路,多種算法思維,如“百錢百雞”問題、“斐波那契數(shù)列”問題等等都可通過多種方法解決問題,教師通過適當(dāng)?shù)囊龑?dǎo),充分調(diào)動學(xué)生的思維能力,開闊學(xué)生的思路,讓學(xué)生進行各種嘗試,驗證正確性,提升學(xué)生的知識應(yīng)用能力和知識的理解能力。
四、項目遞進、逐層深入
知識的落實有其連貫性,算法思維的培養(yǎng)也是如此,通過知識點的授予,逐步提升,逐漸深入。項目學(xué)習(xí)的特點可以把一個大項目分解為多個小項目,把難題簡化,通過小項目的實現(xiàn)最終完成一個大項目。
例如:在計算機系統(tǒng)中,數(shù)值一律用補碼來表示和存儲。怎么樣知道某個數(shù)在電腦存儲中的編碼呢?
資料收集:補碼的定義。1.符號位,正數(shù)最高為位0,負(fù)數(shù)最高為1;2.正整數(shù)的補碼是其二進制表示,與原碼相同;3. 負(fù)整數(shù)的補碼,將其二進制數(shù)除符號位外的所有位取反得到反碼;4.對反碼加1得到補碼。
通過補碼的定義,我們可以拆分為三個小項目:1.進制轉(zhuǎn)換,十進制轉(zhuǎn)換為二進制;2.反碼求解;3.進制加法進位運算。三個小項目可以設(shè)計三個課時的連貫系列課程。
在各個項目實施的過程中落實項目的知識點,通過小項目的實現(xiàn),逐步推導(dǎo)大項目,最終解決問題。
1.在進制轉(zhuǎn)換項目中要求實現(xiàn)十進制轉(zhuǎn)換為二進制,原理是除二取余法,實施的過程中落實循環(huán)語句反復(fù)執(zhí)行除二取余,以及除二取整,出口是整數(shù)部分為0為止;
2.第二課,重點強調(diào)學(xué)生的解析思維能力,取反的結(jié)果是1變?yōu)?,0變?yōu)?,結(jié)合前一課中得到余數(shù),對其取反,可以通過“1-余數(shù)”實現(xiàn);
3.第三課重點是進位算法,逢二進一的進位方法,注意進位和當(dāng)前位的值的變化。
通過教材的整理,把相關(guān)聯(lián)的知識點串聯(lián)起來,設(shè)計一個階段性項目發(fā)布給學(xué)生,再是把大項目拆分成幾個小項目,大問題分解成小問題,“大事化小”,逐個落實,逐個擊破,最終實現(xiàn)整體突破,在使用的過程中鞏固已學(xué)知識點,培養(yǎng)學(xué)生分步實現(xiàn)能力及合作能力。
五、項目實施、得失之處
項目學(xué)習(xí)通過生活中真實事例設(shè)計問題,實例引導(dǎo),更貼切生活,使得學(xué)生學(xué)習(xí)目標(biāo)明確,而不會出現(xiàn)學(xué)習(xí)知識和實際應(yīng)用脫離,學(xué)生迷茫現(xiàn)象。項目學(xué)習(xí)能更好的吸引學(xué)生的學(xué)習(xí)興趣,明確學(xué)生的學(xué)習(xí)目標(biāo),提升學(xué)生的學(xué)習(xí)效率。
算法思維要求學(xué)生最終能自行收集分析材料,提煉規(guī)律,形成算法模型,最終通過計算語言實際解決問題。在設(shè)計算法的過程中要進行不斷的“試錯”,不斷的“排錯”,通過嘗試——驗證——嘗試的過程逐步完成最終算法。項目學(xué)習(xí)的方法剛好可以滿足算法思維的思考過程,通過一個項目,學(xué)生自主收集資源,自行設(shè)計方案,測試方案,不斷嘗試,得到最終的解決方案,這和算法思維完全符合。
在實施的過程中也發(fā)現(xiàn)了項目學(xué)習(xí)的一些不足之處:1.項目學(xué)習(xí)是學(xué)生自主探索學(xué)習(xí),通過試錯,不斷更正方向,一步步現(xiàn)在最終目標(biāo),在實行的過程中所花費的時間是傳統(tǒng)授課方式的幾倍,甚至十幾倍;2.對于一些大型問題,因?qū)W生能力有限,要讓學(xué)生自行設(shè)計算法,有點強人所難。
總體來說,項目學(xué)習(xí)在算法思維培養(yǎng)上是適用的,通過項目的引導(dǎo),使得學(xué)生養(yǎng)成良好的算法設(shè)計習(xí)慣,能自行設(shè)計簡單算法,解決實際問題。項目學(xué)習(xí)方式能提升學(xué)生的自主學(xué)習(xí)和探索能力,培養(yǎng)學(xué)生成為一位數(shù)字化時代合格信息公民。
[參考文獻]
[1] 普通高中信息技術(shù)課程標(biāo)準(zhǔn)(2017年版)[M].人民教育出版社,2018.
[2]羅廷洪.項目教學(xué)法在電子技術(shù)基礎(chǔ)教學(xué)中的應(yīng)用[J].現(xiàn)代職業(yè)教育,2019(06):108-109.
[3]冷偉.在綜合實踐活動中開展項目式學(xué)習(xí)的探索[J].課程教育研究,2019(11):215-216.
(作者單位:浙江省杭州市富陽區(qū)新登中學(xué),浙江 杭州 311400)