賀 忠
摘要:計(jì)算機(jī)程序設(shè)計(jì)語言課程是高等院校計(jì)算機(jī)應(yīng)用等專業(yè)教學(xué)計(jì)劃中的一門重要課程,但在教學(xué)過程中學(xué)生的畏難情緒普遍存在,很大程度上影響了教學(xué)效果。本文從教學(xué)實(shí)踐出發(fā),針對在計(jì)算機(jī)程序設(shè)計(jì)教學(xué)中出現(xiàn)的問題,探討了如何有效地通過游戲案例把游戲思想應(yīng)用于程序設(shè)計(jì)教學(xué)中,以達(dá)到提高計(jì)算機(jī)程序設(shè)計(jì)語言教學(xué)的實(shí)效性和增強(qiáng)學(xué)生學(xué)習(xí)興趣和信心的目的。
關(guān)鍵詞:計(jì)算機(jī)程序設(shè)計(jì)語言;游戲思想;案例教學(xué)法
中圖分類號(hào):G642 文獻(xiàn)標(biāo)識(shí)碼:B
1引言
計(jì)算機(jī)程序設(shè)計(jì)語言是高等院校計(jì)算機(jī)應(yīng)用及相關(guān)專業(yè)的專業(yè)基礎(chǔ)課,是學(xué)生進(jìn)一步加深專業(yè)課程學(xué)習(xí)的基礎(chǔ)。在教學(xué)中我們發(fā)現(xiàn),因?yàn)檫@門課程要求學(xué)生有較強(qiáng)的邏輯思維能力和分析能力,所以很多學(xué)生感到學(xué)習(xí)困難,產(chǎn)生畏難情緒,失去學(xué)習(xí)的興趣和信心,對教學(xué)效果有較大的影響。
許多學(xué)生在進(jìn)行設(shè)計(jì)程序時(shí)不知何如動(dòng)手,究其原因,這些學(xué)生并不是語句語法沒學(xué)好,也不是腦子笨,而是沒有找到好的學(xué)習(xí)方法,沒有領(lǐng)悟到程序設(shè)計(jì)的方法和思想,不知道如何利用各種語句和函數(shù)的功能、規(guī)避各種語句和函數(shù)的限制,最終實(shí)現(xiàn)程序的要求。因此,這些學(xué)生把程序設(shè)計(jì)看得高深莫測、非常人可做,進(jìn)而對程序設(shè)計(jì)產(chǎn)生畏懼感。在高職學(xué)院,由于學(xué)生的基礎(chǔ)相對較弱,這種現(xiàn)象就更加突出。為了幫助這些學(xué)生找到學(xué)好程序設(shè)計(jì)的突破口,筆者從教學(xué)實(shí)踐出發(fā),針對這些教學(xué)中的問題,探討了如何有效地通過游戲案例把游戲思想應(yīng)用于程序設(shè)計(jì)教學(xué)中,以達(dá)到提高計(jì)算機(jī)程序設(shè)計(jì)語言教學(xué)的實(shí)效性和增強(qiáng)學(xué)生學(xué)習(xí)興趣和信心的目的。
2游戲思想在教學(xué)中應(yīng)用的具體案例
在與學(xué)生們的日常接觸中,我們發(fā)現(xiàn)他們當(dāng)中不乏棋牌高手。在一些智力游戲中,他們常常也表現(xiàn)出非凡的才智。無論是棋牌,還是智力游戲,往往都包含程序設(shè)計(jì)的方法和思想。人們在玩這些游戲時(shí),都要在游戲規(guī)則下,利用一切可利用的條件,規(guī)避各種限制條件,設(shè)計(jì)一整套實(shí)現(xiàn)目標(biāo)的程序,這一點(diǎn)與程序設(shè)計(jì)的方法和思想是相通。因此,在計(jì)算機(jī)程序設(shè)計(jì)語言教學(xué)中,我們采用恰當(dāng)?shù)陌咐?通過案例教學(xué)法來詳細(xì)闡述游戲思想與程序設(shè)計(jì)思想之間的關(guān)系,幫助學(xué)生理解程序設(shè)計(jì)的方法和思想。下面通過兩個(gè)案例來說明如何將游戲思想運(yùn)用到教學(xué)過程中。
2.1案例一
問題:設(shè)計(jì)一程序,求斐波那契數(shù)列(1,1,2,3,5,…)第幾項(xiàng)開始大于10000。
這個(gè)問題使用數(shù)組可能不太好,所以一般常用下列程序段來實(shí)現(xiàn)。(因?yàn)槟壳按蠖鄶?shù)高校都用C語言教學(xué),所以以下程序段用C語言來描述。為了便于后續(xù)說明,下列程序段的每條語句標(biāo)記了行號(hào)。)
【C語言描述】
1 a=1;
2 b=1;
3 c=a+b;
4 i=3;
5 while(c<=10000)
6 {
7 a=b;
8 b=c;
9 c=a+b;
10i=i+1;
11}
12printf(“FibonacciNO.%d>10000”,i);
對于上述程序段中的第7行至第9行代碼,許多學(xué)生覺得難以理解,或者覺得自己在解決問題時(shí)難以靈活運(yùn)用這種方法。其實(shí),這種方法源自生活中一種很簡單的游戲。這種游戲就是:已知甲、乙、丙三個(gè)相同的杯子,其中乙、丙分別依次盛有紅、藍(lán)兩種液體,要求將紅、藍(lán)兩種液體依次盛入甲、乙兩杯中。對于這種游戲,現(xiàn)在的學(xué)生不可能完不成。如果能把完成這個(gè)游戲的方法和思想與這個(gè)程序有機(jī)結(jié)合起來,學(xué)生便可以很好地把握這個(gè)問題的程序設(shè)計(jì)思想。
在這個(gè)游戲中,甲、乙,丙三個(gè)杯子相當(dāng)于上述程序中的變量a、b、c,而杯子中的液體相當(dāng)于變量的值。教師在深入研究教學(xué)任務(wù)和教學(xué)目標(biāo)后,精心設(shè)計(jì)或選擇恰當(dāng)?shù)挠螒?使學(xué)生能夠通過完成游戲找到解決程序設(shè)計(jì)的方法和思想。比如,把這個(gè)游戲做以下改進(jìn),便可把上述程序設(shè)計(jì)過程融會(huì)到游戲過程中去。
假設(shè)在黑板(便于擦拭)上只畫了a、b、c、i四個(gè)方格。起初,在a格中寫入1,在b格中也寫入1。然后在c格中寫入前兩格中的數(shù)量之和——2,在i格內(nèi)填入計(jì)數(shù)3?,F(xiàn)在,要求學(xué)生只能利用這四個(gè)格子和這種方法,求出斐波那契數(shù)列第幾項(xiàng)開始大于100(游戲中不要使用太大的數(shù)值)。一般的學(xué)生稍加思考,也都能很好地完成這個(gè)游戲。在學(xué)生完成這個(gè)游戲的過程中,他們會(huì)不自覺地使用與程序設(shè)計(jì)完全相同的方法和思想,然后將這種方法、思想或過程用計(jì)算機(jī)語言描述出來。
從這個(gè)案例可以看出,初學(xué)計(jì)算機(jī)程序設(shè)計(jì)的學(xué)生往往不了解日常事務(wù)的處理方法,也不具備數(shù)學(xué)建模的能力,所以在學(xué)習(xí)計(jì)算機(jī)程序設(shè)計(jì)之初,一般從解決一些類似日常生活中的小游戲入手。這個(gè)案例教學(xué)可以培養(yǎng)學(xué)生描述解決問題的方法的能力,掌握基本的程序語句語法。
2.2案例二
問題:在12個(gè)乒乓球中有且僅有一個(gè)次品,它或輕或重于正品。限最多使用三次天平,找出次品,并判斷其比正品輕還是重。這個(gè)問題主要鍛煉學(xué)生的分支邏輯思維能力,分析如下:
三次使用天平,將產(chǎn)生三層分支嵌套。第一次使用天平,每邊各放4個(gè)球,將產(chǎn)生兩種結(jié)果:平與不平(或三種結(jié)果:平,左重右輕,左輕右重)。如果天平左右平衡,則說明天平上的8球全為正品,天平下的4球中含次品。
則:按{分析模塊1}來分析:
{分析模塊1}第二次使用天平,從8個(gè)正品球中取3個(gè)放在天平的一邊,不妨假設(shè)為左邊;從含次品的4球中也取3個(gè),放在天平的另一邊,即右邊。將會(huì)出現(xiàn)三種結(jié)果:平,左重右輕,左輕右重。
如果平(衡),則{分析模塊1.1}剩下1球?yàn)榇纹贰?/p>
第三次使用天平,便知道次品的輕重(分析模塊1.1.1和1.1.2,略)
如果左重右輕,則{分析模塊1.2},右邊3球含次品,且次品為輕球。
第三次使用天平,從右邊3球中任取2球,各放一邊。將出現(xiàn)三種結(jié)果:平,左重右輕,左輕右重。不難判斷出結(jié)果來(分析模塊1.2.1、1.2.2和1.2.3,略)
如果左輕右重,則{分析模塊1.3},右邊3球含次品,且次品為重球。
第三次使用天平,從右邊3球中任取2球,各放一邊。將出現(xiàn)三種結(jié)果:平,左重右輕,左輕右重。不難判斷出結(jié)果來(分析模塊1.3.1、1.3.2和1.3.3,略)
否則,說明天平下的4球?yàn)檎?天平上的8球含次品。取下天平上的球,分開放置,不妨假設(shè)“輕”球放左邊,“重”球放右邊,然后按{分析模塊2}來分析:
{分析模塊2} 第二次使用天平,任取右邊4“重”球中的3個(gè)和左邊4“輕”球中的2個(gè),一同放到天平的右邊(在不影響天平平衡的情況下,注意區(qū)分這5球的“輕”“重”);再取4正品球與剩下的“重”球,一同放到天平的左邊。將出現(xiàn)三種結(jié)果:平,左重右輕,左輕右重。
如果平,則{分析模塊2.1}現(xiàn)在天平上的10球全為正品,天平下的兩“輕”球含次品,且次品一定是輕球。第三次使用天平,略。
如果左重右輕,則{分析模塊2.2}在左邊的1個(gè)“重”球與右邊的2個(gè)“輕”球中含次品,其他球均為正品。
第三次使用天平,再將2個(gè)“輕”球分放天平兩邊。結(jié)果可出,后續(xù)分析略。
如果左輕右重,則{分析模塊2.3},次品包含在右邊的3個(gè)“重”球中,且次品為重球。第三次使用天平,可出結(jié)果,后續(xù)分析略。
【C語言描述】
為了便于描述,將12個(gè)球用a,b,c,d,e,f,g,h,i,j,k,l分別表示(這步是將日常語言“轉(zhuǎn)化”成計(jì)算機(jī)語言的關(guān)鍵)。
if (a+b+c+d=e+f+g+h)
{
if (a+b+c=i+j+k)
{
If (a>l) printf(“l(fā) is light”)
Else printf(“l(fā) is weight”)
}
Else
{
略
}
}
else
{
略
}
有些游戲或多或少存在一些難度,如在課堂臨時(shí)布置,必然影響教學(xué)進(jìn)度。所以應(yīng)提前布置游戲任務(wù),讓學(xué)生利用課余時(shí)間充分地思考。在案例教學(xué)中,教師應(yīng)注意兩點(diǎn):一是鼓勵(lì)學(xué)生互相討論。在討論中,學(xué)生的思想可以相互碰撞,相互啟發(fā),開拓思路。同時(shí),還可以激發(fā)學(xué)生的興趣。二是要督促和引導(dǎo)。由于有些游戲有一定的難度,學(xué)生可能會(huì)因長時(shí)間找不到問題的解決辦法而置之腦后或氣餒。這時(shí),教師的督促或引導(dǎo)可以幫助學(xué)生繼續(xù)思考。在順利完成游戲的基礎(chǔ)上,可以先要求學(xué)生用文字描述完成游戲過程,要求步驟清晰,然后引導(dǎo)學(xué)生使用算法描述性的語言,最終要求學(xué)生用計(jì)算機(jī)語言來描述完成游戲的思想和過程。通過這個(gè)案例教學(xué),學(xué)生把現(xiàn)實(shí)語言轉(zhuǎn)化為計(jì)算機(jī)語言的能力以及靈活運(yùn)用分支語句的能力將有很大的提高。
3結(jié)束語
通過以上案例教學(xué)活動(dòng),我們發(fā)現(xiàn)將游戲引入到計(jì)算機(jī)程序設(shè)計(jì)教學(xué)很有意義。某些完成游戲的方法和思想與程序設(shè)計(jì)的方法和思想是相通的。人們在長期的生產(chǎn)實(shí)踐中,總結(jié)設(shè)計(jì)出了許多游戲,這些游戲往往可以鍛煉學(xué)生的不同能力,比如學(xué)生描述解決方法的能力、步驟設(shè)計(jì)能力、分支思維能力、數(shù)學(xué)建模能力等。借助游戲可以使學(xué)生更好地領(lǐng)會(huì)程序設(shè)計(jì)的方法和思想,健康有益的游戲可以激發(fā)學(xué)生的興趣和潛力,調(diào)動(dòng)學(xué)生思考的積極性,開拓學(xué)生的思路。
教師在將游戲引入到計(jì)算機(jī)程序設(shè)計(jì)教學(xué)中,要有步驟地進(jìn)行。首先要根據(jù)教學(xué)內(nèi)容和目標(biāo)精心設(shè)計(jì)或選擇游戲,這是游戲案例教學(xué)法中最關(guān)鍵的一步,它將影響游戲教學(xué)法的最終效果。針對不同的游戲,可以提前布置游戲任務(wù),給學(xué)生思考和討論的時(shí)間。然后,在順利完成游戲的基礎(chǔ)上,要求每位學(xué)生用文字描述完成游戲的過程。最后,要求學(xué)生用計(jì)算機(jī)語言來描述完成游戲的過程,這是教學(xué)的最終目的,也是為了培養(yǎng)學(xué)生將現(xiàn)實(shí)語言轉(zhuǎn)化為計(jì)算機(jī)語言的能力和靈活運(yùn)用計(jì)算機(jī)程序解決實(shí)際問題的能力。在上述過程中,教師的作用主要在引導(dǎo),而解決問題的辦法和程序,主要由學(xué)生通過自己的思考得來。
教學(xué)實(shí)踐證明,采用這種教學(xué)方法的班級(jí),期末考試平均成績和合格率明顯提高,并且學(xué)生的思維活躍,學(xué)習(xí)興趣高,甚至有些學(xué)生還有一些創(chuàng)新的思維方式。所以,在計(jì)算機(jī)語言課程的教學(xué)中,恰當(dāng)?shù)匾胗螒蛩枷?運(yùn)用案例教學(xué)法,既可以幫助學(xué)生理解程序設(shè)計(jì)的方法和思想,又可以啟發(fā)學(xué)生的思維。同時(shí),活躍課堂氣氛,寓教于樂,合乎快樂學(xué)習(xí)的現(xiàn)代教育理論。
參考文獻(xiàn):
[1] 郝桂英.關(guān)于計(jì)算機(jī)程序設(shè)計(jì)語言課程教學(xué)的探索[J].教育與職業(yè),2007(6).
[2] 解晨光.關(guān)于高職高專計(jì)算機(jī)教學(xué)改革的研究[J].教育探索,2006(8).
[3] 屈衛(wèi)清.C語言程序設(shè)計(jì)教程[M].北京:高等教育出版社,2007.