文章編號:1672-5913(2008)08-0058-03
摘要:本文針對程序設計課程的教學特點,提出了以思維理論為基礎的課堂教學模式,在傳授知識的同時,注重學生思維能力的培養和訓練。
關鍵詞:思維教學;程序設計;教學研究
中圖分類號:G642
文獻標識碼:B
1從思維學習到思維教學
思維教學是以學生為中心,以培養思維能力為目的,實現學生在思維中學習,同時也在學習思維,使學生能更有效地掌握課堂內外的知識。思維教學的教學模式是將思維訓練融合在教學環節中,符合思維訓練與學科教育的統一性,即學科知識與思維能力互相促進,共同提高。教師要給學生提供足夠的思維空間,充分調動學生思維的主動性,設法激勵與引導學生去思維,主動去獲取和建構知識,使學生滿懷樂趣地體驗充滿思想、情感、智慧的學習生活,使其在認知、情感和人格領域都得到發展。
思維教學源于美國心理學家和教育學家斯騰伯格提出的“思維三元理論”,該理論把思維劃分為三個層面:分析性思維——分析、判斷、評價、比較、對比和檢驗等能力;創造性思維——創造、發現、生成、想象和假設等能力;實用性思維——實踐、使用、運用和實現等能力。
三種思維能力對于所有人來說都是很重要的,各有各的用處,不能相互替代,卻可相互促進。其實,一個人的思維是分析性、創造性和實用性思維按不同比例合成的產物,因此,每個人所具有的這三種能力也是不同的:擅長于分析性思維的人善于解決熟悉的問題,通常是學術性問題;擅長于創造性思維的人善于解決相對新奇的問題,善于提出自己的見解,采用獨特的策略解決問題;擅長于實用性思維的人則善于解決日常生活中的問題,能夠很好地適應社會和工作的要求。
我們的教育需要培養具備三種思維模式的綜合思維的人才,而不是僅僅重視其中某一種。因此,基于“思維三元理論”的基本教學策略包括三方面能力的培養:①加強感知性操作,培養學生的分析性思維能力。②加強探究性操作,培養學生的創造性思維能力。③加強應用性操作,培養學生的應用性思維能力。
以“思維三元論”為理論基礎的教學思想提出了三種基本教學策略,每種教學策略具有各自的特征和用途(參見表1)。
(1) 以講課為基礎的照本宣科策略
(2) 以事實為基礎的問答策略
(3) 以思維為基礎的對話策略
在實際教學中,每種策略均占有一席之地,具體采用什么樣的教學策略要視教學目的而定。作為教師,如何綜合運用這三種策略,提出符合實際教學要求和目的的教學設計方案,是成功教學的關鍵。
2基于思維理論的程序設計教學模式的構建
筆者在程序設計教學活動中融入了思維教學理念,采用“案例引導式”教學法,即以“案例”為教學線索,依照“提出問題—分析引導—被動體驗—自主構建”等四步教學策略組織并實施教學,提出以思維三元理論為指導思想,綜合運用三種思維教學策略,構建以學生為中心,以能力培養為目的的思維教學新模式(如圖1所示)。
圖1思維教學模式
2.1深入挖掘教材內容,構建“引導性問題”
為了使初學者能盡快地掌握計算機語言,教師必須深入挖掘教材,詳細分析教學內容,將教學內容轉化為學生感興趣的某個實際問題,以問題為載體引出教學內容,吸引學生共同尋求問題的解決辦法。
在講述“選擇結構”時,可設置學生熟悉的問題,例如:已知a,b,c的值,求一元二次方程 的解。
顯然,學生知道:根據a、b、c的值,可按照計算公式 求出x。但計算機如何處理呢?首先,要考慮 嗎?成立或不成立時,采用相應的處理方法。因此,推出選擇結構的特點,即根據設定的條件所產生兩個截然不同的結果,采用不同的處理方法,該結構的流程圖如圖2所示。
圖2選擇結構
從簡單的實際問題引出程序設計的基本結構,使學生初步了解程序結構的特點,首先解決“問題—算法”的認識過程;然后針對結構介紹實現該結構的語句,編寫代碼,解決“算法—程序”的實現過程。
2.2采用啟發式教學,構建“問答式”的教學氛圍——思中學
在講述“多分支語句switch”時,設置由學生自我體驗的問題,例如:
輸入1~7,輸出對應的星期名(即:Mon. Tue.… Sun.)。直接給出程序,讓學生運行,程序如下。
#include
void main()
{
int n;
printf(\"Input 1~7:\");scanf(\"%d\",n);
switch(n)
{
case 1:printf(\"Mon.\\");
case 2:printf(\"Tue.\\");
case 3:printf(\"Wed.\\");
case 4:printf(\"Thu.\\");
case 5:printf(\"Fri.\\");
case 6:printf(\"Sat.\\");
case 7:printf(\"Sun.\\");
default:printf(\"Input error!\\");
}
}
引導學生觀察運行結束,發現程序設計中的問題,尋求解決辦法,從而引出switch語句的特點、break語句的作用以及利用switch和break語句實現多分支結構的程序。
教師可以設置“不完善程序”或“病態案例”,讓學生通過“體驗”方式去解決。學生不是盲目的運行程序和觀察運行結果,而是要他們去發現程序中的問題、想辦法去解決。此種學習體驗不僅有助于學生對問題的理解,還可幫助學生進行思維學習。
2.3融合教與學環節,構建“講練結合”的教學方式——學中做
采用“精講多練、講練結合”的方式,使學生適時體驗所學知識,化抽象思維為形象思維,加強應用性操作,培養學生的應用性思維能力。
講述數組時,明確“概念(講)”后,結合具體問題實現“基本操作(練)”。例如:
針對30名學生成績,進行處理,如求總分、求最高分、統計80分以上人數等操作。
精講——明確以下基本概念:
① 數組是程序設計中不可缺少的一種數據結構,解決批量數據的存儲和處理問題;
② 數組使用基本原則——逐個引用數組元素;
③ 實現數組的基本操作,多采用“循環結構”;
因此,要存放30名學生成績,即批量數據,需定義數組,考慮數組名,數組大小及類型等要素,相應的語句為:
float stu[30];
借助循環結構實現數組元素的輸入/輸出
for(i=0;i<30;i++)
scanf(”%f”,stu[i]);
┇
//數據處理部分
┇
for(i=0;i<30;i++)
printf(”%10.2f”,stu[i]);
多練——基本操作:
① 為數組元素輸入數據;
② 簡單計算(如:求和、求平均值等)或數據處理(如:求最大值、篩選、排序等);
③ 輸出結果及數組元素;
教師“精講”的同時,給學生“多練”的機會;學生在明確基本概念的同時,針對教師提出的問題,進行模仿性練習(如講“求總分”,練“求平均分”;講“統計80分以上人數”、練“70~80分之間人數”等)和擴展性練習(如“各分數段人數的比例”、“排序”等)。課堂練習不僅有利于教師及時掌握學生的學習情況,更重要的是使學生能夠實時體驗知識的應用性,加深對知識的理解。
2.4以學生為中心,構建“學思統一”的思維教學空間——學而思
思維教學的核心理念是培養聰明的學習者,教師要為學生提供足夠的思維空間,設法激勵和引導學生自主思維,加強探究性操作,培養學生的創造性思維能力。例如二維數組的存儲形如“矩陣”,講課內容也僅討論矩陣相關的問題,因此可以設置諸如“生物繁殖仿真問題”來擴展學生的思維。
生物繁殖仿真問題——把平面按坐標劃分為方格,每個方格稱為一個單元。方格內可以有一個生物或者沒有生物。若有生物則稱該單元為活單元,反之稱為死單元。與某單元相鄰的單元稱為它的鄰居,顯然非邊界處的每個單元有八個鄰居。我們規定生物繁殖的規律如下:
① 如果某個單元是活的,而它的八個鄰居沒有一個是活的,或者只有一個活鄰居,那末,該單元在下一代會由于孤單而死亡。
② 如果某個單元是活的,而它周圍的有四個或四個以上鄰居是活的,此時該單元在下一代會因過分擁擠而死亡。
③ 如果某個單元是活的,且它周圍有兩個或三個鄰居是活的,則下一代該單元仍然是活的。
④ 如果某個單元是死的,但它周圍恰有三個活鄰居,既不多也不少,那末,該單元下一代會變活。
⑤ 所有生物的生死變化都發生在同一時刻。也就是說,任一單元下一代的生死狀態只取決于該單元及其鄰居這一代的生死狀態。
題目的要求是,給出生物死活的原始狀態結構圖,求出以后各代的狀態結構圖。
解決此問題時,很容易想到用二維數組來描述生物所在空間,元素值為1代表活,為0代表死。在推算各代狀態結構圖的過程中,學生可以充分理解二維數組的結構特點,掌握數組元素的賦值及引用,相鄰元素的表示以及通過判斷產生下一代元素的值等基本操作。探究性題目不僅可以鞏固學生所學的基本知識,還可激發學生進一步學習和研究的興趣,更重要的是擴展教學時空,發展學生的思維能力。
3結束語
總而言之,思維發展水平是學生成材的關鍵,思維教學對學生現在和將來的發展起著至關重要的作用。學習和思維不是彼此獨立的,而是緊密聯系在一起的,相輔相承。在教學設計中,教師要充分了解學生的思維特點,深入挖掘教材,精心設計案例,在激發學生積極學習的興趣,培養學生自主學習的能力,發展學生創新性思維等方面下功夫。
參考文獻
[1] (美)斯騰伯格著. 趙海燕譯. 思維教學——培養聰明的學習者[M]. 北京:中國輕工業出版社,2001.
[2] 呂俊白. 改革程序設計教學加強思維能力培養[J]. 高等理科教育,2OO7,(3).
[3] 謝中科,肖增良. 程序設計系統化思維培養模式的探討[J]. 計算機教育,2007,(2).
[4] 李鳳來. 略論思維教學[J]. 天津教育,2006,(2).
[5] 紀德奎. 有效教學的重要途徑——思維教學[J]. 齊齊哈爾大學學報,2005,(3).
“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”