張吉玲
摘要:《C語言程序設(shè)計(jì)》是高校計(jì)算機(jī)專業(yè)的一門基礎(chǔ)課程。這門課程的教學(xué)目的在于讓學(xué)生掌握C語言,并且能應(yīng)用所學(xué)的相關(guān)知識編寫程序,成為學(xué)生今后學(xué)習(xí)其他專業(yè)課程的基礎(chǔ)工具。該文就教學(xué)中存在的問題進(jìn)行了分析,并對教學(xué)方法提出了幾點(diǎn)建議。
關(guān)鍵詞:C語言程序設(shè)計(jì);教學(xué)方法;任務(wù)驅(qū)動;案例驅(qū)動
中圖分類號:G424文獻(xiàn)標(biāo)識碼:A文章編號:1009-3044(2012)30-7300-02
C語言是一種面向過程的計(jì)算機(jī)程序設(shè)計(jì)語言,它是目前眾多計(jì)算機(jī)語言中舉世公認(rèn)的優(yōu)秀的結(jié)構(gòu)化程序設(shè)計(jì)語言之一。C語言既適合于編寫系統(tǒng)軟件,也適合于編寫應(yīng)用程序。它把高級語言面向過程和低級語言與硬件關(guān)系密切的優(yōu)點(diǎn)有機(jī)地結(jié)合起來,因此,它具有許多顯著特點(diǎn)。如:語言簡練、使用方便靈活;運(yùn)算符豐富;數(shù)據(jù)類型豐富;允許直接訪問物理地址,能進(jìn)行位運(yùn)算,能實(shí)現(xiàn)匯編語言的大部分功能,可以直接對硬件進(jìn)行操作,這是其他高級語言所不可比擬的。在教學(xué)過程中發(fā)現(xiàn)對于大學(xué)一年級學(xué)生而言,第一次接觸C語言,對其中的一些知識點(diǎn)很難以理解。如:運(yùn)算符中的自增、自減運(yùn)算符;程序設(shè)計(jì)基本結(jié)構(gòu)中的選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)的執(zhí)行過程;數(shù)組的應(yīng)用以及指針的應(yīng)用等問題都是讓很多學(xué)生難以掌握的問題,從而失去了學(xué)習(xí)這門課程的興趣。為了讓學(xué)生能更容易接受這門課,教師必須改善教學(xué)方法,以提高學(xué)生的學(xué)習(xí)興趣,達(dá)到學(xué)以致用的目的。
1 《C語言程序設(shè)計(jì)》教學(xué)現(xiàn)狀與存在問題
1.1 學(xué)生的學(xué)習(xí)方法不科學(xué)
對于大部分學(xué)生而言,這門課的學(xué)習(xí)方法存在很大問題。首先是學(xué)生自制力差,課前不預(yù)習(xí)本節(jié)課的知識;其次,在課堂上,學(xué)生只是一味的聽老師講解,沒有養(yǎng)成記筆記的習(xí)慣,即使有同學(xué)記筆記,也是機(jī)械性記錄講授內(nèi)容,沒有從根本上理解具體內(nèi)容;再次,課后不復(fù)習(xí)課堂上學(xué)到的相關(guān)知識。這樣就造成對C語言基本知識不理解,C語言課程難學(xué)的局面。
1.2 教學(xué)方法存在問題
在整個(gè)教學(xué)活動中,教師處于中心位置,學(xué)生的主體性被忽略,在學(xué)習(xí)過程中被動的接受知識,所以經(jīng)常出現(xiàn)“學(xué)完忘完”的現(xiàn)象。由于沒有從根本上理解講授內(nèi)容,難以跟上教師的教學(xué)節(jié)奏,長此以往,難以發(fā)揮學(xué)習(xí)的積極性和主動性,降低了學(xué)習(xí)的興趣。
2 教學(xué)方法的改進(jìn)與研究
2.1 課堂互動
傳統(tǒng)的教學(xué)主要以教師的講授為主,學(xué)生只是被動的接受,這樣導(dǎo)致部分學(xué)生注意力不集中,不能主動的分析問題,解決問題。因此,在授課的同時(shí),要通過提問-回答的方式集中學(xué)生的注意力,活躍課堂氣氛。隨著對學(xué)生情況的了解,讓基礎(chǔ)弱的學(xué)生上臺互動,可以提高這部分學(xué)生的學(xué)習(xí)主動性。
2.2 使用典型案例,激發(fā)學(xué)生的學(xué)習(xí)興趣
俄國文學(xué)家托爾斯泰說過:“成功的教學(xué)所需的不是強(qiáng)制,而是激發(fā)學(xué)生的學(xué)習(xí)興趣?!奔ぐl(fā)學(xué)生的學(xué)習(xí)興趣,調(diào)動學(xué)生的學(xué)習(xí)積極性是C語言教學(xué)過程中不可缺少的重要環(huán)節(jié)。因此,在講授過程中要列舉出生活中碰到的典型問題,引導(dǎo)學(xué)生用C語言知識解決問題,可以激發(fā)學(xué)生學(xué)習(xí)C語言的興趣。例如:在講授選擇結(jié)構(gòu)時(shí),可以列舉十字路口方向選擇的例子;在講授循環(huán)結(jié)構(gòu)時(shí),可以列舉學(xué)生一學(xué)期課表的例子。這些問題都是發(fā)生在學(xué)生身邊的問題,如何利用所學(xué)知識解決問題是教師在課堂上講授的重中之重。通過對這些問題的分析講解,學(xué)生更容易將學(xué)到的知識加以運(yùn)用。另一方面,為了激發(fā)學(xué)生的興趣,可以穿插一些游戲的程序設(shè)計(jì),如貪吃蛇等,這樣學(xué)生在學(xué)習(xí)知識的同時(shí),還可以享受知識帶來的樂趣。
2.3 算法為主,淡化語法
C語言是面向過程的程序設(shè)計(jì)語言,程序設(shè)計(jì)主要包含兩重任務(wù),首先是把要用計(jì)算機(jī)處理的實(shí)際問題抽象為數(shù)學(xué)模型,設(shè)計(jì)出解題步驟即算法,然后對所設(shè)計(jì)的算法進(jìn)行編碼,這就是編程,即所謂實(shí)現(xiàn)算法。由此可見,學(xué)習(xí)C語言的重點(diǎn),就是掌握分析、分解、最終整理出算法的方法。與之相對應(yīng),C語言的語法是工具,是算法的一個(gè)具體實(shí)現(xiàn)。因此,在C語言的學(xué)習(xí)中,一方面要熟練掌握基本的語法,因?yàn)樗撬惴▽?shí)現(xiàn)的基礎(chǔ),另一方面必須認(rèn)識到算法的重要性,學(xué)好這門課的最佳途徑是編寫程序,只有自己動手不斷的編寫程序,調(diào)試程序,才能提高編程水平,進(jìn)而才能學(xué)好這門課程。
2.4 培養(yǎng)良好的閱讀和分析程序的能力
閱讀和分析程序的過程也是為程序設(shè)計(jì)奠定基礎(chǔ)的過程。在分析程序結(jié)果的過程中,不但可以掌握整個(gè)程序的執(zhí)行流程,更能分析出具體結(jié)構(gòu)的組成、語法及實(shí)現(xiàn)的功能,如:程序中的選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu),在分析的基礎(chǔ)上,學(xué)生更容易掌握它們的結(jié)構(gòu)組成和執(zhí)行過程,可以為以后的編程中獨(dú)立使用這些結(jié)構(gòu)奠定基礎(chǔ)。教師在講授中也應(yīng)該有意識的向?qū)W生滲透程序設(shè)計(jì)的思想和方法,引導(dǎo)學(xué)生從分析程序開始,逐步過渡到獨(dú)立進(jìn)行程序編寫。
2.5 采用“任務(wù)驅(qū)動”和“案例驅(qū)動”相結(jié)合的教學(xué)方法
任務(wù)驅(qū)動教學(xué)方法是以建構(gòu)主意的認(rèn)知靈活性理論為基礎(chǔ)的一種教學(xué)方法,將教學(xué)內(nèi)容設(shè)計(jì)成學(xué)生感興趣的具體任務(wù),整個(gè)教學(xué)過程中,以完成任務(wù)為主旨,把相應(yīng)的語法和知識點(diǎn)貫穿在整個(gè)任務(wù)中,讓學(xué)生自己提出問題,借助教師的引導(dǎo),自己解決問題。如:在講授循環(huán)結(jié)構(gòu)時(shí),先把循環(huán)結(jié)構(gòu)的三種形式涉及到的相關(guān)知識簡單講授,然后讓學(xué)生完成任務(wù):采用while循環(huán)、do-while循環(huán)和for循環(huán)分別來完成求1~10這10個(gè)整數(shù)的和。在整個(gè)過程中,學(xué)生不僅會學(xué)到三種循環(huán)結(jié)構(gòu)的使用方法,還能通過具體任務(wù)了解到while循環(huán)、do-while循環(huán)在初始條件不滿足的情況下,二者的循環(huán)過程的差別。通過任務(wù)驅(qū)動教學(xué)法,不僅激發(fā)了學(xué)生的求知欲,也培養(yǎng)了學(xué)生的自學(xué)能力。
案例驅(qū)動教學(xué)法是一種在教師的指導(dǎo)下,先通過對典型案例的分析,組織學(xué)生進(jìn)行學(xué)習(xí)、探索與研討,得到解決問題的方法。
這兩種方法的結(jié)合,不但讓學(xué)生更扎實(shí)地掌握基本的知識點(diǎn),還能使學(xué)生舉一反三,進(jìn)一步了解和掌握相同案例的解決方法和思路,從而完成學(xué)習(xí)過程的方法。
2.6 針對不同水平的學(xué)生分層次教學(xué)
由于目前各大高校面向全國招生,不同區(qū)域的經(jīng)濟(jì)發(fā)展水平存在一定的差異,導(dǎo)致教學(xué)設(shè)施和教學(xué)方法也不盡相同,因此學(xué)生的生源質(zhì)量也有很大的差異。這個(gè)問題是教學(xué)過程中必須面對的一個(gè)難點(diǎn)。解決這個(gè)問題,個(gè)人感覺可以從以下兩點(diǎn)入手:
1)互幫互交。讓基礎(chǔ)比較好的學(xué)生來幫助基礎(chǔ)弱的學(xué)生。教師要對幫教者進(jìn)行一定的鼓勵,充分調(diào)動幫教者的積極性。同時(shí)也要督促受幫助者虛心學(xué)習(xí),力求上進(jìn)。這樣不但可以提高雙方的學(xué)習(xí)水平,還可以增強(qiáng)同學(xué)間的友誼。
2)教師要根據(jù)課堂氣氛、學(xué)生反映能力,適當(dāng)調(diào)整教學(xué)進(jìn)度。對于一些難以理解的問題,要放慢速度,精細(xì)講解。對于某些知識點(diǎn),可以先跳過,以后再講,不一定按照教材章節(jié)順序講解。對于教材里涉及到的一些比較深奧的程序示例以及一些在實(shí)際編程中很少用到的語法語句,可以少講或不講。這樣可以減輕學(xué)生學(xué)習(xí)的難度,激發(fā)學(xué)生的學(xué)習(xí)興趣。
2.7 理論與實(shí)踐相結(jié)合
《C語言程序設(shè)計(jì)》這門課是實(shí)踐性比較強(qiáng)的基礎(chǔ)性課程。學(xué)習(xí)這門課,不僅是對語法知識的掌握,更重要的是要學(xué)以致用,利用所學(xué)到的知識編寫程序解決實(shí)際問題。因此,學(xué)生在學(xué)習(xí)的過程中,要合理安排上機(jī)時(shí)間。在上機(jī)的過程中,首先要熟悉C語言的編譯環(huán)境,如:Turboc 2.0或者Visual C++ 6.0等,掌握程序的編寫、調(diào)試、運(yùn)行的具體操作和命令。其次對于同一個(gè)問題,要讓學(xué)生練習(xí)使用多種不同的編程方法來解決,并且能夠成功運(yùn)行,在編程過程中,對于出現(xiàn)的問題,教師盡量給予提示,啟發(fā)學(xué)生自己思考解決問題。這樣不但能培養(yǎng)學(xué)生的動手能力,還能培養(yǎng)學(xué)生獨(dú)立思考的能力,把理論課上學(xué)到的知識成功應(yīng)用于實(shí)踐,提高學(xué)習(xí)的質(zhì)量和效率。
3 結(jié)束語
《C語言程序設(shè)計(jì)》這門課的教學(xué)涉及到多方面的因素,需要教師在教學(xué)的過程中不斷探索新的教學(xué)方法。只有選擇合適的教學(xué)方法,才能激發(fā)學(xué)生的學(xué)習(xí)興趣,使學(xué)生不但掌握編程語言的基本理論知識、編程技術(shù)和基本算法的實(shí)現(xiàn),更重要的是讓學(xué)生掌握程序設(shè)計(jì)的思想和方法,具備利用計(jì)算機(jī)來求解實(shí)際問題的能力,為以后學(xué)習(xí)更專業(yè)的程序設(shè)計(jì)語言奠定基礎(chǔ)。
參考文獻(xiàn):
[1] 譚浩強(qiáng).C程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2000.
[2] 曲俊華,林碧英.計(jì)算機(jī)基礎(chǔ)與程序設(shè)計(jì)[M]. 北京:中國電力出版社,2000.
[3] 馬骕.關(guān)于我校非計(jì)算機(jī)專業(yè)C語言教學(xué)改革的探討[J].科技向?qū)В?011(3).
[4] 趙阿可,劉世江.《C語言程序設(shè)計(jì)》教學(xué)方法的探討[J].價(jià)值工程,2011(16).
[5] 康振.關(guān)于C語言程序設(shè)計(jì)教學(xué)方法的探討[J].遼寧教育行政學(xué)院學(xué)報(bào),2010(2).