周潔 張永波
摘 要:計算思維源于我們解決問題的思維方式,也影響著我們解決問題的思維方式。本文結合折半算法解決問題的實例,采用了“案例+算法+實踐”相結合的教學方法,從教學目標設計——激發學習興趣、課堂教學策略的選擇——引入新知識、實踐教學設計和分層次教學、知識拓展、總結教學內容等幾方面提出了以培養學生計算思維為目標導向的教學設計的具體實施方法。
關鍵詞:計算思維 目標導向 折半查找
中圖分類號:G642;TP3-4 文獻標識碼:A 文章編號:1672-3791(2018)11(b)-0154-02
1972年,圖靈獎得主Edsger Dii.kstra提出了“工具影響思維”的論點:“我們所使用的工具影響著我們的思維方式和思維習慣,從而也深刻地影響著我們的思維能力”[1]。隨著計算機的高速發展,計算機技術使得計算機專家和其他領域科學家合作共同解決問題成為普遍現象,計算思維得以廣泛應用于生物、生態、經濟等各個領域。
這就需要我們在講述計算機基礎知識的同時,引入計算思維的基本思想,并在講解編程問題的時候使用計算思維解決問題的方法來理解和加深對算法的使用,這樣可以更好的讓學生習慣在解決問題的時候使用計算思維,進而在后續編程問題的學習中可以主動地、有意識地增加這方面能力的培養。并且可以更好的培養學生在其他學科中使用計算思維解決問題,將自己的專業和計算機技術結合起來,適應社會的發展需要。這將是我們在教學過程中要探討的教學設計方法。
1 什么是計算思維
2006年3月,美國卡內基梅隆大學的計算機科學系主任周以真教授最早給出了計算思維的概念:計算思維是運用計算機科學的基礎概念進行問題求解、系統設計,以及人類行為理解等涵蓋計算機科學之廣度的一系列思維活動[2]。計算思維要求我們在解決問題的時候要使用計算機科學的基礎知識,采用抽象和分解的方法,把一個復雜的任務分解成一個個小問題,再逐步解決,利用遞歸的推理方法來找到問題的答案。
我們現在生活在一個大數據的環境下,已有的理論與實驗手段已經不能更好地解決問題,所以就需要使用計算手段來輔助人們進行各種求解。因而計算思維應當成為這個時代中每個人都具備的一種基本能力。
2 以培養計算思維為目標導向的教學設計分析
針對不同專業,學生的思維方式存在很大的差異,教師在教學設計時應充分考慮到學生的不同學科,不同專業,結合他們的專業特點,有針對性地制定相應的教學目標,選擇適合各個學科的教學方法,讓學生能更好地接受計算思維,并能在以后的學習工作中運用計算思維解決問題。教師在教學過程中應該充分激發學生的學習能動性,由被動式接受到主動式參與。
在計算機編程的課程里會講授到很多的算法,其中很多內容都涉及到計算和計算思維,如折半查找。在折半算法的教學中引入計算思維,可做如下的教學設計。
(1)引入簡單案例,激發學習興趣。針對折半查找算法這一教學目標,可以先找到一個簡單的示例,讓學生在熟悉的話題中理解折半查找的算法思想,激發學生的學習興趣。例如,可以在師生之間開展一場猜數游戲,如讓學生寫下1~1000之間任意一個整數,教師問學生問題,學生回答“是”或“否”,直到找到正確答案,游戲結束。然后分析猜數的方法,通過游戲讓學生來理解折半算法的概念和思想,可以大大提升學生的學習興趣,讓被動式的灌輸教育變成主動式的探究學習。
(2)復習舊知識,引出新知識。教師做好知識梳理,由新知識內容需求,引導學生復習遞歸算法和N-S流程圖的相關知識點,然后啟發學生根據算法語言描述方法和N-S流程圖寫出猜數游戲的具體編程過程,通過提問了解學生的思維模式和應用能力,為后續的教學針對性地選擇教學方法。
(3)分層次教學。對于折半算法中的基本概念和必要的語法知識的講授,采用傳統的教學模式,首先講解必要的理論知識,然后設計簡單的教學案例,在案例的講解和實施中讓學生掌握相關的理論知識;而對折半算法的具體實現,則可以采用分組討論的模式,讓學生以探究合作的方式解決問題,找到答案,針對學生的不同答案,展開進一步的集體討論,分析算法的優缺點,最終找到最優答案,整個教學過程注重提高學生的計算思惟能力,達到預期的教學目標。
(4)知識拓展訓練,總結復習。采用折半算法類似的教學方式,繼續引入斐波那契數列的遞歸算法,該數列現在被廣泛用于金融領域的期貨技術和股票分析中,同時也直接應用于現代物理、化學等領域。采用折半算法的教學方法,讓學生繼續找到計算該數列的遞歸算法的編程方法。找到算法后,可以用互動良好的VB語言將算法編寫調試出正確的結果,在這一過程中重點側重于使用計算思維的抽象分解功能將具體問題符號化,寫出流程圖,編程實現。然后對學生寫的程序進行比較分析,哪種算法效率更高。最后總結課堂教學內容,根據所學知識編寫、調試課堂案例,完成實踐教程中對應的實驗內容。
3 結語
以上我們以折半算法為例介紹了怎樣通過先由學生熟悉的案例為切入點將計算思維的問題提出,再如何引導學生學會使用計算思維的抽象和分解功能來分析并解決問題,繼而拓展到將計算思維的遞歸算法應用到解決各種現實的問題中。在構造學習案例時,應該分層次分學科有針對性的找到難易不同、應用專業不同的各種案例,引導學生領會并主動思考案例中如何使用計算思維對問題。這樣通過不同案例由淺至深的遞進關系逐步培養起來學生的計算思維能力,讓學生不再拘泥于具體程序設計問題的學習,而是將內容重點轉移到問題的抽象、算法的構造、程序的實現和評價等知識上,從而進一步理解計算科學的本質――抽象和自動化。
參考文獻
[1] 王飛躍.從計算思維到計算文化[A].新觀點新學說學術沙龍文集7:教育創新與創新人才培養[C].2007.
[2] Wing JM.Computational thinking[J].Communications of the ACM,2006,49(3):33-35.