吳海峰,連 飛,朱世娟
(安慶師范學院1.計算機與信息學院,2.教務(wù)處,安徽安慶 246133)
“C語言”漸進式案例驅(qū)動教學法
吳海峰1,連 飛2,朱世娟1
(安慶師范學院1.計算機與信息學院,2.教務(wù)處,安徽安慶 246133)
C語言是程序設(shè)計的入門課程。首先分析指出C語言教學中出現(xiàn)的弊端,然后提出應用漸進式案例驅(qū)動教學法可以消除這些弊端,最后舉兩例進行說明。教學實踐表明,漸進式案例驅(qū)動教學法的教學效果較好,學生對算法的掌握程度和動手編程解決實際問題的能力得到很大提高。
C語言;教學法;漸進式;案例驅(qū)動
C語言作為一門程序設(shè)計的入門課程,其實踐性極強,傳統(tǒng)“純理論式”教學方法、課程考核方式、學時等多種因素導致教學過程中出現(xiàn)了一些弊端[1-4]:重語法,輕算法。傳統(tǒng)的C語言教學通常首先介紹某一知識點,然后講解該知識點的語法形式和含義,最后舉例說明。這種教材的語法闡述非常詳細,信息量大,適合作為學習的工具書。然而“算法是程序設(shè)計的靈魂”,學習C語言的真正目的是為了用它解決實際問題。傳統(tǒng)的教學方法十分重視語法,卻忽視了算法,教出來的學生可能會讀懂程序,但遇到問題需要自己解決時卻無從下手。重考試,輕應用。很多普通高校將通過全國計算機等級考試或者省級計算機水平考試作為C語言課程考核標準。這種做法有利有弊,有利的是實現(xiàn)了教考分離,學生可以獲得一個證書,弊端就是可能導致老師的教學和學生的學習都以考試為導向,考的講不考的不講,考得多的多講,考得少的少講,反而忽視了C語言的實際應用問題。重理論,輕實驗。C語言是一門實踐性強的課程,上機實驗是學習的一個重要和必要的環(huán)節(jié)。然而很多學校開設(shè)的實驗課時不足,學生上機時滿足于把課本上的代碼輸入計算機運行一下,設(shè)計性和綜合性的實驗做得很少。學生將C語言的學習方法等同于高等數(shù)學的學習方法,把大量時間花在做練習題上,對上機實驗的重視程度不夠。
基于這種情況,結(jié)合多年教學實踐,本文總結(jié)出一種“漸進式案例驅(qū)動教學法”。該教學法吸收了“漸進式教學法”[5]和“案例驅(qū)動教學法”[6]各自的優(yōu)點,嘗試運用漸進式案例驅(qū)動教學法,具有如下含義:(1)在實施案例驅(qū)動教學法時,將復雜案例的難點進行分解,由淺入深,由易到難,這也符合學習的規(guī)律;(2)在學生完成案例后,教師對理論知識進行系統(tǒng)總結(jié)歸納,進行升華,采取漸進式教學法。
設(shè)計案例時主要考慮以下幾點:(1)所選案例必須涵蓋相關(guān)知識點;(2)案例的難易程度適當,符合學生的知識水平;(3)案例要有典型性,可以舉一反三;(4)案例要由易到難,循序漸進。例如,在講授循環(huán)結(jié)構(gòu)時,可以選擇“求多項式之和”的典型案例,設(shè)計多個相互關(guān)聯(lián)、難度逐步增加的案例,可以鍛煉學生的觀察問題和分析問題的能力,從而達到舉一反三、事半功倍的效果。案例設(shè)計過程如下。
設(shè)計原則:通過案例讓學生理解循環(huán)通常由初始化部分、循環(huán)體部分、循環(huán)控制部分組成,每個部分的功能及在整個循環(huán)結(jié)構(gòu)中的作用。
設(shè)計案例(1):求1+2+3+4+……+n的值。
案例分析:案例(1)是一個典型的累加求和問題,可以通過模擬計算器的計算過程來實現(xiàn)。首先定義一個變量sum來暫存得到累加和,開始計算時,sum=0,然后依次將1,2,3,……,n累加到sum中,最后得到的sum值即為所求結(jié)果。通過觀察可以發(fā)現(xiàn),每次計算做加法時,除了所加值不一樣,其余部分都相同。這樣可以設(shè)置一個變量i來保存所加值,i的值從1逐步變化到n,每次執(zhí)行sum=sum+i進行累加后,將i的值加1(i+ +)即可。通過分析得到如下程序段:
最后根據(jù)案例程序總結(jié)得出for循環(huán)的一般形式及各部分的功能,進而推廣到for循環(huán)的變形形式。
課堂教學是整個過程中非常重要的一環(huán)。教師通過案例,逐步引導學生學會獨立思考問題、分析問題、解決問題的能力。教師作為課堂的設(shè)計者和掌控者,要起到引導和控制的作用,使學生從被動接受知識到主動獲取知識,充分發(fā)揮學生的主觀能動性和積極性,激發(fā)學生的思考能力,使整個課堂活躍起來。例如,在講授選擇排序算法時,在案例設(shè)計時將這個問題分解成以下5個案例,由易到難,再逐個解決,選擇法排序的原理和過程就一目了然。
案例(2)輸入10個數(shù),求最小值。
從已經(jīng)學過的案例:求三個數(shù)的最小值引入,從已知到未知,承前啟后,過渡到新的知識點。
案例(3)輸入n(n<10),再輸入n個數(shù),求最小值。
將數(shù)的個數(shù)由固定到從鍵盤靈活輸入,從不變到變。注意定義數(shù)組的長度不能為變量,可以把長度定義為10。
案例(4)輸入n(n<10),再輸入n個數(shù),輸出最小值和它所對應的下標。
將最小值的表示方式過渡到采用數(shù)組下標的方式,知道下標即可輸出對應數(shù)組元素。
案例(5)輸入n(n<10),再輸入n個數(shù),將最小值與第一個數(shù)交換,輸出交換后的n個數(shù)。首先判斷最小值對應下標是否等于0,若相等則不須進行交換。
案例(6)輸入n(n<10),再輸入n個數(shù),用選擇法將它們從小到大排序后輸出。
有前面的案例作為鋪墊,再結(jié)合圖1舉例說明選擇排序算法的過程,選擇法排序就變得相對容易理解。
圖1 選擇排序算法過程
最后,在學生基本完成的基礎(chǔ)上,老師給出一個相對規(guī)范的程序段作參考,具體如下。
在學生完成案例后,教師及時進行評價,將案例中用到的知識和方法進行總結(jié)延伸。同時,對理論知識進行系統(tǒng)總結(jié)歸納,進行升華,形成完整的知識體系。例如,在完成案例(1)后,對學生的完成情況進行點評,總結(jié)for循環(huán)的一般形式,進而理解循環(huán)的本質(zhì),再推廣到其他形式的循環(huán)結(jié)構(gòu)(while循環(huán)、do-while循環(huán))。
教學實踐表明,漸進式案例驅(qū)動教學法具有如下優(yōu)點:
(1)注重算法分析能力的培養(yǎng)。在教師給出案例后,學生自己分析,教師從旁引導,最終得出解題思路,再利用C語言編程實現(xiàn)。在分析問題和解決問題的過程中,不知不覺學會了算法分析。
(2)注重解決實際問題能力的培養(yǎng)。教學中所用案例,很多都是實際問題或者從實際問題中提煉引申出來的,在解決這些案例的過程中,學生提高了解決實際問題的能力。
(3)注重動手編程能力的培養(yǎng)。在教學過程中,選取部分案例,留給學生課后和上機實驗時完成,下次課堂上采用提問的方式進行抽查,既鍛煉了學生的動手編程能力,又了解了學生的學習狀況,及時調(diào)整教學內(nèi)容和教學計劃。
漸進式案例驅(qū)動教學法吸收案例驅(qū)動教學法[7]的優(yōu)點,將枯燥的語法知識融合到案例中進行講解,在學習理論知識的同時學會應用,避免學用脫節(jié),又遵循循序漸進的學習規(guī)律,將案例中的難點問題逐步分解,由易到難,環(huán)環(huán)相扣,讓學生易于接受。
[1]劉芳,秦興國,王宇英.《C語言程序設(shè)計》教學存在的問題及改進[J].教育理論與實踐,2012,32(36):51-52.
[2]丁海燕.高級語言程序設(shè)計教學重點與課程改革[J].云南農(nóng)業(yè)大學學報,2012,6(6):76-79.
[3]丁麗.項目驅(qū)動式教學法在C語言教學中的應用[J].信息技術(shù)與信息化,2012,(5):33-35.
[4]王平勤,董付國,原達.在C語言教學中注重培養(yǎng)學生算法分析的能力[J].微型機與應用(增刊),2007(6):211-213.
[5]崔松健.漸進式與項目式教學方法在《網(wǎng)頁設(shè)計技術(shù)》教學中的融合[J].電腦知識與技術(shù),2010,6(33):9375-9376.
[6]曹風華.案例驅(qū)動教學法在《計算機應用基礎(chǔ)》課程中的應用[J].現(xiàn)代計算機,2012(12):41-43.
[7]蔡慶華,王一賓,程一飛.案例式C語言程序設(shè)計教程[M].北京:清華大學出版社,2012:144-149.
Application of Gradual Case-driven Teaching Method in C Language Teaching
WU Hai-feng1,LIAN Fei2,ZHU Shi-juan1
(1.School of Computer and Information,2.Teaching Affairs Office,Anqing Teachers College,Anqing 246133,China)
C language is an introductory course of programming.First,the drawbacks of C language teaching are pointed out by analyzing.Then,it is proposed that the application of gradual case-driven teachingmethod can remove these drawbacks.Finally,two examples are given.Teaching practice shows that the teaching effect of gradual case-driven teaching method is better;students′ability to learn algorithms and solve practical problems by programming has been greatly improved.
C Language,teachingmethod,gradual,case-driven
G642
A
1007-4260(2014)03-0135-03
時間:2014-9-15 16:07 網(wǎng)絡(luò)出版地址:http://www.cnki.net/kcms/doi/10.13757/j.cnki.cn34-1150/n.2014.03.033.html
2014-01-27
安徽省2012年重點教學研究項目(2012jyxm351)資助。
吳海峰,男,安徽宿松人,碩士,安慶師范學院計算機與信息學院講師,研究方向為測試數(shù)據(jù)壓縮、計算機教育。