朱立平
摘要:本文針對程序設(shè)計課程的特點,提出了以“自主體驗”的方式展開課堂教學(xué)內(nèi)容,采用“講練結(jié)合,邊講邊練”的教學(xué)手段,構(gòu)建“實驗導(dǎo)學(xué)型”課堂教學(xué)模式,探尋以計算思維訓(xùn)練為核心的自我體驗式教學(xué)方法和策略。
關(guān)鍵詞:實驗導(dǎo)學(xué);計算思維;程序設(shè)計
中圖分類號:G642 文獻(xiàn)標(biāo)識碼:B
1引言
程序設(shè)計課程的教學(xué)已逐漸舍棄傳統(tǒng)的“填鴨式”教學(xué)模式,由“知識傳授型”向“能力訓(xùn)練型”轉(zhuǎn)化。教學(xué)要以學(xué)以致用為目的,以培養(yǎng)學(xué)生的學(xué)習(xí)能力、思維能力和自我約束能力為重點,構(gòu)建以“學(xué)生為中心”的教學(xué)模式。筆者集多年程序設(shè)計課程教學(xué)體驗,以C語言程序設(shè)計為例,構(gòu)建“實驗導(dǎo)學(xué)型”課堂教學(xué)模式,探尋以計算思維訓(xùn)練為核心的自我體驗式教學(xué)方法和策略。在傳授基礎(chǔ)知識的同時,調(diào)動學(xué)生的學(xué)習(xí)興趣,培養(yǎng)學(xué)生分析問題、思考問題和解決問題的能力,使學(xué)生由被動接受知識變?yōu)橹鲃荧@取知識,以更好地適應(yīng)社會對人才的需求。
2從計算思維到程序設(shè)計
J.M.Wing教授在《Computational Thinking(計算思維)》一文中指出:計算思維是建立在計算過程的能力和限制之上的,不管這些過程是由人還是由機(jī)器執(zhí)行的。計算方法和模型給了我們勇氣去處理那些原本無法由任何個人獨自完成的問題求解和系統(tǒng)設(shè)計。計算思維涉及運用計算機(jī)科學(xué)的基礎(chǔ)概念去求解問題、設(shè)計系統(tǒng)和理解人類的行為,它涵蓋了反映計算機(jī)科學(xué)之廣泛性的一系列思維活動。
從計算機(jī)的發(fā)展和普及來看,計算機(jī)已經(jīng)成為適合于每一個人的“一種普遍的認(rèn)識和一類普適的技能”。這在一定程度上意味著計算機(jī)科學(xué)從前沿高端到基礎(chǔ)普及的轉(zhuǎn)型,因此,計算思維也被視為是每個人應(yīng)當(dāng)具備的基本技能。而對程序設(shè)計課程而言,編程能力是計算思維和技能化知識的綜合體現(xiàn),如何培養(yǎng)學(xué)生的計算思維能力,是課程教學(xué)改革的一項重要內(nèi)容。
計算機(jī)最初是作為一種計算工具問世的,計算機(jī)高級語言的理論基礎(chǔ)和基本方法都源于數(shù)學(xué),而程序設(shè)計是求解一系列具體的問題的方法和過程。因此,在程序設(shè)計課程的教學(xué)設(shè)計和實施過程中,必須明確以培養(yǎng)和提高學(xué)生的計算思維能力為最終目的,而具體的程序設(shè)計只是實現(xiàn)這個目的—種手段。
3基于計算思維訓(xùn)練的“實驗導(dǎo)學(xué)型”教學(xué)模式的構(gòu)建
近年來,由于C程序設(shè)計課程教學(xué)的總學(xué)時數(shù)削減為64學(xué)時(理論學(xué)時與實驗學(xué)時比為3∶1),實驗學(xué)時明顯不足,不利于實際編程能力的系統(tǒng)訓(xùn)練與提高。改變傳統(tǒng)的課堂教學(xué)模式,從單純性的課堂理論教學(xué)轉(zhuǎn)入互動式機(jī)房實踐教學(xué),以“自主體驗”的方式展開課堂教學(xué)內(nèi)容,可以利用有限的學(xué)時,使學(xué)生充分領(lǐng)會程序設(shè)計的基本思想與方法,提升運用計算機(jī)求解實際問題的能力。因此,我們在課堂教學(xué)環(huán)節(jié)中集中體現(xiàn)“以學(xué)生為中心”的教學(xué)理念,以計算思維訓(xùn)練為目的,精講多練;利用機(jī)房環(huán)境營造自主體驗式教學(xué)氛圍;以案例為線索,采用“講練結(jié)合,邊講邊練”的教學(xué)手段,融合知識重點,構(gòu)建四種體驗型實驗導(dǎo)學(xué)內(nèi)容。
3.1模仿型實驗
模仿型實驗是學(xué)習(xí)者采用“臨摹”手段來體驗編寫程序的過程。俗語說:像不像,三分樣。對于學(xué)寫程序而言,可以像小時學(xué)寫字時的“描紅”一樣,首先將現(xiàn)有的案例程序讀懂,然后嘗試著寫出類似的程序。通過模仿型實驗的訓(xùn)練,達(dá)到初步認(rèn)識程序的目的。
模仿型實驗的構(gòu)建原則是:以“案例”介紹基本語句和語法,經(jīng)過舉一反三的練習(xí)學(xué)習(xí)編程的方法和技巧,學(xué)會用程序設(shè)計思維方式分析和解決問題。構(gòu)建模仿型實驗主要針對簡單程序的體驗學(xué)習(xí)。模仿型實驗示例如表1所示。
3.2驗證型實驗
對于程序設(shè)計的初學(xué)者來說,驗證型實驗是一種最直接、最有效的體驗方式。當(dāng)學(xué)生還對程序“懵懂不清”的時候,為他們開啟程序設(shè)計的大門。通過驗證型實驗的訓(xùn)練,學(xué)生盡快學(xué)會并建立起程序設(shè)計的思維方式,了解編程基本思路和方法,掌握基本語句的使用及程序的執(zhí)行過程。
驗證型實驗的構(gòu)建原則是:根據(jù)案例提出的問題,通過分析問題提出解決方案,并給出全部程序代碼及測試數(shù)據(jù),由學(xué)生對程序運行編譯運行,觀察并驗正運行結(jié)果。構(gòu)建驗證型實驗主要針對基本語法、語句及程序基本結(jié)構(gòu)的進(jìn)行體驗學(xué)習(xí)。
以下是驗證型實驗的一個實例:計數(shù)問題。
在解決某個具體問題時,要綜合運用程序設(shè)計中的三種基本結(jié)構(gòu),特別是循環(huán)與分支結(jié)構(gòu)的組合搭建。例如:設(shè)計驗證實驗,從鍵盤輸入若干個學(xué)生成績,分別統(tǒng)計不同分?jǐn)?shù)段(即:90~100、80~89、70~79、60~69、0~59)的人數(shù)。通過本實驗,在掌握程序結(jié)構(gòu)與基本語句的同時,學(xué)會使用“循環(huán)結(jié)構(gòu)中含分支”的常見解題方法及程序結(jié)構(gòu),測試數(shù)據(jù)與運行結(jié)果如圖1所示。驗證程序的代碼如下:
#include
void main()
{
int sc;
int a=0,b=0,c=0,d=0,e=0;
printf("Input score,with -1 to End:");
scanf("%d",&sc); // 讀入第一個成績
while(sc!=-1) // 成績sc不為-1時,執(zhí)行循環(huán)
{
switch(sc/10) // 提取十位上的數(shù)值
{ // 分別統(tǒng)計各分?jǐn)?shù)段的人數(shù)
case 10:
case 9: a++; break;
case 8: b++; break;
case 7: c++; break;
case 6: d++; break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0: e++; break;
default: printf("Input Error! ");
}
scanf("%d",&sc); // 讀入下一個成績
}
printf("90~100:%4d ",a);
printf("80~89 :%4d ",b);
printf("70~79 :%4d ",c);
printf("60~69 :%4d ",d);
printf("0~50:%4d ",e);
}
3.3改裝型實驗
改裝型實驗是學(xué)習(xí)者獨自解決實際問題的開始。學(xué)生對較復(fù)雜的問題進(jìn)行解析,將已學(xué)的知識、算法和技能進(jìn)行重新組合,尋求解決問題的具體方法。通過改裝型實驗的訓(xùn)練,學(xué)生在鞏固已學(xué)的知識的同時提高了綜合應(yīng)用知識的技能。
改裝型實驗的構(gòu)建原則是:針對“案例”提出的問題分析并提出解題方案,引導(dǎo)學(xué)生用已掌握的算法和技巧為較復(fù)雜的問題搭建出解題方案。改裝型實驗主要是針對常用算法和復(fù)雜程序的體驗學(xué)習(xí)。
以下是改裝型實驗的一個實例:批量數(shù)據(jù)的處理問題。
對批量數(shù)據(jù)的處理通常采用數(shù)組存儲的形式,除了輸入和輸出外,對數(shù)組中數(shù)據(jù)的操作還包括:在指定位置處插入或刪除、查找指定的數(shù)據(jù),按次序排列等常用操作。例如:設(shè)計改裝型實驗,在數(shù)組中查找指定的數(shù)據(jù),并對查找到的數(shù)據(jù)進(jìn)行刪除處理。提出解題方案:先用“查找”算法找到指定數(shù)據(jù)所處的位置,若找到,則執(zhí)行“刪除”算法,若未找到,顯示“數(shù)據(jù)未找到!”的回饋信息。通過本實驗,學(xué)生將掌握數(shù)組的基本操作和對批量數(shù)據(jù)的綜合處理方法。
3.4獨創(chuàng)型實驗
獨創(chuàng)型實驗是構(gòu)建“學(xué)思統(tǒng)一”思維教學(xué)空間的關(guān)鍵環(huán)節(jié)。要培養(yǎng)聰明的學(xué)習(xí)者,就要給學(xué)生提供足夠的思維空間,設(shè)法激勵和引導(dǎo)學(xué)生自主思維,并加強綜合訓(xùn)練,擴(kuò)展學(xué)生思維發(fā)展的學(xué)習(xí)空間。
獨創(chuàng)型實驗的構(gòu)建原則是:提出實際問題及具體要求,引導(dǎo)學(xué)生正確地思考,并通過對問題的分析和討論設(shè)計出恰當(dāng)?shù)臄?shù)據(jù)結(jié)構(gòu)及解題算法,最后獨立完成編碼及程序的調(diào)試。
以下是獨創(chuàng)型實驗的一個實例:中值濾波器模擬處理問題。
中值濾波是圖像處理技術(shù)之一,即根據(jù)輸入圖像中對應(yīng)像素鄰域內(nèi)灰度的“中值”確定輸出圖像對應(yīng)像素的灰度值。具體操作步驟是:
(1) 設(shè)定一個n×n的模板,讓其在圖像中漫游,并將模板中心與圖中的某個像素位置重合
(2) 讀取模板下所對應(yīng)的像素灰度值,并將這些灰度值從小到大排成一列
(3) 找出排在中間的灰度值,稱為“中值”
(4) 將“中值”賦給對應(yīng)于模板中心位置的像素
解決此問題時,采用二維數(shù)組描述圖像的像素灰度值。對于數(shù)組中的每個元素(灰度值),按n×n模板提取鄰域內(nèi)的元素值(灰度值),經(jīng)排序確定“中值”,修正元素值,完成濾波處理。通過本實驗,學(xué)生可以充分理解二維數(shù)組的結(jié)構(gòu)特點以及它在實際問題中的應(yīng)用。
4結(jié)束語
程序設(shè)計是實現(xiàn)計算思維的—種手段,程序設(shè)計課程的教學(xué)重點是幫助學(xué)生獲得解決問題的途徑與經(jīng)驗。實驗導(dǎo)學(xué)型課堂教學(xué)模式體現(xiàn)了“以學(xué)生為中心”的教學(xué)理念,自我體驗式的學(xué)習(xí)氛圍有助于引導(dǎo)學(xué)生正確的思維,使學(xué)生由被動接受知識變?yōu)橹鲃荧@取知識,自我發(fā)展,成為一個聰明的學(xué)習(xí)者。在教學(xué)中,教師應(yīng)加強對計算思維能力的培養(yǎng),使學(xué)生學(xué)會用程序設(shè)計的方式進(jìn)行思考,給學(xué)生提供足夠的思維空間,設(shè)法激勵與引導(dǎo)學(xué)生去思維,主動去獲取和建構(gòu)知識,使學(xué)習(xí)變得輕松、高效,教學(xué)效果得到真正提高。
參考文獻(xiàn):
[1] 王飛躍.從計算思維到計算文化[J].中國計算機(jī)學(xué)會通訊,2007,3(11).
[2] J.M.Wing. Computational Thinking[J].Communications of ACM,2006,49(3).
[3] 董榮勝,古天龍.計算思維與計算機(jī)方法論[J].計算機(jī)科學(xué),2009(1).