黎啟韶



【摘要】本文結合小學六年級的Scratch教學案例,通過如何利用問題解決的數學思維幫助學生進行程序指令理解、創新思維及計算思維的培養,同時也提出了提升學生計算思維水平的有關策略與途徑,希望通過本文為其它在Scratch課程教學實踐者和科研人員帶來啟示和借鑒。
【關鍵詞】Scratch程序設計? ?信息技術? ?數學思維? ?計算思維
【中圖分類號】G623.5
【文獻標識碼】A
【文章編號】1992-7711(2020)12-125-03
隨著信息技術的迅猛發展,信息素養與創造能力的培養成為信息技術教育的主題,程序設計回歸中小學課堂并成為重要的教學內容,傳統的基于代碼的編程方式遭受質疑,可視化的思維表達方式越來越受到重視。Scratch程序是一款面向少年兒童開發的簡易編程工具,它由美國麻省理工學院設計開發,其代碼指令和參數通過積木形狀的程序模塊實現,學生用鼠標拖動模塊到腳本區組合起來,就可以實現豐富的功能,用鼠標點擊程序組合,便可直接看到程序的效果,觀看程序效果不再需要漫長的編譯與封裝,實現了所見即所得的可視化編程夢想。
由于Scratch的優勢,現已成為中小學最主要的程序設計課程,但現行的Scratch教材存在內容不夠細化、學習指引不夠具體、程序指令說明不夠詳細等短板。教師如何在發揮教材本身功能的基礎上,通過情景創設、任務設定,提高學生學習的興趣、加強他們對程序語法理解,發展他們的創新性思維,筆者嘗試使用問題解決的數學思維引導學生進行程序設計,得到意想不到的催化效果。
一、在深化指令語言認識方面產生催化
雖然Scratch程序對其指令語言已進行了極大的簡化,但對于指令內涵與功能的認識仍然是少年兒童Scratch學習道路上最大的障礙。如何深化少年兒童對Scratch語言中每一個指令的內涵與功能的認識,從而掌握指令使用的方法是每一位信息技術教師想要達到和突破的目標。現有教材為了加強小學生對于Scratch指令的認識,對于學習素材進行了針對性的選擇與優化,特別是以生活化的實例去說明指令代碼的含義與組合方法。但由于孩子欠缺生活經驗,且沒有對教材中的生活化問題進行系統學習,因此他們有可能對教材中的生活化實例產生認識模糊,這樣反而造成了對指令代碼學習的曲解。
在廣州市小學信息技術教材第三冊第二章第19課《鍵盤信息的獲取與偵測》中,運算符“或”和“與”的區別是學生比較難理解的,對此教材也沒有提供實例和內容予以說明。為了填補這個空白,筆者通過數學問題設置項目任務組:
任務1.請設計問答器,判斷輸入答案是否為:一個大于0且小于3的整數;
任務2.請設計問答器,判斷輸入答案是否為:一個大于0且小于1的小數;
六年級學生對于上述兩個數學問題的答案是比較清晰的,任務1的答案是1或2,任務2的答案區間則在0和1之間。在設計任務1時,學生比較容易掌握需要用“或”運算符進行制作(程序編寫如下):
程序運行后效果也符合任務要求。
但仿照這個方法設計任務2(程序編寫如下):
卻出現無論輸入正確答案或是錯誤答案,程序均提示答案正確的現象,顯然這個程序編寫是有問題的。此時,筆者使用了“數軸”這一數學工具來說明錯誤的原因:
通過以上圖示,學生明白到“或”運算符不適合表示“一個大于0且小于1的小數”,而“與”運算卻正好合適(程序編寫如下):
此時教師要求學生能否用數軸畫出以上程序指令的意思,并說明為何“與”運算符適合任務2的要求,學生則畫出以下數軸圖示:
兒童教育心理學表明,選擇合理的情景既能激發學生盡快進入學習的狀態,也有助于他們認知新的事物。數學本身符號化、圖形化的特點能很好地詮釋Scratch代碼的內涵,讓學生將難以理解的代碼通過數學概念與原理化解為他們能夠理解的語言。可以說應用數學情景與數學工具進行Scratch程序指令的釋義,符合兒童教育心理學特點和要求,既能夠有效激發他們的學習興趣,也有助于代碼內涵的理解。
二、在培養學生應用創新方面形成催化
Scratch是一款面向少年兒童的程序開發軟件,為了易于理解與使用,它的指令代碼均以積木式的形式存在。雖然單一的積木可能只代表一個功能,但通過多個積木的組合,也可以實現無窮的程序效果,所以我們在Scratch教學時,不僅注重學生在程序設計中的規范性,更要注重培養他們的創新性。筆者實際教學中,運用數學的問題解決思維,也能很好地實現這個目標。
在廣州市小學信息技術教材第三冊第二章第19課《鍵盤信息的獲取與偵測》中,對于兩個答案的問題預設進行程序設計,教材不僅提供了說明,而且提供了設計范例,學生比較容易理解與掌握。筆者也仿照教材內容設計了以下任務項目,讓學生進行練習:
任務1:請設計問答器,判斷輸入答案是否為7的約數。
由于7的約數只有1和7,因此學生很快掌握使用“或”運算符編寫程序的方法(程序編寫如下):。
但是,如何使用“或”運算符實現三個、甚至是更多個答案的預設,教材中就沒有提及。如何通過問題情景創設與恰當的引導,使學生創新性地想出解決辦法,筆者采用了以下策略:
任務2:請設計問答器,判斷輸入答案是否為4的約數的問題器。
任務3:請設計問答器,判斷輸入答案是否為6的約數的問題器。
對于上述兩個任務中的數學問題,學生比較容易得出任務2有3個答案、任務3則有4個答案。對于如何利用“或”運算符實現這兩個任務要求的問題?教師提示學生從兩個方面思考:
1.是否有新的指令可以實現?
2.在原有“或”運算符的基礎上思考,是否有新的拼組方式實現?
經過小組討論,學生發現“或”運算符本身可以反復嵌套,即按以下形式嵌套
方式一:“或”運算符其中一個條件判斷框(六角形框)嵌套另一“或”運算符,實現三個答案的預設:
方式二:“或”運算符兩個條件判斷框(六角形框)嵌套兩個“或”運算符,實現四個答案的預設:
方式三:在方式二的基礎上,每個“或”運算符的條件判斷框(六角形框)中分別嵌套“或”運算符,實現多個答案的預設:
程序設計的創新性就在于研究問題時不墨守成規,要善于發現。利用數學問題解決的思路,有利于在最平常的問題中發現最不平常的問題,使學生在演繹、類比、分析、探究中發現指令組合的創新形式,發展其創新思維。在利用數學問題解決的思維培養學生創新性的過程中,應注意以下幾點:
1.重視“程序糾錯”的教學,培養學生發現問題的能力。
2.加強“程序推理”的教學,培養學生重構指令重組的思維能力。
3.提倡“一題多解”的要求,培養學生求同存異的思維能力。
三、提升學生計算思水平的途徑
計算機程序設計與數學計算思維有著千絲萬縷的關系,我們反觀現在形形色色的計算機軟件,它們的開發無不建立在數學計算的基礎上,如:程序設計模型論建立在邏輯學的基礎上;游戲和圖形軟件開發大量引用了坐標變換和矩陣運算,這是運用了數學的線性代數;信息安全方面的數據儲存則運用了小波理論與代數編碼,小波理論實際是函數的一種衍生理論。美國卡內基·梅隆大學的周以真教授(J.M.Wing)對計算思維進行了明確的定義。她指出:計算思維涉及運用計算機科學的基礎概念進行問題求解、 系統設計和理解人類行為,它涵蓋了反映計算機科學之廣泛性的一系列思維活動。 是通過約簡、嵌入、轉化和仿真等方法,將一個看來困難的問題重新闡述成一個我們知道怎么解決的問題。 計算思維如同閱讀、寫作、算術一樣, 應當是信息時代的每個人都具有的一種思維方式,并不是只有計算機科學家才有。以數學問題為載體,能夠讓學生在數學理性分析中洞悉程序算法的依據,讓學生理解程序設計的原理,并進行設計的實踐,體驗程序設計的全過程,對其計算思維的培養與發展在著重要的意義。利用問題解決的數學思維發展學生在程序設計中計算思維,可以遵循以下途徑進行:
1. 重視計算思維的結構化分類
計算思維作為一種涵蓋計算機科學之廣度的一系列思維活動,它必然存在結構化分類的特征。不同的分類范疇的計算思維活動應有不同的教學方法,但針對性的數學問題情景往往有助于各類思維活動養成的訓練,在選取數學問題作為計算思維活動訓練素材時,既要考慮訓練目的、又要理清問題本質。
2.基于項目式學習任務(PBL)開展教學策略的制訂
研究表明,學生處于真實可信的情境中所進行的學習是最有效的,因為他們能夠清楚地知道完成任務的意義和價值并且能夠與之前的知識相聯系以應用于真實的世界中。PBL的學習任務本身就是一種任務情景設定,它以豐富多彩的作品形式表現最終的成果,即學生最終解決問題的獲得以各種作品的形式表達,這成為了學生學習的驅動力。在設計PBL任務時,應充分考慮學生知識獲取的最近發展區、并選擇易于思維遷移、工具應用的方向進行思考。
3.充分參考國內外計算思維教育課程的成果
國內外關于少兒計算思維培養已有一定的研究成果,在設計項目時,充分參考現有成果,有助于科學性、現實性的實現,使項目設計更有效體現教學目標,更有效發展學生的信息技術核心素養。
少兒編程教學作為信息技術課堂中新興的一個課題,需要廣大志同道合的同仁們共同努力,在編程教學研究的道路上勇于探索,才能為少兒編程教學帶來新的突破。將數學思維融入編程教學,是計算思維與軟件編程的耦合性特征決定的。現在更多的教師已將編程教學研究的目光聚焦計算思維的培養上,用數學原理解釋程序算法,讓學生在理解算法的基礎上了解程序設計的靈魂,這應該是少兒編程教學的最根本所在。
【參考文獻】
[1] [奧地利]阿德勒.著.兒童教育心理學.王童童.譯,中華工商聯合出版社.2017-11-01
[2] 游文杰.計算機科學中的數學——談計算機專業數學的學習[J]. 福建師大福清分校學報, 2004(2):16-18.
[3] 周以真.計算思維[J].Communications of the ACM雜志,2006年,3:34.