c語言課程的教學(xué)改革與實踐_第1頁
c語言課程的教學(xué)改革與實踐_第2頁
c語言課程的教學(xué)改革與實踐_第3頁
c語言課程的教學(xué)改革與實踐_第4頁
c語言課程的教學(xué)改革與實踐_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

最新資料推薦c語言課程的教學(xué)改革與實踐C語言課程的教學(xué)改革與實踐 程序設(shè)計課程在計算機(jī)科學(xué)(ComputerScienee,CS)專業(yè)新生的教學(xué)中起著相當(dāng)基礎(chǔ)的作用,CS專業(yè)包括計算機(jī)科學(xué)與技術(shù)、軟件工程和網(wǎng)絡(luò)工程。盡管近年來涌現(xiàn)了很多新的程序設(shè)計語言, 如java,C#,Python和Ruby等,但C和java語言從2019年以來一直是兩種最流行的語言[1]。C語言經(jīng)常名列軟件界知名的 TIOBEProgrammingCommunityIndex(TIOBE程序論壇指數(shù)) 排行榜首位。所以,我們依然選擇了C語言這種非腳本語言作為一年級新生的必修程序設(shè)計課程的語言。隨著信息技術(shù)日新月異的發(fā)展, 社會需求越來越多的CS專業(yè)畢業(yè)的學(xué)生。Internet 已經(jīng)滲透到人們?nèi)粘5墓ぷ鳌?學(xué)習(xí)和生活當(dāng)中, 一年級CS專業(yè)的學(xué)生與上世紀(jì)90年代相比也發(fā)生了很大的變化。在我們學(xué)校,2019年到2003年計算機(jī)科學(xué)與技術(shù)專業(yè)的學(xué)生入學(xué)平均成績在全校幾十個專業(yè)位居第一; 然而,10年之后的2019年,已經(jīng)降至第28名。PC機(jī)和Internet 的普及和十年前相比不可同日而語。這些新的變化迫使任課老師必須采用新的方法以應(yīng)對入門程序語言課程教學(xué)的新需求變化本文其它部分組織如下:在第二節(jié)分析了教學(xué)過程中存在的問題之后,將在第三節(jié)提出一些方法來解決這些新出現(xiàn)的問題,最后第四節(jié)進(jìn)行小結(jié)。一問題分析 在過去幾年的教學(xué)中,我們發(fā)現(xiàn),把這門課程安排在一個學(xué)期內(nèi)完成學(xué)習(xí),很多學(xué)生感覺吃力,在后續(xù)課程學(xué)習(xí)過程中會表現(xiàn)出遇到實際問題編程能力較弱。甚至有少數(shù)一些學(xué)生不知該如何下手寫一個新的程序。本節(jié)我們從教和學(xué)兩個方面挖掘分析其中存在的問題。對計算機(jī)科學(xué)缺乏興趣C語言安排在一年級,很多學(xué)生在入學(xué)前對這個專業(yè)認(rèn)識很膚淺。可以說入學(xué)前,幾乎所有學(xué)生對今后的計算機(jī)職業(yè)生涯規(guī)劃都一無所知。換言之,只有相當(dāng)少數(shù)的學(xué)生對CS專業(yè)有他們自己的愛好興趣,曾經(jīng)學(xué)習(xí)過編程,他們對專業(yè)或程序的興趣可使得以后的學(xué)習(xí)是自我驅(qū)動式的。然而,總有一些學(xué)生在C語言課程的初始階段是毫無興趣可言。據(jù)我們經(jīng)驗來看,很大程度上,課程結(jié)束時考試成績差進(jìn)一步導(dǎo)致他們對后續(xù)專業(yè)課程學(xué)習(xí)缺乏信心。興趣才是最好的老師。任課老師應(yīng)該從課程一開始就激發(fā)學(xué)生的興趣, 才能在后續(xù)教學(xué)過程中使學(xué)生的潛能得以發(fā)揮缺乏編程的調(diào)試能力 編程新手經(jīng)??嘤谌绾蜗駭D牙膏似的寫程序開始的代碼段, 而且,在好不容易寫出程序后, 不知道如何找出隱藏在其中的錯誤和漏洞, 不知道如何分析程序找出錯誤。特別是對于成績較差的學(xué)生,即使寫很簡單的程序,他們也看不出程序到底是錯在哪里或者為什么得出不正確的結(jié)果, 不知從哪里開始排查和定位錯誤。這樣的情況在我們每一屆每個班的教學(xué)中都會遇到。實際上,即使是熟練的程序員,調(diào)試程序的能力都是必不可少的,特別是在開發(fā)復(fù)雜軟件程序的時候。優(yōu)秀生和差生之間的差距問題 在我們計算機(jī)學(xué)院,招生人數(shù)從2019年的359人翻一番到2019年的790人。學(xué)生來源于從大城市到農(nóng)村等不同地區(qū)。在第一次課時,我們都會做過簡單調(diào)查,發(fā)現(xiàn)只有少數(shù)一些學(xué)生在高中學(xué)習(xí)過程序設(shè)計, 一般學(xué)習(xí)BASIC或PASCAL語言,有的學(xué)生曾經(jīng)參加過國家奧林匹克信息學(xué)競賽(NOI)等相關(guān)課外活動;大多數(shù)學(xué)生并沒有學(xué)習(xí)過程序設(shè)計。在一年級第二學(xué)期,將會有優(yōu)秀的學(xué)生能在ACM廣東省賽區(qū)比賽中獲得獎勵。再看成績較差的學(xué)生,在第一次上機(jī)課時,他們連鍵盤的布局都不知道,不知如何開機(jī)關(guān)機(jī)和基本的操作, 因為以前從未使用過PC機(jī)這樣,優(yōu)秀生和較差生的差距比十年前擴(kuò)大了。如果我們教學(xué)過程較多顧及后者, 前者將不能充分利用好課堂時間發(fā)揮他們的潛力。這就會任課老師帶來新的挑戰(zhàn)。二改革教學(xué)方法1在課堂教學(xué)中提高學(xué)生對計算機(jī)科學(xué)的興趣 通過和本課程相關(guān)的故事,讓學(xué)生了解計算機(jī)科學(xué)技術(shù)發(fā)展史的同時,激發(fā)他們對計算機(jī)技術(shù)的熱愛和對科學(xué)執(zhí)著追求及探索精神,逐漸培養(yǎng)興趣。例如,在第一課時,在講C語言歷史時將介紹C語言之父丹尼斯?里奇(DennisRitchie)的故事,他雖然不是像比爾?蓋茨那樣為大眾所知,但他和肯?湯普遜(KenThompson對C語言和UNIX操作系統(tǒng)做出了杰出貢獻(xiàn)。在C語言和這兩位著名計算機(jī)科學(xué)家互相交織的歷史故事當(dāng)中,學(xué)生將體會到什么是科學(xué)精神, 什么是對計算機(jī)科學(xué)的貢獻(xiàn)和創(chuàng)新。當(dāng)然,在課程的后續(xù)教學(xué)過程中仍然會花幾分鐘加入一些相關(guān)故事活躍課堂氣氛。學(xué)生樂于在課堂中聽到這些一般不為人知的故事, 潛移默化地增加了興趣。另外一個途徑是介紹和C語言關(guān)聯(lián)密切的應(yīng)用實例。雖然C語言被用于開發(fā)操作系統(tǒng)和嵌入式系統(tǒng), 但是,這些應(yīng)用不易于新手所理解。所以,在講到相關(guān)知識時,我們選擇一些簡短的應(yīng)用程序演示其運(yùn)行甚至瀏覽一下源代碼,有些有趣的應(yīng)用就作為實驗課的任務(wù),讓學(xué)生完成編程。曾做過2個班級對同一個實驗內(nèi)容的比較,一個班級要求編程完成的是與實際應(yīng)用需求相關(guān)的任務(wù),另外一個班級要求完成的是等價的數(shù)學(xué)問題,實踐表明:前者能激發(fā)學(xué)生解決問題的求知欲望, 提高學(xué)習(xí)興趣,并且更多的學(xué)生進(jìn)行熱烈的討論和進(jìn)一步思考, 效果較好。運(yùn)用可視化工具促進(jìn)學(xué)生對程序的理解 可視化工具是促進(jìn)學(xué)生直觀理解程序運(yùn)行過程一個重要的有效的方法。我們采用了吳偉民教授開發(fā)的名為Anyview的一套軟件[2],從2009級的部分班級開始試用,2010級所有學(xué)生使用。從2010年開始正式建設(shè)題庫,到目前為止已經(jīng)達(dá)300題(共9章教學(xué)內(nèi)容的習(xí)題)。它由web服務(wù)器端和客戶端兩部分組成。服務(wù)器端存儲了實驗任務(wù)的題目數(shù)據(jù)庫和學(xué)生寫的源程序文件,包括正確完成的程序以及未完成或有錯誤的源程序。客戶端安裝能夠通過校園網(wǎng)或 Internet連接服務(wù)器的PC機(jī)上,學(xué)生用來編寫程序。使用Anyview與原來教學(xué)相比有較好效果。Anyview打破了課堂實驗教學(xué)的時間限制, 學(xué)生在宿舍或者其它地方能連接通過Internet的PC機(jī)上用它編程Anyview有助于初學(xué)者理解、調(diào)試程序??梢詾椴煌慕虒W(xué)層次的學(xué)生設(shè)立不同作業(yè)表, 使學(xué)生編寫程序的題目不同。例如,曾經(jīng)根據(jù)重修班級學(xué)生的學(xué)習(xí)情況, 專門設(shè)置1個題庫,讓學(xué)生重點(diǎn)練習(xí)薄弱環(huán)節(jié)。布置的上機(jī)題目分必做和選做, 因材施教,使不同層次學(xué)生都能得到提高。課堂教學(xué)用Anyview演示程序的運(yùn)行。程序能在其中編輯、運(yùn)行和調(diào)試??梢允钩绦蛞徊揭徊降倪\(yùn)行過程或設(shè)置斷點(diǎn), 學(xué)生就能觀察運(yùn)行過程中所有變量值的變化情況。對一年級的新手來說, 它操作很簡單,結(jié)果直觀可見, 有助于學(xué)生理解for語句、while語句等控制流程語句的執(zhí)行過程。在實驗課上,我們鼓勵學(xué)生使用多種IDE開發(fā)工具(IntegratedDevelopmentEnvironment)配合Anyview—起學(xué)習(xí)。從老師的角度來說, 我們能夠通過教師端程序詳細(xì)地實時地了解每個學(xué)生編寫程序的進(jìn)度。有助于老師督促較差學(xué)生, 可以通過教師端軟件看到哪些學(xué)生完成情況差,實時掌握學(xué)生學(xué)習(xí)情況; 反饋到課堂教學(xué)有的放矢。并且可以知道優(yōu)秀學(xué)生學(xué)習(xí)水平如何, 有哪些學(xué)生的自學(xué)能力較強(qiáng),有的學(xué)生可以在開課2個月內(nèi)完成整個課程的題目,在2009最新資料推薦級之前通過作業(yè)或提問往往不能發(fā)現(xiàn)所有優(yōu)秀生。隨著題庫建設(shè)完善,我們將進(jìn)一步用Anyview進(jìn)行實驗課限時測驗,讓不同班級的任課老師自主設(shè)置每個班級的題庫作業(yè)表。從一開始就強(qiáng)調(diào)學(xué)習(xí)調(diào)試 調(diào)試是用于發(fā)現(xiàn)或減少程序中錯誤缺陷的分析過程。在課程教學(xué)中使用了3種工具。下表對它們的優(yōu)缺點(diǎn)做了比較小結(jié)。新手容易掌握Anyview的使用,而且他們可能對操作Windows上的軟件工具不熟悉,所以在課程開始的前幾周, 我們教學(xué)生使用Anyview。新手往往很難學(xué)會TC的環(huán)境配置,我們在教學(xué)實踐中發(fā)現(xiàn)較差的學(xué)生在課程接近結(jié)束時都對配置感到迷惑。VC還是受到編程相對熟練的學(xué)生的歡迎,他們可以用VC寫一些自己感興趣的稍大的程序, 甚至完成包括窗口圖形界面程序的編寫。在第1次實驗課上,我們就告訴學(xué)生如何用工具查看變量的值。在后面的教學(xué)中,要求學(xué)生掌握如下調(diào)試技術(shù), 告訴他們什么時候選擇其中之一來進(jìn)行調(diào)試[3]。經(jīng)驗表明,學(xué)生越早學(xué)習(xí)使用調(diào)試技術(shù),將能更好地提高調(diào)試程序的能力。單步執(zhí)行每步執(zhí)行一條語句,選擇一些變量加入觀察窗口。跳越函數(shù)執(zhí)行。這將在講函數(shù)這一章時講。學(xué)生可觀察一些變量的值在執(zhí)行完函數(shù)后的變化。在指定語句處設(shè)置斷點(diǎn)。在程序中的某些語句后加入打印語句, 以便在程序運(yùn)行后觀察某些變量在運(yùn)行過程的中間結(jié)果。方法3和方法4將在講完循環(huán)控制語句后學(xué)習(xí)。改為2個學(xué)期學(xué)習(xí)該課,改革課程考核方式 為了切實提高大多數(shù)學(xué)生的基本編程能力,充分發(fā)揮優(yōu)秀生的潛力[4,5],我們進(jìn)行了兩項改革。在2009級之前,本課程在一年級的第1或第2學(xué)期開課,在一個學(xué)期內(nèi)完成教學(xué),理論課堂教學(xué)與實驗課教學(xué)分別占56和16課時;學(xué)生普遍感覺時間很緊,沒有足夠的時間在機(jī)器上編寫代碼實踐。而在2010級開始,我們改革教學(xué)安排,分成2個學(xué)期完成該課教學(xué),第1學(xué)期理論與實驗分別占32和24課時,第2學(xué)期分別占24和16課時。這樣的調(diào)整安排使學(xué)生有更多的實驗課時間花在編寫代碼實踐上面,以用促學(xué)。另外,從2019級開始我們在第2個學(xué)期根據(jù)學(xué)生在第1最新資料推薦個學(xué)期的學(xué) 習(xí)綜合評價進(jìn)一步把學(xué)生分成2個教學(xué)班組, 大概25%^優(yōu)秀的學(xué)生安排在A組班級,其余安排在B組班級。在第2學(xué)期A組學(xué)生要求完成1個較大的程序設(shè)計任務(wù),或稱為課程設(shè)計任務(wù), 包括編寫代碼和編寫相應(yīng)的文檔。對B組學(xué)生重點(diǎn)強(qiáng)調(diào)基本編程方法的教學(xué)。當(dāng)然在Anyview系統(tǒng)中我們布置給他們的編程任務(wù)也有所區(qū)別。實踐表明,由于這種因材施教,A組學(xué)生的能力提高更快能夠挑戰(zhàn)難度更大的任務(wù),而又使相對較差的B組學(xué)生獲得了更多基本的編程訓(xùn)練并為以后學(xué)習(xí)建立了更強(qiáng)的自信心。老師能用Anyview查詢查看到每個學(xué)生寫的每個程序并評分。當(dāng)然給程序評分并不是一件容易完成的工作[6],需要有更好的算法。下圖是2019年秋季的一個班級共46人的Anyview綜合評定成績排名與期末考試筆試成績排名的差值,其中x軸表示學(xué)生序號1?46,y軸表示這2個排名的差值。數(shù)據(jù)為(Anyview排名,期末考試排名):(46,46),(13,6),(6,4),(23,22),(19,23),(10,27),(13,2),(11,28),(31,32),(29,40), (41,20),(4,7),(36,37), (33,39), (32,18), (1,9),(2,11),(45,31),(8,26),(23,33),(35,38),(9,1),(13,24),(5,12),(18,35),(42,25),(20,15), (28,43), (22,16),(43,36),(20,30),(23,10),(17,3),(12,34),(27,41),(34,19),(44,42),(乙14),(29,13),(3,5),(16,8),(38,17),(26,44), (39,45), (37,21),(40,29)這說明,很多學(xué)生平時實際編程能力與筆試表現(xiàn)有出入,所以最后課程的成績評定中期末考試占一定的比例,還必須考慮平時實際編程能力表現(xiàn)??傊?,C語言是一門在本科一年級開設(shè)的基礎(chǔ)課程。我們進(jìn)行的教學(xué) 改革實踐表明培養(yǎng)學(xué)生對本專業(yè)課程的興趣是很重要的,本文分析了如何解決學(xué)生調(diào)試能力差的問題,介紹了用一個可視化工具作為調(diào)試器和新生有效學(xué)習(xí)助手的經(jīng)驗。如何對不同學(xué)生進(jìn)行個性化教學(xué)是一個挑戰(zhàn)性任務(wù), 我們改革了教學(xué)學(xué)時安排和進(jìn)行了分組教學(xué),使得優(yōu)秀生和較差生都能得到盡可能大的進(jìn)步。參考文獻(xiàn) [1]吳偉民.試論軟件基礎(chǔ)課程程序設(shè)計環(huán)境的可視化[J].廣東工業(yè)大學(xué)學(xué)報:社會科學(xué)版,2007(B06):156-157. [2]Pengfei Yu,Lijun Yang,ProgrammingSkillsTraininginProgrammingLanguageCourses[C].2010最新資料推薦Technology,V3:14-16. [3]AndreasZendler ,ChristianSpannagel ,andDieterKlaudt.MarryingContentandProcessinComputerScieneeEducation[J].IEEETransactions

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論