摘要:本文以VFP教學(xué)為例,通過對循環(huán)語句中給出的一道例題,提出了在程序設(shè)計(jì)語言教學(xué)中如何培養(yǎng)學(xué)生編程的興趣和技巧。在教學(xué)過程中應(yīng)因材施教,引導(dǎo)學(xué)生在課堂上積極思考,提高分析和解決問題的能力。
關(guān)鍵詞:計(jì)算機(jī)程序設(shè)計(jì);學(xué)習(xí)能力;興趣
中圖分類號:G642 文獻(xiàn)標(biāo)識碼:B
文章編號:1672-5913(2007)10-0083-03
1引言
目前,國內(nèi)絕大多數(shù)高校的“計(jì)算機(jī)程序設(shè)計(jì)語言”這門課程一般是選擇一門語言進(jìn)行教學(xué)。按傳統(tǒng)的教學(xué)模式,把計(jì)算機(jī)程序設(shè)計(jì)作為一門語言來進(jìn)行講解,注重語言的基本語句、語法和一些細(xì)節(jié)的分析,按部就班地依照語言教學(xué)的規(guī)范,進(jìn)行“字”、“詞”、“句”的講解,使學(xué)生原來很高的學(xué)習(xí)熱情,由于枯燥、乏味的語法和過分的細(xì)節(jié)約束而失去了對該門課程的學(xué)習(xí)興趣,往往產(chǎn)生畏難的情緒。究其原因,是因?yàn)榻虒W(xué)沒有站在如何應(yīng)用計(jì)算機(jī)工具編程解決實(shí)際問題或?qū)嶋H項(xiàng)目的角度,沒有把邏輯與編程思想放在主體地位,沒有教給學(xué)生如何分析和解決問題,其結(jié)果是教師教得很辛苦,學(xué)生學(xué)得很模糊,遇到問題不知如何分析,好像是在學(xué)習(xí)第二門外語,而不是程序設(shè)計(jì)。
根據(jù)以上情況,本人在進(jìn)行實(shí)際的教學(xué)過程中進(jìn)行了改革,改變傳統(tǒng)的教學(xué)方式,利用實(shí)驗(yàn)室多媒體的教學(xué)優(yōu)勢,在講解循環(huán)語句時(shí)做了嘗試。實(shí)踐證明,課堂氣氛活躍,互動(dòng)性強(qiáng),有利于學(xué)生共同參與討論,鍛煉學(xué)生的學(xué)習(xí)能力和創(chuàng)新思維,提高了學(xué)生的學(xué)習(xí)興趣。
2問題的提出
首先,從一道例題著手分析。
例1:要求輸出如下圖形:
*********
*********
*********
*********
*********
*********
*********
分析該圖形的輸出,不難得出如下的結(jié)論,該圖形輸出7行,每行輸出9個(gè)“*”。
給出偽代碼:
for i=1 to 7
? “*********”
endfor
思考:如何用雙重循環(huán)來實(shí)現(xiàn)該圖形的輸出,給出偽代碼,并給出適當(dāng)?shù)恼f明。
for i=1 to 7輸出7行
? 換行輸出
for j=1 to 9
?? “*”
每行連續(xù)輸出9個(gè)“*”
endfor
endfor
從本例中逐步引導(dǎo)學(xué)生對于圖形的輸出由單循環(huán)向雙重循環(huán)過渡,為后面的例題講解做好準(zhǔn)備。
例2:輸出如下圖形:
*********
*********
*********
*********
*********
*********
*********
通過本例的分析,使學(xué)生知道該圖形與前面的圖形僅僅在輸出的格式上有所區(qū)別,其他一點(diǎn)也沒有改變,對原先的程序只要略做修改就能得到結(jié)果。
for i=1 to 7
輸出7行
? space(7-i)
換行、每行輸出“*”前,輸出的空格數(shù)與行數(shù)存在7-i的關(guān)系。
for j=1 to 9
?? “*”
每行連續(xù)輸出9個(gè)“*”
endfor
endfor
課后思考:輸出如下圖形
*********
*********
*********
*********
*********
*********
*********
3循序漸進(jìn),把問題引向深入
具備了上述兩個(gè)例題的基本知識,就可以逐步把學(xué)生的思路引向深入,參與分析與討論,讓他們在學(xué)習(xí)中有自己解決問題的方法,增加師生之間的互動(dòng)性。
例3:輸出如下圖形
*
***
*****
*******
*********
***********
*************
從例2的分析可知,使學(xué)生在原來程序的基礎(chǔ)上進(jìn)行修改。對圖形的分析發(fā)現(xiàn),輸出的“*”為7行,每行輸出“*”的個(gè)數(shù)分別1、3、5、7、9、11、13,在每行輸出“*”前應(yīng)輸出的空格數(shù)分別為6、5、4、3、2、1、0。通過分析能得到如下的關(guān)系:
對例2的偽代碼只要稍做修改,就能得到輸出該圖形的偽代碼。
for i=1 to 7
輸出7行
? space(7-i)
換行、每行輸出“*”前,輸出的空格數(shù)與行數(shù)存在7-i的關(guān)系。
for j=1 to 2*i-1 每行連續(xù)輸出2*i-1個(gè)“*”
?? “*”
endfor
endfor
課后思考:輸出如下圖形
*
***
*****
*******
*****
***
*
絕大多數(shù)同學(xué)提出的想法是把該圖形分成兩部分輸出,第一部分為前4行,第二部分為后三行。這是一種常規(guī)的思維模式,是在前面講解知識的基礎(chǔ)上,通過自己的思維,得出的結(jié)論。那么,該程序有無技巧可言呢?先提出這樣的問題,然后要求同學(xué)們共同討論,分析其中行、個(gè)、空格數(shù)之間有無關(guān)系。
同學(xué)們通過觀察發(fā)現(xiàn)三者之間存在某種聯(lián)系,關(guān)鍵是如何知道其中的推導(dǎo)關(guān)系。
在得出行數(shù)和每行輸出的個(gè)數(shù)及每行輸出空格數(shù)之間的關(guān)系后,問題便迎刃而解了。在原來偽代碼的基礎(chǔ)上進(jìn)行修改就可以了。
for i=1 to 7 輸出7行
? space(1+abs(4-i))
for j=1 to 7-2*abs(4-i)
?? “*”
endfor
endfor
課后思考:輸出如下圖形
1 A
222 ABC
33333 ABCDE
4444444 ABCDEFG
33333 ABCDE
222 ABC
1 A
4結(jié)束語
通過講解、分析利用雙重循環(huán)實(shí)現(xiàn)不同圖形的輸出,同學(xué)們積極參與討論,本次內(nèi)容由簡到難,通過不斷的提問和分析,使學(xué)生參與其中,形成師生互動(dòng),改變傳統(tǒng)的老師講學(xué)生聽的教學(xué)模式。課后走訪一些學(xué)生,他們一致認(rèn)為這樣的形式教學(xué)效果好,學(xué)生也樂于接受,而且課后布置的作業(yè)也很快完成了。
參考文獻(xiàn)
[1] 王鴻磊,張雪松. 程序設(shè)計(jì)基礎(chǔ)教與學(xué)的新模式[J]. 計(jì)算機(jī)教育,2006,(11):53-54.
收稿時(shí)間:2007-2-15
作者簡介:陶建平,男,江蘇科技大學(xué)南徐學(xué)院
E-mail:jian_pintao@sohu.com