夏華芹
(江蘇省丹陽市實驗學校 丹陽市 212300)
美國教育家布盧姆將思維過程化為六個教學目標,記憶、理解、應用、分析、綜合、評價和創造,其中記憶、理解、應用是低階思維,主要用于學習事實性知識或完成簡單任務的能力;分析、綜合、評價和創造為高階思維,是較高認知水平層次上的心智活動或認知能力。高階思維是高階能力的核心,主要指創新能力、問題求解能力、決策力和批判性思維能力。
程序設計語言不同于學生以往所接觸的人類自然語言和數學公式等,它有很強的抽象和邏輯性,是理論與實際緊密結合的課程。所以程序設計語言課對培養學生思維有一定的作用。教學中有意識地啟發、鼓勵學生自主地探索和實踐,將極大地發揮學生潛能。
程序設計課堂教學由“難題和疑問”或“一些困惑、混淆或懷疑”引發的學生的思維火花,也引發了高階思維。高階思維的發生就是反思——問題生成——探究、批判——解決問題的過程,可見問題是開啟高階思維的最大動力。所以堅持把問題作為思維主線。每堂課以問題開始,按問題展開,以問題終結,把問題作為思維主線,用問題來激發高階思維。教學問題主要有兩類,一類是課上生成的問題(往往具有不確定性),另一類是教師課前預設的問題,具有可掌控性。那么教師預設出什么樣的問題才能夠牽引學生的高階思維呢,這類問題往往具有以下三個特點:第一,問題要具有“挑戰性”,也就是說“要能抓人”,對于直白或索然無味的問題,即學生可以用“是”或“不是”就可以回答的問題,學生會不屑一顧;難度過大的問題會使學生無處下手,從而放棄嘗試思考。第二,問題要有“開放性”。沒有現成答案的問題對學生更具有吸引性,更具有挑戰性,學生的思維不易受到限制,其思考的過程才更能鍛煉學生的高階思維。第三,問題要有“層次性”,要為學生提供適當的臺階。“高立意,小步問”,這樣有利于學生找到思考問題的切入點和思維的連續性,這樣的問題對學生吸引性極強。層層遞進,步步深入,使學生在分析問題、解決問題的過程中訓練了自已的高階思維。
程序設計課堂中教師也要有意識地引導學生從多視角進行編程思考,會使高階思維能力得到跳躍式發展。程序設計課語言內容多、語法規則繁雜、使用靈活。程序設計傳統的教學模式是:以語言的語句體系、語法規范為脈絡展開教學,只注重表層知識的灌輸,而忽視學生知識的內化過程。學生常會感到枯燥乏味,學習積極性不高,學完之后編程能力和分析、解決實際問題的能力仍然較差。解決這一問題,只有轉變教學內容,以講授解決問題的方法和思路為主,使學生一開始就產生學習的好奇心,認識到編寫程序是一項極具挑戰性和創造性的勞動。可以將抽象的概念形象化,并引入若干簡單有趣、學生又較熟悉的問題作為例子。通過實例使學生了解高級語言編程能解決什么樣的問題,然后再深入淺出地介紹一些重要的抽象概念。另外在教學中可以補充講解“程序設計的思想”、“如何提高編程能力”等方面的內容,解決學生在程序設計過程中所遇到的方法、思路上的障礙。例如,在學生開始編寫第一個程序之前,首先可以向學生介紹什么是良好的編碼習慣,編寫代碼在形式上應該注意什么哪些問題,確保程序的可讀性;在學習了函數之后,可以介紹一些程序設計中“模塊化”思想的應用。這些知識將有助于學生編寫高質量的程序。
注重算法設計的指導,能更加激活學生的高階思維。計算機程序在結構上有一定的穩定性和不變性,但程序的特征更明顯地表現為程序算法上的靈活性。有效的利用思維特征,使學生對程序設計語言有全面、深入的了解,可從以下兩方面進行嘗試:(1)利用思維定勢的積極作用,使學生掌握程序的基本流程和結構。思維定勢的積極作用是指人們一旦形成某種思維定勢后,在條件不變時,就能迅速地感知對象,產生聯想。在遇到同類問題時,人們會用某種固定的思維模式去分析和解決問題。遇到新問題時,人們就會想起已經學過的知識,利用已有的方法、經驗來解決新問題。可通過實例讓學生明白:程序一般都分若干模塊,模塊通過函數實現;一個程序可分為多個文件,文件之間可以相互訪問的。學生在編寫程序解決問題時,就容易設計出程序的框架結構。(2)打破思維定勢的局限,激發學生從多角度考慮問題。引導學生理解程序設計語言的特征,讓學生明白自然語言和計算機語言的差異。算法在程序設計中占了核心的位置,在講解程序實例時應把重點放在對算法的分析和設計上,讓學生體驗使用簡潔的數學模型和算法實現所帶來的好處,并積極鼓勵他們大膽地對傳統算法進行改造。這對學生的開拓精神和發散思維能力的培養是十分有效的。讓學生理解程序設計語言作為一種工具,必須不斷追求更好的使用效果,而不能僅以解決當前問題為目標。
[1]文笪.王帥.國外高階思維及其教學方式.上海教育科研,2011.09.
[2]沈之菲.提升學生創新素養的高階思維教學.上海教育科研,2011.09.