前言:我們精心挑選了數篇優質c語言教學論文文章,供您閱讀參考。期待這些文章能為您帶來啟發,助您在寫作的道路上更上一層樓。
學習C語言程序設計應當充分注意實驗環節。首先老師在上實驗課時盡量要求學生多編寫程序,多上機調試程序,上機實驗的目的決不僅是為了驗證所編程序的正確性,其主要目的在于讓學生熟練掌握上機操作要領和調試程序技術,積累編程經驗。其次上機實驗可以加深學生對講授內容的理解,尤其是一些語法規定,光靠課堂講授比較枯燥又難以記住,但它們又很重要,通過多次上機就能自然地熟練掌握,通過上機來掌握語法規則是行之有效的一種方法。最后,學生在上機調試通過一個程序后,可以自己改變程序中某些部分,甚至故意設置一些障礙,觀察和分析在不同情況下的編譯和運行結果。應當說,上機實驗的重要性絕不亞于課堂聽課,這是鞏固和發展課堂知識的十分重要的環節。
2C語言實驗課存在的問題
目前在不少高校C語言實驗教學活動中,經常會出現以下一些問題:
2.1沒有充分調動學生學習的積極性。大部分學生在學習程序設計以前只知道使用計算機娛樂或辦公,認為計算機的學習應該很輕松。但是C語言的許多基礎知識都是概念性強、理論性強,內容豐富且抽象,具有嚴密邏輯性的,學習難度比較大。這時有的學生會產生畏難情緒,而老師又沒有及時引導,因此許多學生學習興趣開始降低,不聽老師講授理論課,甚至連實驗課也干脆不去。
2.2很多高校的C語言課一般是理論課和實驗課分開教學,任課老師只負責理論教學,實驗部分則是把學生丟到機房由實驗室老師負責輔導,任課老師很少或基本不去機房,學生上機調試程序的自覺性當然很差,就算任課老師布置了作業,也有不少同學在偷偷玩游戲浪費時間,有同學有問題也是由輔導老師負責解答。任課老師和輔導老師溝通不夠,學生到底哪里不懂,上機時在干什么這些情況任課老師很少知道,當然也不了解學生現階段的學習情況,教與學在這里脫節了,任課老師上課就失去了針對性。
2.3學生的作業存在抄襲現象,有的程序錯誤百出,根本就沒上機調試過。對批改過的作業,有相當一部分學生也不認真去分析,交作業僅僅是為了應付老師。對于C語言這樣一門實踐性很強的課程,僅靠布置作業和書面批改作業的方法來督促學生學習和了解學習情況是很不全面和客觀的,很難提高教學質量。
2.4學生每次上機時缺乏明確的量化指標,雖然教師事先也向學生布置應準備的內容,但沒有督促和檢查,完成完不成無所謂。上機情況與期末總成績沒有直接關系,這常常導致學生上機前不充分準備,上機過程中時間抓得不緊,思想上沒壓力,故而上機調試程序的能力提高不快。
2.5不少高校目前C語言的編譯軟件還在用DOS下的TC,現在是WINDOWS橫行的年代,如果還是堅持讓學生面對純英文操作界面的TC,運行一系列難以記憶的DOS命令,很多學生看第一眼就被嚇倒了,更不用說去仔細分析調試程序時產生的諸多英文提示,而且TC本生也有不支持鼠標操作,輸入中文不方便等缺點。3C語言實驗課教學改革的原則和方法
基于對以上問題的分析和認識,在上機實踐教學中應采取如下改進措施:
3.1為了方便管理任課老師最好兼任實驗室輔導老師,或者要和實驗室輔導老師保持密切聯系、經常溝通,及時了解學生的上機作業情況,適時調整授課進度。加強機房管理,端正學生的上機目的。上機考勤、紀律情況記入期末成績。
3.2在每次上機時,要求學生在規定時間內獨立完成一定數量的練習題。老師(任課老師或實驗室輔導老師)根據每人完成練習題的數量、質量與時間,現場打分并做為平時成績,影響該課程的總成績。練習題可在上機之前提前告訴學生,方便他們事先做好準備。這樣一來即可有效地避免學生互相抄襲作業、不求甚解的弊端。
3.3凡講過的基本操作方法,要求學生必須事先復習好,上機時一律不予解答。目的是提高學生理論課的聽課質量。
3.4取消原來的書面作業,換成學生寫實驗報告,這樣可以幫助他們總結編程經驗。實驗報告的格式可以參照上機實驗指導書,此類書現在書店很多,比如譚浩強編著清華大學出版社出版的《C程序設計》就比較不錯。
3.5改進C語言的編譯環境,選用WINDOWS下的編譯軟件,比如WIN—TC,WIN—TC的內核實質上和TC是完全一樣的,只不過是操作界面不一樣,WIN—TC的優勢主要就是純中文菜單,支持鼠標操作,在WINDOWS下編輯TC代碼,充分利用WINDOWS的剪貼版,可以很方便的輸入和顯示漢字等,這是一個免費軟件在網上很容易找到。
3.6筆者結合國內外優秀編程語言的實驗教學方法和模式,并經幾年來C語言的教學實踐,建議在有條件的情況下盡量將理論課和實驗課的比例設置成1:1,千萬不可為趕教學進度或其它任何理由而壓縮實驗課時,那樣做會得不償失。
4C語言實驗課教學改革的效果
上述方案經筆者若干循環的C語言教學實踐后,明顯感到改革前后的情況大不相同,取得了較好的教學效果:
4.1課堂聽課質量明顯提高。因為上機時老師要當場檢查程序,根本就不可能去抄襲別人的,就算抄來弄不明白也是白費心機。要想上機時順利通過,課堂上必須認真聽講,記筆記。因此課堂教學時學生基本上沒有遲到和無故缺的,并且課堂上都能專心聽講,記筆記,課間10分鐘還問個不停,因為上機時就沒有這么多時間詳細問老師了。
4.2實驗課上機效率明顯提高。因為要趕快把程序調通過讓老師檢查,否則這次作業就沒成績了,上機時大家都在爭分奪秒,根本沒有人有時間去玩游戲、上網,甚至于有的學生下課后都還要拖堂調試程序。
關鍵詞:C語言;教學方法;思維轉化;啟發式教學;軟件工程
一、前言
C語言是一種通用性計算機程序設計語言。它兼有匯編語言和高級語言的雙重優點,運用它既能編寫操作系統軟件,又能開發各個領域的應用軟件。C語言的實用性使之成為編程的首選語言。學好了C語言,再進一步深造C++/VC++,JAVA等言語,就有了堅實的基礎。但目前很多學生在學習《C語言程序設計》后,感覺讀程序還湊合,編程則“難于上青天”部分學生甚至毫無編程想法,僅僅是為應付考試而死記硬背,完全背離了高職教育的初衷。因此,如何在C語言教學中啟發并訓練學生的編程思維,是每個教師應深思的問理。以下是筆者在C語言教學中的一些看法,愿和同行探討。
二、上好第一堂課
如何上好第一堂《C語言程序設計》課是至關重要的。因為學生都是初次接觸C語言,C語言對他們來說是神秘的,“興趣永遠是最好的老師”,有了興趣他們才會積極主動地去學習,所以第一堂課的成功與否直接關系到學生能否對這門課產生興趣,所以我覺得第一堂課應為“趣味C語言導學課”。
(一)程序結果展示,激發興趣
要激發學生的興趣。首先要讓大家知道C語言的強大功能,利用它我們能編寫各種軟件,通過幻燈片向學生展示各種結果畫面,例如從50年代玩的搖桿游戲到如今的電腦游戲。相信這時有些學生已經有些“蠢蠢欲動”了。恨不得立刻學好C語言。
(二)強調C語言的重要性
C語言是學生今后學好后繼課程的基礎,比如數據結構。C++,JAVA等。雖然程序設計語言更新很快,但如果真正掌握精了程序設計思想,具備了真正解決實際問題的能力。語言再更新可程序設計的本質不會變。
(三)傳授C語言的學習方法
C語言是一門實踐性課程,要理論結合實踐,加強學生的動手能力,解決問題的能力,在學習方法上給以學生指導,告訴學生如何自學,如何聽課,如何動手實踐,明確一點:“C語言不是看會的,也不是聽會的,而是親自動手實踐練會的”,強調實踐的重要性。
(四)認識C語言的編譯環境。
在visualstudio2005環境下,舉出幾個簡單的小程序演示給他們看,并逐一講解,引導學生自己去發現程序中存在的缺陷以及改進的方式。熟悉C語言源程序到可執行文件的整個操作流程。讓他們仿照所列舉的幾個程序模仿著編一個小程序。
三、C語言教學方法
(一)抽象思維到形象思維的轉化
讓學習過程變得輕松有趣是激發學生興趣的關鍵所在,C語言本身是一門極其抽象難懂的學科,把抽象的問題形象化,使本來枯燥無味的C語言變得魅力無限,符合學生的認知規律,可以收到良好的效果。
(二)采用問題啟發式授課,激發自主學習
針對C語言概念多,語法繁的現狀,采用問題啟發式教學可以將難理解、難記憶的概念和規則變成一系列時而醒目、時而深奧的問題呈現在課堂教學中,這樣就能把學生的注意力集中起來,學習積極性調動起來,達到師生互動的效果,教師自問自答為主,有問有答,互問互答,改變單調死板、照本宣科的牧師講法。這種啟發式、討論式、交流式的教法,不僅改變原來的灌輸式,而且增強了學生自主學習的能力。
(三)“引申法”“框架法”和“求異法”相結合
所謂“引申法”是指是結合已經解決的問題,因勢利導,引導學生在此基礎上解決相關聯的問題。“引申法”可以培養學生在程序設計方面的發散思維。提高程序設計中的應變能力。問題是活的,但程序是有章可循的。最終使學生明白,語法是有限的,可解決的問題是無限的。只有在分析實際向題的基礎上,以清晰的思路去設計算法,才能舉一反三,以不變應萬變。
“框架法”可培養學生的全局思維和算法的整體設計能力。具體體現在兩方面:一是在學生有了一點編程基礎后要利用偽代碼或流程圖,從算法設計的角度講解編程思路,而不應拘泥于語法細節,不分主次、逐條語句的講解代碼。通過此框架,可使初學者對函數設計的關鍵問題有清晰的認識,利于從統籌全局的角度去考慮問題,體現了程序設計逐步求精的思路。這樣可以層次分明,突出算法設計的關鍵,利于培養學生的編程思路。二是在學習重點章函數時,由于新的算法已很少,主要是學習用函數調用的方法來重新編制以前所熟悉的程序,那么我們可以把著眼點放在函數的設計框架上,體現參數設計、返回值設計等關鍵問題,而無需細講函數體的實現細節。
“求異法”:一個固定的問題。解決的方法可能不唯一,如果能啟發學生多角度、多側面去尋求解決問題的辦法,則可激發學生思考的積極性,提高其學習興致。在C語言中一題多解的情況有很多,有意識地引導新思路,鼓勵新方法,以培養學生在編程中的求異思維,而不是死記硬背,墨守成規。超級秘書網
(四)理論教學與學生實踐相結合,提高程序調試能力
對程序設計課來說,理論學習和上機要兩手抓,兩手都要抓硬。實驗課不能流于形式,讓學生照抄照搬,甚至身在曹營心在漢。必須給學生思考、創新的啟迪,訓練其實踐能力,實驗課要生動活潑,使學生既掌握書中的重點算法,又有充分的思考空間,讓學生充分體會到頓悟和創造的樂趣。在進行每一部分的學習的時候,都應該配有相應的學生上機實踐的機會。這樣學生既鍛煉了動手能力,又鞏固了所學的知識。還應該讓學生養成上機前分析題目,決定算法與數據結構,并編出程序源代碼的好習慣,這樣在上機時,學生就有的放矢,主要精力放在調式程序上需。對于普遍存在的問題,進行集中提示、講解、演示以增加學生的印象。井及時檢查總結學生上機實驗的完成情況。
(五)在整個教學環節中,巧妙地引人軟件工程的基本思想
計算機科學屬工程技術科學,為使學生有良好的編程思維,應注重軟件工程思想的滲透。對軟件生存周期的幾個階段,即問題定義、可行性研究、需求分析、概要設計、詳細設計、編碼、調試、運行與維護,可以通過常規的C程序設計實例來體現,以培養學生編程中的工程思維。這樣并沒有費很大力氣講抽象的概念,卻可培養學生在程序設計中從軟件工程角度去系統分析問題的良好習慣。雖然問題小了些,但“窺一斑而知全局”,經反復強化問題求解中所蘊含的基本思想,將有效地訓練學生程序設計中統籌全局的工程思維能力。
1.1多媒體與板書相結合
在傳統教學中,教師開展教學工作主要使用板書,教師在講臺上講,學生被動地在下面聽,課堂教學互動很少,學生在學習中的主體作用很難體現,同樣教學質量和教學效率也很難取得突破。多媒體的引入,彌補了傳統教學的不足,它可以將視聽兩方面更好地結合,極大地調動了學生的學習興趣,很容易使學生、教師、多媒體三者實現互動。教師可以把C語言課程相關的所有內容放在校園網的網絡教學綜合平臺上,利用網絡教學綜合平臺課程信息、布置作業,并永久保留各項網上學習痕跡和各項統計消息等,從而拓展教學空間。學生隨時可以瀏覽該課程相應的輔導材料,進行網上提問、在線測試、討論式學習等。當然多媒體只是教學工具的一種,在課堂上它并不能完全取代教師的作用。
1.2演示編程、增強互動的教學方法
興趣是最好的老師。老師可以選擇一些簡單有趣的數學問題,在課堂上來進行實際編程演示,并運行結果,使學生學會借助于C語言來解決實際問題,感受到編程的奇妙,從而產生濃厚的學習興趣[1]。隨著課程的后續學習,還可以繼續向學生演示對于一些趣味性的問題如何來編程。這樣不但可以提高學生編程的興趣,還活躍了課堂氣氛。此外,也可以給學生布置些課后作業,在習題課的時間讓學生來演示自己寫好的程序,大家共同對程序進行分析、評價,以此來提高學生的學習興趣。
1.3課堂講述與討論相結合的教學方法
把課堂交給學生,定期組織學生討論。在程序設計中,針對一個程序的多種編寫方法展開討論,評價程序,使學生認識到優、劣代碼的特征,思考怎樣才能編寫高質量的程序。在學習完循環控制后,如對于計算100以內偶數之和,我們要求學生分別用while語句、do-while語句和for語句來實現。這樣的教學過程,有效降低了問題的難度,激發了學生的編程興趣,不斷地引導學生去思考,使學生深入理解。
1.4填空式教學方法
在講述程序時,不將程序的內容和盤托出,而是有意識地在內容上制造一定的空白,讓學生自己去推測可能的結果。這就要求學生首先要讀懂程序,了解程序實現的功能,再添上適當語句,然后運行程序,直到得到正確的運行結果。從而激起學生的探索欲望,提高學生的學習能力,進一步培養學生的創新思維。
二、實驗教學方法的探索
在以往的C語言程序設計教學中往往存在著集中式的講述,老師在課堂上對于語句的語法講得較多,往往是注意事項羅列了一大堆卻忽略了程序的“設計”過程,在講解的過程中舉例死板、單一,過于依賴教材。這樣很容易造成學生學習了不會編程、不會應用,相關知識聯系不上,最后使得學生的學習興趣逐漸淡化。因此,對于非計算機專業的學生,需要加強實踐教學環節的教學,主要體現在以下幾個方面。
2.1任務驅動的教學方法
C語言是一門實踐性非常強的課程,這就要求必須加強上機實踐這一教學環節。在上機練習時,可以采用任務驅動的教學方法來指導學生。上機前先給學生布置一些任務,并且這些任務要能激發學生的學習興趣,學生一旦有了興趣,很多復雜的問題就會迎刃而解。例如學到函數時,我們可以讓學生編程設計一個簡單的計算器程序。在上機操作之前給學生先演示用一個簡單的程序來實現,上機操作時要求學生對這個程序進行修改并用帶參數的函數來實現,最后要求學生對程序再進行修改,用不帶參數的函數來實現。通過這樣的案例,使學生理解并掌握函數的幾個重要的概念、實現方法及編程技巧,并使學生真正理解為什么說C語言的程序是由函數構成的。經過這樣的反復練習,學生不但學到了基礎知識,而且提高了綜合分析和理解能力。這樣的教學任務不但有趣,還能調動學生的積極性,達到事半功倍的效果。
2.2設計錯誤、尋求正確答案的教學方法
在教學的過程中有意識地設計一些錯誤,讓學生在實踐中發現錯誤。例如在講解求100至200間的全部素數并要求每行輸出10個素數這個程序時,可以在程序中設置一些隱蔽的錯誤。這些錯誤可以是算法上的錯誤,也可以是語法上的錯誤,或者是邏輯錯誤等,使得該程序不能正確執行。然后讓學生在上機時進行調試,分析程序,發現錯誤并及時改正。我們設置這些錯誤的目的是使學生主動思考問題,找出問題,然后想辦法解決,從而調動學生的積極性。讓學生在錯誤中學習,在錯誤中成長,不斷地克服困難,提高思考能力。這樣可以培養學生的動手能力和解決問題的能力,而且學生也可以積累調試程序的經驗。
三、結語