林美汐
摘要:由于我國普通高中的培養目標是進一步提升學生綜合素質,著力發展核心素養,而計算思維正是信息技術學科核心素養的核心要素組成部分,是每個學生為數字世紀做好準備的關鍵。培養學生利用計算機編程實現算法來解決所給出的問題,是培養學生計算思維能力的一個典型代表。為此,本文針對如何利用算法設計培養學生的計算思維做一個初步的研究。
關鍵詞:算法;計算思維
中圖分類號:G633?? 文獻標識碼:A?? 文章編號:1672-9129(2020)11-0207-01
1 國內外關于計算思維的探究
2006年3月,周以真教授在CACM上發表《Computational Thinking》一文。2011年周以真教授對“計算思維”的定義為:計算思維是指對問題進行闡釋和解決的思考過程,并形成能被信息處理機構有效執行的解決方案。自卡內基梅隆大學的周以真教授提出計算思維概念以來,如何培養學生的計算思維成為國內外信息技術教學改革的研究熱點,越來越多的國家開展了計算思維的研究與教學實踐。
在國內,我國學者也圍繞在教學中培養計算思維的相關問題進行了積極探討。在“計算思維能力培養”方面,蘇小紅等認為程序設計課程以應培養學生的計算思維和問題求解能力為重,不能單純地講解語法和程序設計方法。在“教學模式探究”方面,湯濤給出了以培養學生計算思維能力為目標的教學模式及實施過程。黃靜等提出基于計算思維的意識、方法和能力培養,借鑒任務驅動教學法,構建程序設計課程教學模式,以解決程序設計課程教學中存在的問題。
2 利用算法設計培養學生的計算思維技能
在計算思維技能中,算法思維具有非常鮮明的計算機科學特征。有些問題是一次性的,但解決這些問題的方案,則可以不斷發展。在同類問題一再出現時,算法思維就可以介入。沒有必要重新每次從頭思考,而是采用每次都行之有效的解決方案。
算法思維是在思考使用算法來解決問題的方法。這是學習自己編寫計算機程序時需要開發的核心技術。然而目前在編程方法加工信息中,重實用,輕思維,重程序,輕算法,以編寫程序代碼為主,強調編程技巧,注重語句語法,忽視算法思維的培養是常態。其結果是學生只會根據教師提供的標準算法,機械式的模仿代碼編寫,缺少思維能力和創造意識,更不會將算法思想遷移到其他問題的解決中。因此,利用算法培養算法思維尤為重要。
(1)抽象問題模型,培養學生思維的概括性。思維的概括性是指將許多具有某些共同特征的事物,或者是某種事物已分離出來的一般的、共同的屬性特征綜合起來。而算法首先是解決一類問題的方法和步驟,把具體問題抽象成一定的模型,進而解決這一類問題,正是培養思維概括性的好方法。首先要對感知材料形成總體輪廓認識,從感覺上發現十分突出的特點;其次要從感覺到共性問題中肢解分析,形成若干分析群,進而抽象出本質特征;再次,要對抽象出來的事物本質進行概括性描述,最后形成具有指導意義的理性成果。例如,對于用計算機完成數列求和問題,只要找出規律,用循環結構,就可以解決有解的數列求和這一類問題。把所有感知到的對象依據一定的標準“聚合”起來,顯示出它們的共性和本質,能很好的增強學生思維的概括性。
(2)開展算法研討活動,培養學生思維的靈活性。思維的靈活性決定于高級神經活動過程的靈活性,但這種靈活性不是固定不變的,而是能夠通過教育或自我教育的作用,得到發展或發生變化的。通過算法研討活動,可以從多方面培養思維的靈活性,首先是起點的靈活性,鍛煉學生從不同的角度、方向和方法來解決問題;其次,過程的靈活性,從分析到綜合,從綜合到分析,靈活地進行“綜合地分析”。接下來引導學生善于運用規律,做到觸類旁通;最后思考是否有多種合理而靈活的答案。在此過程中大家彼此交流,集中眾多人的集體智慧,廣泛吸收有益意見,一些富有個性的學生聚集在一起,由于各人的起點、觀察問題角度不同,研究方式、分析問題的水平的不同,產生種種不同觀點和解決問題的辦法。通過比較、對照、切磋,這之間就會有意無意地學習到對方思考問題的方法,從而使自己的思維靈活性得到提高。
(3)開展算法競技活動,培養思維的發散性。發散思維亦稱擴散思維、輻射思維,是指在創造和解決問題的思考過程中,從已有的信息出發,盡可能向各個方向擴展,不受已知的或現存的方式、方法、規則和范疇的約束,并且從這種擴散、輻射和求異式的思考中,求得多種不同的解決辦法,衍生出各種不同的結果。算法的設計并沒有一個標準答案,同一問題往往會有多種不同的算法,例如排序問題,算法多種多樣,有選擇排序、冒泡排序、堆排序、快速排序等等。通過開展算法競技活動,在規定時間內針對同一問題設計不同算法,最終評選設計算法最多、最好的同學和大家分享。學生在緊張的氛圍中培養自己的思維速度,使其在短時間內表達較多的概念,枚舉較多的解決問題方案,探索較多的可能性。從不同的角度靈活考慮問題并創造性的設計出多種算法,可以充分提高學生思維的發散性。
3 結語
計算思維是一種高層次的思考方式,是每個人得以更好學習和發展的基本技能,不僅僅屬于計算機科學家。它對所有的領域、職業都是適用的,都能夠從中受益。我們應當使每個學生在培養解析能力時不僅掌握閱讀、寫作和算數,還要學會計算思維。計算思維的培養,離不開日常教學的點滴積累。計算思維的挖掘,對未來計算機科學的發展具有極大的意義。而算法是信息技術學科的核心課程,擔負著培養學生計算思維能力的重任,需要信息技術教師花更多的時間與精力去探索與研究。
參考文獻:
[1] Jeannette M.Wing.Computational Thinking[J].Communications of the ACM.2006,(03):34-35.
[2]蘇小紅,車萬翔,王甜甜.如何在程序設計課程中培養計算思維能力[J].工業和信息化教育,(6):32-36.