高挺挺
摘要:該文針對已入門的C語言學習者如何提高編程興趣和能力的問題進行了探索,通過教學實踐發(fā)現(xiàn),模塊化案例教學在C語言教學的提高階段能夠取得較好的效果,通過案例分析的引導,學習者不僅能更加牢固的掌握知識點,編程技能和思路也得到了很大的提升與拓展,達到了教學目的。
關鍵詞:C語言提高;模塊化思想;案例教學
中圖分類號:G424 文獻標識碼:A 文章編號:1009-3044(2015)10-0113-02
C語言是計算機相關專業(yè)在程序設計方面的重要基礎課程之一,肩負著引領學生進入軟件開發(fā)領域的重任。C語言的教學應隨著學生的掌握程度,在不同階段采取不同的教學思路與方法。傳統(tǒng)的教學方式是“理論講授——代碼示例講解——學生上機實驗”,這種方式在入門階段還算可行,可以作為學生了解C語言語法規(guī)則,仿照示例編程的“模板”。但是,當學生入門后,再采取這種教學方式,會讓學生迷失在瑣碎的知識點海洋中,失去學習編程的最終目標,從而不能深入掌握C語言。
在C語言的提高階段,要把模塊化的思想應用到教學中。通過案例分析,自然而然的引出問題的癥結,提出能夠解決問題的知識點與編程技巧。通過引導啟發(fā),讓學生自上而下、逐步求精的去分析案例,掌握解決實際問題的能力,對學生深入掌握C語言大有裨益。
1 模塊化案例教學
采用模塊化編程,意味著開發(fā)C程序不是從逐條編寫C語言代碼開始,而是從宏觀的角度用主程序和子程序等模塊先把程序的主要結構和流程描述出來,并定義好輸入和輸出環(huán)節(jié),逐步分解得到一系列以功能模塊為單位的求解算法和流程。最終,通過實現(xiàn)各功能模塊完成程序設計的目的。
案例教學源于美國哈佛商學院,這是一種注重師生互動的研究性教學方法。教師預先準備有針對性的案例,啟發(fā)學生進行思考,積極參與討論,通過案例引出知識點,進而層層深入得出解決方案,使學生全面掌握C語言編程的知識與方法。
案例教學的目的是調(diào)動學生的積極性,主動參與到案例分析中來,在討論案例的過程中,鞏固已有知識,理解新的知識點,掌握新的編程思路和方法,從而提高分析和解決實際問題的能力。
案例應分為簡單案例和綜合案例。簡單案例針對單一的知識點,難度較小,學生參與的積極性高,有利于從一個小問題引發(fā)學生的思考,從而為綜合案例奠定基礎。綜合案例應覆蓋多個知識點,通過案例討論,為課程設計的開展打下基礎。所以,案例的選取需要有針對性,要來自學生熟悉的領域,難易程度要適中。
2 案例分析
理論課部分以簡單案例分析為主,目的是讓學生掌握新的知識點。通過教師引導,分析案例,啟發(fā)學生尋找新知識點來解決問題。課程設計部分以綜合案例分析為主,目的是讓學生掌握分析解決實際問題的編程方法和技巧。
2.1簡單案例分析
題目:求1+2+3+…+100之和
針對知識點:理解并掌握循環(huán)結構,能使用循環(huán)結構進行熟練編程。
已學知識點:C語言基礎語法、順序結構、選擇結構。
初步分析:可以定義2個整型變量:s和n。變量s存儲累加和,其初值為0,變量n作為累加項,其值由1變化到100,將n的每一個值累加到s變量,即可求出結果。引導學生利用已有知識寫出如下代碼:
#include
main( )
{
int s=0,n=0;
n=n+1;
s=s+n;
n=n+1;
s=s+n;
…
printf("%d\n",s);}
進一步分析:代碼中“n=n+1;s=s+n;”兩條語句會在程序中反復出現(xiàn)了100次,如果我們在程序中把這兩條語句寫100遍,確實也可以計算出結果,但是計算機編程的優(yōu)勢體現(xiàn)在哪呢?如果題目變?yōu)榍蟪?加到1億呢?啟發(fā)學生思考如何解決這個問題,引出循環(huán)結構存在的必要性和重要性,講解for循環(huán)并引導學生修改代碼如下:
#include
main( )
{int s=0,n;
for(n=1;n<=100;n++)
s=s+n;
printf("%d\n",s);}
最后,通過舉一反三類比的方法,引導學生利用while循環(huán)和do~while循環(huán)改寫代碼,并體會循環(huán)結構的特點和作用,掌握利用循環(huán)結構編程的方法與思路。
2.2綜合案例分析
題目:設計并實現(xiàn)學生信息管理系統(tǒng)
學習目標:通過該系統(tǒng)的開發(fā)實踐,掌握C語言的關鍵知識點,掌握利用模塊化的思想開發(fā)實際項目的方法與流程。
初步分析:通過自上而下、逐步求精的思路,可以得出該系統(tǒng)功能模塊結構如圖1所示。
進一步分析:采用模塊化編程的方法,針對每個模塊設計一個函數(shù),然后在主程序main函數(shù)中調(diào)用各個模塊函數(shù)來實現(xiàn)該系統(tǒng),模塊函數(shù)如表1所示,程序流程圖如圖2所示。
繼續(xù)分析:通過分析各模塊之間數(shù)據(jù)的關聯(lián),還有必要設置2個全局變量來標明學生記錄數(shù)和課程記錄數(shù),之后就可以采用各個擊破的方式編寫各個模塊函數(shù)完成該系統(tǒng)的開發(fā)任務。其中登錄系統(tǒng)模塊代碼實現(xiàn)如下:
void login() /*登錄函數(shù)*/
{ intchoice,w;
system("cls");
printf("\t\t\t學生信息管理系統(tǒng)\n\n"); //主菜單
printf("\t\t1. 錄入.\t2. 顯示.\t3. 增項.\t4. 刪項.\n\t\t5. 修改.\t6. 統(tǒng)計.\t7. 查找.\t8.退出.\n");
printf("\n 輸入序號執(zhí)行相應功能:");
scanf("%d",&choice);
switch(choice)
{case 1: input();break;
case 2: display(); break;
case 3: add();break;
case 4: delete();break;
case 5: change();break;
case 6: info(); break;
case 7: query(); break;
case 8: quit();break;
default: w=1; }
if(w==1)
{ printf("輸入有誤,按任意鍵重新選懌.\n");
getch();
login(); } }
最后,依次完成各個模塊函數(shù)的開發(fā)任務即可。
3 教學效果
理論課堂部分,通過教師對簡單案例的分析引導,學生能夠積極參與思考討論,鞏固了已有知識點,學會了新的知識點,并且達到了“知其然,知其所以然”的目標,為實驗課編程實踐
打下了堅實的基礎,實驗課上安排的實驗題目,學生基本上都能按時獨立完成,較往年的完成情況有了很大改觀。
課程設計部分,學生也能依照綜合案例的分析方法,通過自上而下劃分模塊,各個擊破的方式,完成自己的任務,基本上杜絕了往年抄襲現(xiàn)象泛濫的情況。
4 結語
雖然這是筆者采用模塊化案例教學法的第一年,還處于摸索學習階段,但是初次嘗試,教學效果得到了較大的提升,也肯定了筆者的努力方向,筆者將盡快建設完善C語言模塊化教學案例庫,從而更加系統(tǒng)的指導教學工作,以期取得更大的教學效果。
參考文獻:
[1] 王曉勇, 肖四友,張文祥. 基于能力培養(yǎng)的C語言項目化訓練教學模式初探[J]. 計算機教育,2009(10):60-62.
[2] 黃偉,周鳴爭. 程序設計模塊化實驗教學研究與實踐[J]. 電腦知識與技術,2009(15):3964-3966.
[3] 常梅,李迎秋,李永. “案例驅動”在“C語言程序設計”教學中的探索實踐[J]. 計算機教育,2009(22):82-84.
[4] 張波,雷東升. 模塊化案例教學在“C語言程序設計”課程中的應用[J]. 計算機教育,2009(21):62-65.
[5] 白淼. C語言階段模塊化教學模式初探[J]. 時代教育(教育教學),2011(02):56-57.
[6] 蔡茜. 淺談模塊化案例教學法在《C/C++語言程序設計》實踐課程中的應用[J]. 科技信息,2010(13):216+159.
[7] 羅銀科,雷云. 對案例教學法實施的再認識[J]. 教育導刊,2013(12):70-72.