999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

C語言課程的教學改革與實踐

2013-04-29 17:57:48朱清華
教書育人·高教論壇 2013年6期
關鍵詞:程序課程教學

朱清華

程序設計課程在計算機科學(Computer Science, CS)專業新生的教學中起著相當基礎的作用,CS專業包括計算機科學與技術、軟件工程和網絡工程。盡管近年來涌現了很多新的程序設計語言,如java, C#, Python和Ruby等,但C和java語言從2002年以來一直是兩種最流行的語言[1]。C語言經常名列軟件界知名的“TIOBE Programming Community Index”(TIOBE程序論壇指數)排行榜首位。所以,我們依然選擇了C語言這種非腳本語言作為一年級新生的必修程序設計課程的語言。

隨著信息技術日新月異的發展,社會需求越來越多的CS專業畢業的學生。Internet已經滲透到人們日常的工作、學習和生活當中,一年級CS專業的學生與上世紀90年代相比也發生了很大的變化。在我們學校,2001年到2003年計算機科學與技術專業的學生入學平均成績在全校幾十個專業位居第一;然而,10年之后的2011年,已經降至第28名。PC機和Internet的普及和十年前相比不可同日而語。這些新的變化迫使任課老師必須采用新的方法以應對入門程序語言課程教學的新需求變化。

本文其它部分組織如下:在第二節分析了教學過程中存在的問題之后,將在第三節提出一些方法來解決這些新出現的問題,最后第四節進行小結。

一問題分析

在過去幾年的教學中,我們發現,把這門課程安排在一個學期內完成學習,很多學生感覺吃力,在后續課程學習過程中會表現出遇到實際問題編程能力較弱。甚至有少數一些學生不知該如何下手寫一個新的程序。本節我們從教和學兩個方面挖掘分析其中存在的問題。

1對計算機科學缺乏興趣

C語言安排在一年級,很多學生在入學前對這個專業認識很膚淺。可以說入學前,幾乎所有學生對今后的計算機職業生涯規劃都一無所知。換言之,只有相當少數的學生對CS專業有他們自己的愛好興趣,曾經學習過編程,他們對專業或程序的興趣可使得以后的學習是自我驅動式的。然而,總有一些學生在C語言課程的初始階段是毫無興趣可言。據我們經驗來看,很大程度上,課程結束時考試成績差進一步導致他們對后續專業課程學習缺乏信心。興趣才是最好的老師。任課老師應該從課程一開始就激發學生的興趣,才能在后續教學過程中使學生的潛能得以發揮。

2缺乏編程的調試能力

編程新手經常苦于如何像擠牙膏似的寫程序開始的代碼段,而且,在好不容易寫出程序后,不知道如何找出隱藏在其中的錯誤和漏洞,不知道如何分析程序找出錯誤。特別是對于成績較差的學生,即使寫很簡單的程序,他們也看不出程序到底是錯在哪里或者為什么得出不正確的結果,不知從哪里開始排查和定位錯誤。這樣的情況在我們每一屆每個班的教學中都會遇到。實際上,即使是熟練的程序員,調試程序的能力都是必不可少的,特別是在開發復雜軟件程序的時候。

3優秀生和差生之間的差距問題

在我們計算機學院,招生人數從2001年的359人翻一番到2011年的790人。學生來源于從大城市到農村等不同地區。在第一次課時,我們都會做過簡單調查,發現只有少數一些學生在高中學習過程序設計,一般學習BASIC或PASCAL語言,有的學生曾經參加過國家奧林匹克信息學競賽(NOI)等相關課外活動;大多數學生并沒有學習過程序設計。在一年級第二學期,將會有優秀的學生能在ACM廣東省賽區比賽中獲得獎勵。再看成績較差的學生,在第一次上機課時,他們連鍵盤的布局都不知道,不知如何開機關機和基本的操作,因為以前從未使用過PC機。這樣,優秀生和較差生的差距比十年前擴大了。如果我們教學過程較多顧及后者,前者將不能充分利用好課堂時間發揮他們的潛力。這就會任課老師帶來新的挑戰。

二改革教學方法

1在課堂教學中提高學生對計算機科學的興趣

通過和本課程相關的故事,讓學生了解計算機科學技術發展史的同時,激發他們對計算機技術的熱愛和對科學執著追求及探索精神,逐漸培養興趣。例如,在第一課時,在講C語言歷史時將介紹C語言之父丹尼斯·里奇(Dennis Ritchie)的故事,他雖然不是像比爾·蓋茨那樣為大眾所知,但他和肯·湯普遜(Ken Thompson)對C語言和UNIX操作系統做出了杰出貢獻。在C語言和這兩位著名計算機科學家互相交織的歷史故事當中,學生將體會到什么是科學精神,什么是對計算機科學的貢獻和創新。當然,在課程的后續教學過程中仍然會花幾分鐘加入一些相關故事活躍課堂氣氛。學生樂于在課堂中聽到這些一般不為人知的故事,潛移默化地增加了興趣。

另外一個途徑是介紹和C語言關聯密切的應用實例。雖然C語言被用于開發操作系統和嵌入式系統,但是,這些應用不易于新手所理解。所以,在講到相關知識時,我們選擇一些簡短的應用程序演示其運行甚至瀏覽一下源代碼,有些有趣的應用就作為實驗課的任務,讓學生完成編程。曾做過2個班級對同一個實驗內容的比較,一個班級要求編程完成的是與實際應用需求相關的任務,另外一個班級要求完成的是等價的數學問題,實踐表明:前者能激發學生解決問題的求知欲望,提高學習興趣,并且更多的學生進行熱烈的討論和進一步思考,效果較好。

2運用可視化工具促進學生對程序的理解

可視化工具是促進學生直觀理解程序運行過程一個重要的有效的方法。我們采用了吳偉民教授開發的名為Anyview的一套軟件[2],從2009級的部分班級開始試用,2010級所有學生使用。從2010年開始正式建設題庫,到目前為止已經達300題(共9章教學內容的習題)。它由web服務器端和客戶端兩部分組成。服務器端存儲了實驗任務的題目數據庫和學生寫的源程序文件,包括正確完成的程序以及未完成或有錯誤的源程序。客戶端安裝能夠通過校園網或Internet連接服務器的 PC機上,學生用來編寫程序。

使用Anyview與原來教學相比有較好效果。Anyview打破了課堂實驗教學的時間限制,學生在宿舍或者其它地方能連接通過Internet的PC機上用它編程。Anyview有助于初學者理解、調試程序。可以為不同的教學層次的學生設立不同作業表,使學生編寫程序的題目不同。例如,曾經根據重修班級學生的學習情況,專門設置1個題庫,讓學生重點練習薄弱環節。布置的上機題目分必做和選做,因材施教,使不同層次學生都能得到提高。

課堂教學用Anyview演示程序的運行。程序能在其中編輯、運行和調試。可以使程序一步一步的運行過程或設置斷點,學生就能觀察運行過程中所有變量值的變化情況。對一年級的新手來說,它操作很簡單,結果直觀可見,有助于學生理解for語句、while語句等控制流程語句的執行過程。在實驗課上,我們鼓勵學生使用多種IDE開發工具(Integrated Development Environment)配合Anyview一起學習。

從老師的角度來說,我們能夠通過教師端程序詳細地實時地了解每個學生編寫程序的進度。有助于老師督促較差學生,可以通過教師端軟件看到哪些學生完成情況差,實時掌握學生學習情況;反饋到課堂教學有的放矢。并且可以知道優秀學生學習水平如何,有哪些學生的自學能力較強,有的學生可以在開課2個月內完成整個課程的題目,在2009級之前通過作業或提問往往不能發現所有優秀生。隨著題庫建設完善,我們將進一步用Anyview進行實驗課限時測驗,讓不同班級的任課老師自主設置每個班級的題庫作業表。

3從一開始就強調學習調試

調試是用于發現或減少程序中錯誤缺陷的分析過程。在課程教學中使用了3種工具。下表對它們的優缺點做了比較小結。

新手容易掌握Anyview的使用,而且他們可能對操作Windows上的軟件工具不熟悉,所以在課程開始的前幾周,我們教學生使用Anyview。新手往往很難學會TC的環境配置,我們在教學實踐中發現較差的學生在課程接近結束時都對配置感到迷惑。VC還是受到編程相對熟練的學生的歡迎,他們可以用VC寫一些自己感興趣的稍大的程序,甚至完成包括窗口圖形界面程序的編寫。

在第1次實驗課上,我們就告訴學生如何用工具查看變量的值。在后面的教學中,要求學生掌握如下調試技術,告訴他們什么時候選擇其中之一來進行調試[3]。經驗表明,學生越早學習使用調試技術,將能更好地提高調試程序的能力。

(1)單步執行。每步執行一條語句,選擇一些變量加入觀察窗口。(2)跳越函數執行。這將在講函數這一章時講。學生可觀察一些變量的值在執行完函數后的變化。(3)在指定語句處設置斷點。(4)在程序中的某些語句后加入打印語句,以便在程序運行后觀察某些變量在運行過程的中間結果。方法3和方法4將在講完循環控制語句后學習。

4改為2個學期學習該課,改革課程考核方式

為了切實提高大多數學生的基本編程能力,充分發揮優秀生的潛力[4,5],我們進行了兩項改革。在2009級之前,本課程在一年級的第1或第2學期開課,在一個學期內完成教學,理論課堂教學與實驗課教學分別占56和16課時;學生普遍感覺時間很緊,沒有足夠的時間在機器上編寫代碼實踐。而在2010級開始,我們改革教學安排,分成2個學期完成該課教學,第1學期理論與實驗分別占32和24課時,第2學期分別占24和16課時。這樣的調整安排使學生有更多的實驗課時間花在編寫代碼實踐上面,以用促學。

另外,從2011級開始我們在第2個學期根據學生在第1個學期的學習綜合評價進一步把學生分成2個教學班組,大概25%較優秀的學生安排在A組班級,其余安排在B組班級。在第2學期A組學生要求完成1個較大的程序設計任務,或稱為課程設計任務,包括編寫代碼和編寫相應的文檔。對B組學生重點強調基本編程方法的教學。當然在Anyview系統中我們布置給他們的編程任務也有所區別。實踐表明,由于這種因材施教,A組學生的能力提高更快能夠挑戰難度更大的任務,而又使相對較差的B組學生獲得了更多基本的編程訓練并為以后學習建立了更強的自信心。

老師能用Anyview查詢查看到每個學生寫的每個程序并評分。當然給程序評分并不是一件容易完成的工作[6],需要有更好的算法。下圖是2012年秋季的一個班級共46人的Anyview綜合評定成績排名與期末考試筆試成績排名的差值,其中x軸表示學生序號1~46,y軸表示這2個排名的差值。數據為(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),(7,14),(29,13),(3,5),(16,8),(38,17),(26,44),(39,45),(37,21),(40,29)。這說明,很多學生平時實際編程能力與筆試表現有出入,所以最后課程的成績評定中期末考試占一定的比例,還必須考慮平時實際編程能力表現。

總之,C語言是一門在本科一年級開設的基礎課程。我們進行的教學改革實踐表明培養學生對本專業課程的興趣是很重要的,本文分析了如何解決學生調試能力差的問題,介紹了用一個可視化工具作為調試器和新生有效學習助手的經驗。如何對不同學生進行個性化教學是一個挑戰性任務,我們改革了教學學時安排和進行了分組教學,使得優秀生和較差生都能得到盡可能大的進步。

參考文獻

[1]吳偉民.試論軟件基礎課程程序設計環境的可視化[J].廣東工業大學學報:社會科學版, 2007(B06): 156-157.

[2]Pengfei Yu, Lijun Yang, Programming Skills Training in Programming Language Courses[C].2010 International Conference on Educational and Information Technology, V3: 14-16.

[3]Andreas Zendler, Christian Spannagel, and Dieter Klaudt. Marrying Content and Process in Computer Science Education[J].IEEE Transactions on Education, 2011(8): 387-397.

[4]Raymond Lister and John Leaney, First Year Program ming: Let All the Flowers Bloom[C]. 2003 Proceedings of the fifth Australasian conference on computing education, Volume 20: 221-230.

[5]JoséLuis Fernández Alemán, Automated Assessment in a Programming Tools Course [J]. IEEE Transactions on Education, 2011,54(4):576-581.

[6]KonstantinosAntonis,ThanasisDaradoumis,SpyrosPapadakis, and Christos Simos,Evaluation of the Effectiveness of a Web-Based Learning Design for Adult Computer Science Courses[J].IEEETransactionsonEducation,2011(8):374-380.

猜你喜歡
程序課程教學
數字圖像處理課程混合式教學改革與探索
微課讓高中數學教學更高效
甘肅教育(2020年14期)2020-09-11 07:57:50
軟件設計與開發實踐課程探索與實踐
計算機教育(2020年5期)2020-07-24 08:53:38
為什么要學習HAA課程?
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
“程序猿”的生活什么樣
“自我診斷表”在高中數學教學中的應用
東方教育(2017年19期)2017-12-05 15:14:48
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
對外漢語教學中“想”和“要”的比較
唐山文學(2016年2期)2017-01-15 14:03:59
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
主站蜘蛛池模板: 国产午夜一级毛片| 国产福利在线观看精品| 久久婷婷人人澡人人爱91| 国产美女一级毛片| 台湾AV国片精品女同性| 在线观看热码亚洲av每日更新| 免费a在线观看播放| 1级黄色毛片| 亚洲国产成人综合精品2020| 亚洲日本中文综合在线| 亚洲国产清纯| 国产精品久久久精品三级| 特级aaaaaaaaa毛片免费视频 | 色爽网免费视频| 亚洲日韩图片专区第1页| 欧美一级在线看| 日本国产在线| 国产伦精品一区二区三区视频优播| AV在线天堂进入| 国产欧美一区二区三区视频在线观看| 中国丰满人妻无码束缚啪啪| 亚洲va视频| 日韩一级毛一欧美一国产| 狠狠综合久久| 日韩精品高清自在线| 天堂亚洲网| 亚洲swag精品自拍一区| 欧美日韩资源| 九九线精品视频在线观看| 性喷潮久久久久久久久| 亚洲人成网线在线播放va| 一区二区三区四区日韩| 久久中文字幕不卡一二区| 国产剧情一区二区| 91黄视频在线观看| 国产美女91呻吟求| 九九精品在线观看| 一级香蕉视频在线观看| 在线欧美一区| 亚洲黄色片免费看| 无码综合天天久久综合网| 国产91麻豆视频| 国产99在线观看| 伊人久久婷婷五月综合97色| 欧美区日韩区| 手机精品视频在线观看免费| 99久久成人国产精品免费| 粉嫩国产白浆在线观看| 国产精品白浆无码流出在线看| 好紧太爽了视频免费无码| 92精品国产自产在线观看| 国产嫩草在线观看| 中文字幕啪啪| 亚洲三级成人| 欧美国产菊爆免费观看 | 日韩AV无码一区| 热思思久久免费视频| 激情乱人伦| 欧美日韩高清| 国产一级二级在线观看| 青草视频久久| 国产欧美精品午夜在线播放| 强乱中文字幕在线播放不卡| 亚洲欧美另类日本| 国产综合色在线视频播放线视| 久久综合AV免费观看| 亚洲视频黄| 国产成人高清精品免费5388| 日韩A∨精品日韩精品无码| 成人在线天堂| 69av在线| 米奇精品一区二区三区| 亚洲日本一本dvd高清| 亚洲人成色77777在线观看| 日本高清成本人视频一区| 免费毛片全部不收费的| 国产亚洲精品在天天在线麻豆 | 国产毛片不卡| 亚洲最大看欧美片网站地址| 国产亚洲精品91| 高清色本在线www| 97综合久久|