江蘇省陶都中等專業(yè)學(xué)校 蔣紫燕
“C語言程序設(shè)計”是中職學(xué)校電子信息類、計算機(jī)類、通信類專業(yè)的一門基礎(chǔ)課程,側(cè)重于培養(yǎng)學(xué)生的計算思維和利用計算機(jī)處理問題的能力。利用項(xiàng)目教學(xué)法進(jìn)行授課是一種非常普遍的方式。由于課程本身偏數(shù)理性、邏輯性的特點(diǎn),中職學(xué)校所訂購的項(xiàng)目化教材過于成熟性、工具性,學(xué)生正處于青春期,常規(guī)項(xiàng)目不能引起學(xué)生注意,因此,本文探討通過“小游戲”項(xiàng)目寓教于樂,幫助學(xué)生培養(yǎng)良好的學(xué)習(xí)習(xí)慣,激發(fā)學(xué)生學(xué)習(xí)興趣,調(diào)動學(xué)生的積極性和主動性,提高課堂教學(xué)效率。
在周期一年的“C語言程序設(shè)計”課程教學(xué)實(shí)踐中,上半年發(fā)現(xiàn),教師采用傳統(tǒng)的教學(xué)模式時,學(xué)生反響平平,普遍認(rèn)為本課程難學(xué)、內(nèi)容高深、難以理解、偏數(shù)理化,容易產(chǎn)生畏學(xué)、厭學(xué)的情緒。這樣不僅影響本課程的教學(xué)成效,學(xué)生也會帶著畏難情緒步入后續(xù)課程的學(xué)習(xí),從而影響整個人才培養(yǎng)方案的實(shí)施。環(huán)環(huán)相扣,層層遞進(jìn),本課程作為專業(yè)課程的入門磚,若學(xué)生邏輯性思維、拆分問題的方法和能力未能得到培養(yǎng),后續(xù)課程將效果大大減少。通過和專家的探討,一致認(rèn)為產(chǎn)生這種現(xiàn)象的原因大致有三種。第一,C語言語法規(guī)則多而細(xì),理論性深,知識點(diǎn)雜而多、抽象,對學(xué)生的學(xué)習(xí)基礎(chǔ)要求較高,學(xué)生理解起來較為困難。在實(shí)際編寫代碼過程中又十分靈活,初學(xué)者會感到有難度,無法很好地運(yùn)用編譯軟件。第二,學(xué)生的數(shù)學(xué)和英語基礎(chǔ)較薄弱,沒有培養(yǎng)出較好的學(xué)習(xí)習(xí)慣,學(xué)習(xí)興致不高。第三,采用的是傳統(tǒng)的課堂教學(xué)模式:教師在講臺上講解,學(xué)生在講臺下被動接聽,這是一種“滿堂灌”且以教師為中心的教學(xué)模式,往往會忽略掉學(xué)生的主觀能動性。因此,即使教師很認(rèn)真的備課、上課,但教學(xué)成果很不理想,學(xué)生抵觸情況時有發(fā)生,更有甚者會把本課程認(rèn)為是一門“數(shù)學(xué)課”。
因此,筆者下半年嘗試采用項(xiàng)目教學(xué)法與上機(jī)實(shí)操相結(jié)合,通過若干個項(xiàng)目將教學(xué)內(nèi)容融入編寫代碼的過程中,以小組教學(xué)為主,班級教學(xué)為輔,根據(jù)學(xué)生的學(xué)習(xí)現(xiàn)狀動態(tài)調(diào)整相應(yīng)的項(xiàng)目內(nèi)容。根據(jù)知識點(diǎn)將“C語言程序設(shè)計”課程分為基礎(chǔ)知識、程序控制結(jié)構(gòu)、數(shù)組、指針、文件這五大模塊,針對不同模塊的知識點(diǎn),設(shè)計相應(yīng)的項(xiàng)目。常用的小型程序設(shè)計項(xiàng)目如表1所示。
表1 常用小型程序設(shè)計
經(jīng)過半個學(xué)期的實(shí)踐,在機(jī)房采用項(xiàng)目教學(xué)法后,師生互動明顯增加,學(xué)生提問頻率提升。比起使用傳統(tǒng)教學(xué)模式,學(xué)生更愿意接受這種教學(xué)方法,教學(xué)成效有所提升。
但生本主義告訴我們應(yīng)該最大限度地鼓勵學(xué)生進(jìn)行自主學(xué)習(xí),包括自主發(fā)現(xiàn)問題,在團(tuán)結(jié)合作中尋找解決方法,充分體現(xiàn)學(xué)生的主體地位,引導(dǎo)學(xué)生自立,自我學(xué)習(xí)與管理。同時,這個階段的學(xué)生正處于青春期,學(xué)習(xí)欠主動,“好斗”,愛玩游戲,采用傳統(tǒng)的項(xiàng)目教學(xué)方式無法培養(yǎng)學(xué)生的自主性,讓每一位學(xué)生都能完成項(xiàng)目,理解知識點(diǎn),養(yǎng)成計算機(jī)的思維。
因此,設(shè)計一個更適合學(xué)校學(xué)情,更能引起學(xué)生興趣和自學(xué)能力的項(xiàng)目至關(guān)重要。
顧名思義,小游戲指一些體積較小、可執(zhí)行程序的容量在100兆以內(nèi),游戲規(guī)則簡單,生命周期較短,無安裝,耐玩性強(qiáng),無依賴性,操作方便,綠色的游戲娛樂項(xiàng)目。
在項(xiàng)目教學(xué)法實(shí)施過程中設(shè)計的小游戲項(xiàng)目,因其項(xiàng)目程序功能需求量較少,項(xiàng)目開發(fā)周期不超過2周,便于學(xué)生保持良好的專注度,可以滿足中職學(xué)生C語言學(xué)習(xí)內(nèi)容的要求,和教學(xué)目標(biāo)相匹配。項(xiàng)目整體偏益智類和廣泛性,學(xué)生對項(xiàng)目游戲規(guī)則十分熟悉,便于教師引導(dǎo)學(xué)生分析項(xiàng)目的執(zhí)行過程、組成環(huán)節(jié)。小游戲項(xiàng)目無須安裝,無年齡層次之分,因此學(xué)生在完成項(xiàng)目后可將項(xiàng)目分享給身邊的人,一來能展示學(xué)習(xí)成果,二來能提高學(xué)生的自信心和成就感,無須追求華美的畫面感和游戲競技精神,因此游戲所占內(nèi)存較少,對硬件配置要求不高,加載時間短,節(jié)省時間和資源,通過鼠標(biāo)和鍵盤來控制游戲的進(jìn)程,常用的實(shí)訓(xùn)機(jī)房就能滿足要求。根據(jù)學(xué)生敏感度以團(tuán)隊(duì)協(xié)作的方式共同完成小游戲項(xiàng)目,不僅幫助學(xué)生找到“同類”,還能增加友誼,增進(jìn)組員之間的默契度。
筆者運(yùn)用C語言的語法知識帶領(lǐng)學(xué)生從頭開始開發(fā)小游戲,通過小游戲項(xiàng)目逐步將知識點(diǎn)串聯(lián)起來,在實(shí)際編程中激發(fā)學(xué)生的興趣。每次開課前,教師都會將基礎(chǔ)語法知識準(zhǔn)備好,便于學(xué)生預(yù)習(xí)和鞏固。提供多個步驟的代碼及對應(yīng)的要求,以彈跳小球?yàn)槔涸趯W(xué)習(xí)完常量、變量、運(yùn)算符、表達(dá)式、printf、scanf輸入輸出函數(shù),分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)知識后,簡單的彈跳小球講解步驟核心代碼如下。
●在控制臺(5,10)中繪制一個圓:
int i,j;
int x = 5;//X 軸坐標(biāo)
int y = 10;//Y 軸坐標(biāo)
for(i=0;i<x;i++)
// 輸出小球上面的空行
printf(" ");
for (j=0;j<y;j++)
//輸出小球左邊的空格
printf(" ");
printf("o");//輸出小球 o
●使小球下落:
//利用循環(huán)結(jié)構(gòu)將小球從(1,10)下移到(9,10)
for (x=1;x<10;x++)
{system("cls"); // 清屏函數(shù)
for(i=0;i<x;i++)
printf(" ");
for (j=0;j<y;j++)
printf(" ");
printf("o"); }
●利用加速度彈跳
while (1)
{ //起點(diǎn)加上移動速度等于終點(diǎn)
x=x+velocity;
if (x==hight)//如果小球到達(dá)底部
velocity = -velocity;
if (x==0)//如果小球碰到達(dá)頭部
velocity = -velocity;}
●斜著跳
while (1)
{ //小球碰到上下邊界時
if ((x==top)| |(x==bottom))
velocity_x = -velocity_x;
//小球碰到左右邊界時
if ((y==left)| |(y==right))
velocity_y = -velocity_y;}
在拓展相關(guān)EasyX 圖形交互功能的知識后,可以對彈跳小球進(jìn)行界面設(shè)計,相關(guān)的代碼如下。
# include<graphics.h>
initgraph(w idth,height);//設(shè)置控制臺面積,寬度800,高度600
cleardevice();//清屏
fillcircle(x,y,radius);//畫小球
Sleep(100);//暫停 100 毫秒
常用的小游戲項(xiàng)目如表2所示。
表2 常用的小游戲項(xiàng)目
結(jié)合學(xué)校的實(shí)訓(xùn)材料,確定不應(yīng)設(shè)計觸屏式、純文本類、靜態(tài)、3D的小游戲項(xiàng)目。在教學(xué)過程中,需要教師通過編寫代碼將語法知識融會貫通,因此大部分教師都是利用機(jī)房進(jìn)行教學(xué)。所以在設(shè)計項(xiàng)目時,教師要充分考慮到機(jī)房的硬件、軟件配置問題,普通的機(jī)房只能滿足最基本的實(shí)訓(xùn)教學(xué)要求,專業(yè)性不強(qiáng),項(xiàng)目主要以黑白界面為主、鍵盤鼠標(biāo)作為控件、單機(jī),二維的小游戲項(xiàng)目。要讓項(xiàng)目“落地”,真正貼近教學(xué)實(shí)際,需要因地制宜,選擇最恰當(dāng)?shù)捻?xiàng)目。
在設(shè)計項(xiàng)目時,應(yīng)該把學(xué)生的現(xiàn)有基礎(chǔ)水平、認(rèn)知能力的差異、興趣愛好、年齡特征等納入考慮因素范圍內(nèi)。教師要始終站在學(xué)生的角度,根據(jù)學(xué)生的實(shí)際水平設(shè)計每一個小游戲項(xiàng)目,項(xiàng)目所涉及的知識不能超過教學(xué)大綱的范圍,最好能與后續(xù)課程產(chǎn)生關(guān)聯(lián)。項(xiàng)目應(yīng)先易后難,層層遞進(jìn),到后期,偏難的項(xiàng)目可以先將超出大綱的代碼及知識點(diǎn)都準(zhǔn)備好,并配好相應(yīng)的教學(xué)視頻,讓學(xué)生自主選擇是否擴(kuò)展,引導(dǎo)學(xué)生參與整個編寫代碼的過程,增強(qiáng)學(xué)生的成就感。
據(jù)研究,人的大腦通過視覺接收外部信息的比例最高達(dá)83%。所以,教師在設(shè)計項(xiàng)目時,應(yīng)該盡可能地設(shè)計一些具有動態(tài)性、界面豐富、效果歡快、可視化的項(xiàng)目。學(xué)生對純理論性的語法知識無感、沒有充分的想象力,難以理解編寫規(guī)則和邏輯思維,而通過小游戲項(xiàng)目將理論知識的底層邏輯、語法、語義完美地展示出來,實(shí)現(xiàn)了所見即所得。教師可以利用輸入輸出庫函數(shù)實(shí)現(xiàn)相關(guān)操作,也可以采用EasyXGraphics Library這個繪圖庫,作為擴(kuò)展知識。如果再結(jié)合一些音樂,效果會更佳。利用多媒體技術(shù)創(chuàng)造良好的教學(xué)環(huán)境,引導(dǎo)學(xué)生走上自學(xué)的道路。
相比傳統(tǒng)教學(xué)模式,采用項(xiàng)目教學(xué)法一定要注重項(xiàng)目的設(shè)計,在教學(xué)活動中需要采納具有趣味性、貼近學(xué)生實(shí)際的項(xiàng)目,才能促進(jìn)學(xué)生學(xué)習(xí)效果的提升。趣味性的項(xiàng)目不僅能讓學(xué)生完成學(xué)習(xí),而且能幫助學(xué)生找到真正熱愛的事情,讓他們帶著興趣學(xué)習(xí),快樂成長,收獲也會頗多。小游戲項(xiàng)目普遍受學(xué)生的喜歡,將其運(yùn)用于教學(xué)中能取得良好的效果。