計算思維訓練下程序設計教學方法探討

時間:2022-10-13 11:26:30

導語:計算思維訓練下程序設計教學方法探討一文來源于網友上傳,不代表本站觀點,若需要原創文章可咨詢客服老師,歡迎參考。

計算思維訓練下程序設計教學方法探討

一、計算思維訓練方法

計算思維是高級思維。研究者普遍認為高級思維屬于高級認知能力,建立新思維過程是認知創新過程。積極性和批判是這個過程的兩個關鍵因素。依據學者馬扎諾的學習認知過程理論,積極性將激發思維訓練者內在的認知動力,將促使控制學習的自我系統調度工作,主動參與到認知建立過程中。如果積極性缺失,指揮認知系統處理知識的元認知等認知能力將無法發揮作用。思維訓練中的積極性主要體現在三個方面:(1)積極參與教學活動,內容要具有吸引性;(2)積極思考;(3)積極求精。著名教育心理學家斯騰伯格認為在照本宣科方式、問答方式和對話方式等三種基本教學方式中,對話方式是最適發激活學生的積極性,開展思維教學。同學通過對話逐步展開圍繞教學內容的分析討論,激發學生的求知欲,調動學生的積極性,活躍學生的思維,使學生主動地思考,讓學生充分討論并發表各自的見解。教師通過對話適時引導和評判,促進學生對于自己思維過程的反思和批判從而提高思維能力。批判是對思維過程的觀察、分析和評估過程。它通過反思對思維進行整理和重組,發現新的、合理的和優化思維模式。思維本身外界在人腦內部的映射,思維活動發生在內部,具有抽象性、非線性和隱蔽性等特征,將內隱的思維過程信息顯性化是思維訓練的關鍵因素。通過顯性化過程,將隱藏的思維結構、思考過程及所運用的方法展示出來,幫助用戶進行思維活動規律的提取與整理活動。

二、融入計算思維訓練的程序設計教學原則

現有程序設計類課程是計算機課程中的基礎性課程。傳統的教學目標是使學生掌握計算機語言的基本語法語句和程序結構,能夠正確使用語言編程解決的一些簡單問題。教學形式以理論講解為主,在課堂上列舉出計算機語言語法的各個知識點,再結合上機實踐操作來鞏固鞏固提高。通過學習,大多數學生擅長書面語法理論考試,回答各類填空或選擇題。懼怕上機編程,缺乏應用計算機程序解決問題的能力。現有的教學方法束縛了學生思維的發展,尤其是運用計算機綜合分析問題、解決問題能力的提高。目前,有許多老師開展了在程序設計課程中注重提高計算思維教學改革的嘗試。探討了算法與計算思維的關系,算法是計算思維在計算機求解問題的具體實現,并采用一題多解的方法來實現教學提高計算思維能力。發揮案例教學法作為一種互動式教學形式具有能調動學生主動思考的優勢,已被用在程序設計課程中培養計算思維。但是現有的教學案例方法只注意案例吸引學生的一面,在組織上,仍然是以傳輸知識為目標,沒有突出思維訓練的教學形式。以C語言程序設計課程為實例,介紹將程序設計課程與計算思維能力培養的可行性。缺乏系統性的教學組織形式和組織方法。利用漢諾塔作為經典案例探討計算思維和編程過程的關系。闡述程序設計課程教學中計算思維能力的培養方法。這些方法對于提高學生的計算思維能力起到一定積極作用,但是這些教學方法仍然是以程序語言為中心的教學模式。沒有從思維訓練本身特點出發,設計教學過程,從而影響了教學效果。編程過程是人們通過程序語言來表達解決問題的求解過程,即計算思維過程。程序語言是依據計算機構造特點而設計的諸多表達符號和規則的符號集合,起到人與計算機之間的中介作用。程序是計算機指令的某種組合,控制計算機的工作流程,完成一定的邏輯功能,以實現某種任務。程序所反映的人們根據計算機的特點,用計算機語言表述解決問題的結果,是人的自然思維方式到計算機思維方式的轉換能力。程序是人類思考的結果,也就是計算思維的顯性化結果。對程序的批判和討論將有助于提高計算機思維的認識。

(一)設計教學對話場景

首先,要以實際經驗情境為基礎案例。教學對話是通過對案例的剖析,以解決問題為主線展開。著名教育心理學家斯騰伯格美國教育家杜威又認為一個實際的經驗情境,是思維的開始階段,實際經驗情境的案例能夠活躍思維,促使學生思考問題。其次,案例不易太復雜要有多樣性,程序設計是基礎入門性課程,是建立計算思維的起點。太復雜的案例信息量大,學習時不易抓住重點,學生也會因難度大而挫傷積極性。多樣性的思維解決方案,這樣可以通過顯性比較這些思維的不同來促進認識計算思維,抓住各種思維的不同。最后,案例要有拓展性,能從計算思維的一個點,拓展到其它方面。通過不斷豐富,循序漸進。

(二)顯性化思維過程

(1)計算思維的本質是抽象和自動化。通過不同層次的抽象,忽視一些無關細節,將注意力集中在關鍵方面,控制待解問題的復雜性。抽象過程需要精確和嚴格的符號標記和建模,保證最終能夠進行機械自動化求解。自動化是在抽象化模型基礎上開展算法設計,實現機械化求解過程。編程過程是顯性化計算思維的過程。圖靈獎得主N.Wirth經典論述程序=數據結構+算法。(2)數據結構顯性化抽象思維。數據結構是數據與數據之間的邏輯關系,外界信息在程序中的抽象關系模型。(3)程序算法顯性化了自動化過程。算法是解決特定問題的步驟和方法。編程過程就是用計算機語言符號,如各種標識符、常量、變量、數組、函數和結構體等,描述實際問題的數據及數據之間的邏輯關系。問題求解實現的精確嚴格程序指令對算法的步驟進行十分清楚和準確的描述,使得計算機可以實現期望的輸出結果。

(三)反思思維過程

通過對顯性化的數據結構和算法的分析反思,可以提升計算思維能力。采用提問的方式,對編程中的思維過程進行觀察反思,整理和重組,發現新的、合理的和優化思維模式。編程解決問題的思維過程分為三個主要內容:抽象建模、算法選擇、編程實現??梢試@三個方面設計問題,一是思考的起點是什么?二是提出的解決方案是滿足需求?最后是在效率上是否有更好的辦法。

三、教學實例

程序設計教學一般分為兩個階段,第一個階段以語言教學為主,講授語言的基本命名規則和簡單語句,第二階段以語言的靈活運用為主,能夠解決簡單問題。第二階段是計算思維訓練的重點。

(一)首先設計對話情境

例如,作為剛剛開始選擇程序設計解決實際問題的案例我們可以考慮選取學生非常熟悉的雞兔同籠問題作為案例。因為這個案例具有一定的趣味性,而且同學們從小學到高中都學習過這個問題的不同解法,具有多樣性。而且可以通過與程序解法的比較,來發現計算思維解決問題的不同。雞兔同在一個籠子里,從上面數,有35個頭,從下面數,有94只腳。問籠中各有多少只雞和兔?這是一個中國古代《孫子算經》中經典的問題。根據問題可以先給出下列不同的解法。

(二)反思討論

圍繞三種解法后面不同的思維方式展開對話討論。奧數解法的思維過程是通過認真分析和觀察問題對象中內在的自然邏輯關系,通過算式加以表達的計算,重在一個巧字。數學方程解法較前一種解法上,在思維方法上多了一層抽象,用符號的形式表達了問題之間的聯系,并用數學方程工具加以解決。C語言的解題過程,具有明顯的計算思維特征。沒有太多的巧勁,而是分利用計算機數據計算準度高并具有嚴格的操作時序等特點,發揮速度和存儲優勢。利用雙重循環,進行暴力搜索解決。這樣通過比較討論,將發現不同思維模式間的差異,有助于建立新的計算思維模式。C語言解法的顯性化展示了思維的過程,它通過變量j,t抽象表達了問題所涉及的雞和兔。兩層for循環給出說明了搜索過程。通過反思思考本案例還可以進一步延伸思考,目前循環次數是35*35=1225次。不可能同時存在35只雞和35只的情況,我們可以這樣進一步優化減少循環次數提高算法效率呢?這樣的提問,將引導學生對于算法的進一步思考。

四、結束語

計算機程序設計是學習使用計算機解決問題的基礎性課程。能否運用計算機編程解決問題不只是語言的熟練程度,而是是否具備計算思維能力。在傳統以知識為中心的程序設計教學,思維能力的培養是隱性的。因此,對于學生的編程能力的培養,要求多做系統,多上機調試。這樣的模式使得思維能力的培養效率不高。以思維訓練為指導通過教學方法的改變,將計算思維嵌入到程序設計課程中。生動的案例教學對計算思維訓練起到啟發和誘導作用,可以很好地激發學生思維活動。程序語言作為計算思維可視工具,教師給予適當提問,促進學生反思思維過程。這些問題將學生把計算思維的理解不斷引向深入。在案例分析和討論中,每個學生的不同的思維理解在這里相遇,經過交流與辯論,形成思維共振局面,顯性的培養了學生的思維能力,提升了計算機應用能力。

作者:陽小華 劉杰 劉志明 徐卓然 單位:南華大學計算機與科學技術學院