C語(yǔ)言程序設計教學(xué)分析與探索論文
[摘要]C語(yǔ)言是高校計算機類(lèi)專(zhuān)業(yè)開(kāi)設的一門(mén)非常重要的專(zhuān)業(yè)課程,學(xué)校往往在教學(xué)上投入很多,卻收效甚微。學(xué)生普遍反映難學(xué)、難懂,理論與實(shí)踐脫節,所以很難培養出滿(mǎn)足社會(huì )需求的計算機專(zhuān)業(yè)人才。本文從學(xué)校教學(xué)和學(xué)生學(xué)習兩個(gè)方面出發(fā),分析C語(yǔ)言教學(xué)過(guò)程中現存的問(wèn)題,通過(guò)多年的教學(xué)經(jīng)驗,對教學(xué)方式和方法進(jìn)行總結,試圖探索出一種符合現代人才培養需求的教學(xué)模式。
[關(guān)鍵詞]C語(yǔ)言 程序設計 實(shí)踐教學(xué)
一、前言
上個(gè)世紀70年代以來(lái),C語(yǔ)言在以其目標代碼質(zhì)量高,使用靈活,數據類(lèi)型豐富,可移植性好等特點(diǎn)而得到廣泛的普及和迅速發(fā)展,成為一種在系統軟件開(kāi)發(fā)、科學(xué)計算、自動(dòng)控制等各個(gè)領(lǐng)域廣泛應用的程序設計語(yǔ)言。在眾多高級程序設計語(yǔ)言競顯風(fēng)流的當今社會(huì ),C語(yǔ)言以其強大的功能仍在高級程序設計領(lǐng)域占據著(zhù)重要的地位。
C語(yǔ)言作為計算機類(lèi)專(zhuān)業(yè)的一門(mén)專(zhuān)業(yè)課,是學(xué)生學(xué)習程序設計的開(kāi)端,學(xué)生分析問(wèn)題、解決問(wèn)題的能力和程序設計過(guò)程理念的形成都與C語(yǔ)言有著(zhù)密切的聯(lián)系。C語(yǔ)言有著(zhù)其它高級程序設計語(yǔ)言不可比擬的優(yōu)點(diǎn),同時(shí)也有其較難學(xué)習的一面。由于現行教學(xué)過(guò)程中存在著(zhù)一些弊端和學(xué)生自身因素的原因,所以在學(xué)習中普遍反映“難學(xué)”、“不懂“,這也是學(xué)生普遍遇到的問(wèn)題。
二、現行教學(xué)和學(xué)習中存在的問(wèn)題
1.現行教學(xué)中理論課與實(shí)踐課完全分離,不能相互促進(jìn)。理論課中往往只注重對教材知識的分析和灌輸,在廣度上對知識沒(méi)有拓展和延伸,必定會(huì )影響對知識深度的剖析,也會(huì )造成學(xué)生理解的困難。而實(shí)踐課程通常被放到了次要的.地位,很多時(shí)候是在走形式:一方面,學(xué)生對知識一知半解、往往用上網(wǎng)來(lái)對付實(shí)踐課;另一方面,老師很難監控到每個(gè)學(xué)生,了解他們是否都在認真編寫(xiě)、調試程序。這就造成理論課沒(méi)有起到為實(shí)踐課打基礎的作用,實(shí)踐課也沒(méi)有起到鞏固、應用理論課的作用。
2.學(xué)生對計算機基礎的學(xué)習不深入,嚴重影響了C語(yǔ)言的學(xué)習。因為C語(yǔ)言程序設計課程的延續性和拓展性非常的強,包含了算法、數據結構、計算機基礎等相關(guān)專(zhuān)業(yè)課程和基礎課程的課程的知識。在C語(yǔ)言教學(xué)中涉及到進(jìn)制轉換、取值范圍和順序存儲等基礎知識時(shí),發(fā)現很多學(xué)生還沒(méi)掌握這些基礎知識,甚至根本不理解。在這樣薄弱的基礎上,C語(yǔ)言教學(xué)很難順利進(jìn)行。
3.學(xué)生在學(xué)習中處于被動(dòng)的接受知識的地位,沒(méi)有機會(huì )主動(dòng)參與到學(xué)習中來(lái),導致學(xué)習興趣不濃、學(xué)習停留在表面、對知識學(xué)的一知半解。由于接受的多是課本知識,所以動(dòng)手能力差、應用能力差,導致不能把自己所學(xué)的知識應用到實(shí)踐中去。這樣培養出來(lái)的學(xué)生不能滿(mǎn)足社會(huì )的需要,也沒(méi)有達到教學(xué)的目的。
三、探索新的教學(xué)方法
在多年的教學(xué)過(guò)程中,嘗試多種教學(xué)方式,不斷總結教學(xué)經(jīng)驗,探索新的教學(xué)方法。
1.上好第一堂課,引起學(xué)生的學(xué)習興趣。第一堂課是最基礎的理論知識課,如介紹C語(yǔ)言的發(fā)展、特點(diǎn)、優(yōu)點(diǎn)等內容,往往不被教師所重視,認為應該把精力放到程序設計部分。其實(shí)恰恰相反,上好第一堂課至關(guān)重要,它關(guān)系著(zhù)學(xué)生是否會(huì )對學(xué)習產(chǎn)生興趣,渴望進(jìn)行后繼內容的學(xué)習問(wèn)題,所以絕對不能照本喧科。而對C語(yǔ)言的發(fā)展追本溯源,將C語(yǔ)言領(lǐng)域的開(kāi)發(fā)投入、研發(fā)過(guò)程、遇到的問(wèn)題進(jìn)行詳細的分析,對C語(yǔ)言在現實(shí)中的應用以及C++、VC++進(jìn)行介紹,往往能夠引起學(xué)生學(xué)習C語(yǔ)言程序設計的興趣、推動(dòng)后續知識的學(xué)習。
2.詳細講解基礎知識,深度剖析與后繼課程相關(guān)的內容,激發(fā)學(xué)生學(xué)習動(dòng)力。C語(yǔ)言程序設計教學(xué)中涉及的數據類(lèi)型、取值范圍、運算符、優(yōu)先級、表達式等內容雖是基礎知識,但對學(xué)生來(lái)說(shuō)卻是邁入程序設計大門(mén)的第一步。沒(méi)有堅實(shí)的基礎知識,便無(wú)從談及程序設計,所以對基礎知識的講解一定要詳細。比如遇到整型數據的取值范圍問(wèn)題時(shí),可以適當拓展一些原碼和反碼的知識,讓學(xué)生知其然,更知其所以然;鏈表知識是C語(yǔ)言的難點(diǎn),這部分內容和數據結構聯(lián)系密切,所以要深度剖析,尤其是對帶表頭結點(diǎn)的單、雙鏈表更要講解的清晰、透徹,為數據結構、JAVA語(yǔ)言等后繼課程打下堅實(shí)基礎。這樣繼往開(kāi)來(lái),不僅可以鞏固以前的計算機基礎知識,更能激發(fā)學(xué)生的學(xué)習動(dòng)力。 3.重點(diǎn)分析程序設計過(guò)程,培養學(xué)生良好的編程習慣,逐步提高學(xué)生編程能力。很多學(xué)生認為,進(jìn)行程序設計就是用計算機語(yǔ)言編寫(xiě)源代碼,這其實(shí)是學(xué)習程序設計的一個(gè)誤區,編寫(xiě)源代碼僅僅是完成了程序的編碼,而程序設計從問(wèn)題分析就開(kāi)始了,它包括分析問(wèn)題、選擇算法、繪制流程圖、編寫(xiě)源代碼、調試并測試程序,直到取得正確結果這樣一個(gè)完整的過(guò)程。其中繪制流程圖能使程序員在編程時(shí)思路清晰,減少編程錯誤。利用流程圖來(lái)分析、查找、解決程序設計中的問(wèn)題能夠一目了然。例如:下面這一簡(jiǎn)單的while循環(huán)結構,用流程圖便可以輕易發(fā)現錯誤所在。圖1是錯誤代碼的流程圖,它使程序陷入了死循環(huán),圖2是正確的流程圖。所以繪制正確的流程圖,是減少代碼錯誤的有效手段。
Main(0
{int i,sum;
i=sum=0;
While(i<=100)
Sum+=i;
i++;
Printf(“1+2+3+…+100=%d’,sum);
}
在C語(yǔ)言程序設計教學(xué)過(guò)程中,即使對簡(jiǎn)單的程序設計的講解也嚴格的按照程序設計的過(guò)程一步步的進(jìn)行分析和引導,培養學(xué)生良好的編程習慣。
4.通過(guò)實(shí)踐教學(xué),讓學(xué)生親自體會(huì )程序設計全過(guò)程,鞏固所學(xué)知識。學(xué)生通常在C語(yǔ)言的學(xué)習上投入了很多的精力與時(shí)間,但卻離實(shí)際要求相差很遠。因為缺乏了實(shí)踐經(jīng)驗和能力,不能滿(mǎn)足社會(huì )的需求,這也是計算機類(lèi)學(xué)生的通病。為此,在教學(xué)中一定要注重理論與實(shí)踐相結合。案例實(shí)驗可以說(shuō)是學(xué)習C程序設計最有效的方法之一,在教學(xué)過(guò)程中我們故意將賦值符號“=”和等號“= =”互換、漏寫(xiě)分號“;”和大括號“{}“,設置一些待解決的錯誤,引導學(xué)生在編程和調試過(guò)程中逐一解決這些問(wèn)題,不僅能夠鞏固理論知識、養成編程的好習慣,更能調動(dòng)學(xué)生思考問(wèn)題和解決問(wèn)題的積極性。同時(shí)在解決問(wèn)題的過(guò)程中使學(xué)生有一種成就感,這對學(xué)習能力的提高和積極性的培養有很好的作用。
5.多種教學(xué)手段相結合,提高教學(xué)效果。理論教學(xué)與實(shí)踐教學(xué)相結合,適當減少理論課、增加實(shí)踐課,將理論教學(xué)融入實(shí)踐教學(xué)中來(lái),逐漸模糊兩者之間的界限;傳統教學(xué)與豐富多彩的多媒體教學(xué)相結合、教師講解與學(xué)生課堂討論相結合,以便調動(dòng)學(xué)習的主動(dòng)性和積極性。
6.注重對知識的歸納和總結,讓學(xué)生溫故而知新。在教學(xué)過(guò)程中,按章節、按階段對相關(guān)重點(diǎn)知識進(jìn)行歸納總結,讓學(xué)生把模塊化的知識連接起來(lái),系統、全面的掌握所學(xué)內容。
四、結束語(yǔ)
目前C語(yǔ)言程序設計教學(xué)中仍然有很多需要改進(jìn)的地方,如何提高實(shí)踐教學(xué)質(zhì)量,使理論與實(shí)踐相結合,仍需要在教學(xué)過(guò)程中不斷的探索和改革。
參考文獻:
[1]楊路明等.C/C++程序設計教程.長(cháng)沙:湖南科學(xué)技術(shù)出版社, 2003.
[2]譚浩強. C語(yǔ)言程序設計教程.北京:高等教育出版社,1997.
[3]王士元. C高級實(shí)用程序設計.北京:清華大學(xué)出版社,1996.
[4]徐孝凱.數據結構實(shí)用教程(C/C++描述).北京:清華大學(xué)出版社,1999.
【C語(yǔ)言程序設計教學(xué)分析與探索論文】相關(guān)文章:
微課在C語(yǔ)言程序設計教學(xué)中的應用論文10-15
C語(yǔ)言程序設計課件和教學(xué)網(wǎng)站設計論文08-09
大學(xué)工科C語(yǔ)言程序設計教學(xué)概述論文09-02
信息管理專(zhuān)業(yè)C程序設計課程教學(xué)方法探索論文10-30
VFP程序設計課程教學(xué)探索論文07-24