王輝+衣麗霞
摘 要: 通過一份問卷調查,發現C語言課程設計這門課程存在諸多問題。借鑒學生提供的建議,分別從課程設計的時間安排、課堂教學及課程設計的命題方面進行了改革,相信這些改革措施一定會取得很好的教學效果。此外還對學生反映比較多的問題,比如“編譯錯誤不好發現、也不好修改”提供了一個很好的解決方案。所有這些教學改革措施的最終落腳點都是要為國家培養出更多、更優秀的建設人才。
關鍵詞: C語言 課程設計 問卷調查
1.引言
C 語言作為一門程序設計語言的入門課程,很好體現了程序設計的靈魂,是進一步學習其他語言或者計算機技術的理論基礎。“課程設計”在中國絕大多數高校已經開設很多年,那么什么是“課程設計”呢?簡單地說,“課程設計”是一門這樣的課程:學生利用所學的書本知識來解決現實生活中的各種實際問題。本文從一份簡單的關于C語言課程設計的問卷調查說起,系統地總結了C語言課程設計存在的優點和不足,并針對這些不足提出了一些可行的改進措施。希望這些措施能夠落到實處,能夠對相關的課程起到借鑒作用,以便為中國高校培養更多更優秀的人才發揮一點作用。
在計算機發展的歷史上,還沒有哪一種程序設計語言能像C語言這樣應用廣泛。C語言不是一種“很高級”的語言,也不“龐大”,并且不專用于某一個特定的應用領域[1]。由前面的敘述可知,學習C語言對大學理科生,尤其對計算機學院的學生而言非常重要。筆者在一次C語言課程設計課上進行了一次問卷調查,問卷調查的內容參見圖1。盡管這個問卷調查非常簡單,可是通過它能發現C語言課程設計存在的問題。筆者對該問卷調查的結果進行了匯總,首先看學生是怎樣評價C語言課程設計優點的,如圖2所示。其實學生們提到的這些優點教師早已知道,本文重點關注的是學生們提到的不足和建議。
那么C語言課程設計在我校開設的過程中存在哪些缺點和不足呢?有關的詳細信息如圖3所示。筆者將學生們提出的缺點與不足分為五個類別,這五個類別分別是:(1)關于時間安排和課時量的問題;(2)關于課堂教學的問題;(3)編譯與調試方面的問題;(4)關于教師輔導方面的問題;(5)關于題目方面的問題。筆者將在第3部分對這些存在的問題給出可行的解決方案。最后看看學生們給出的建議都是什么?詳細信息參見圖4,筆者提出的課程設計改革方案也參考了學生們提出的建議。
2.相關工作
曾輝等人[2]指出了當前C語言程序設計課程教學中存在的問題,分析了問題產生的原因,論述了教學改革的必要性,探討了教學中如何提高學生積極性、教學方法和手段等幾個方面的教學改革問題。張敏霞[3]根據當前大學生的具體情況,針對如何有效地進行程序設計語言課程的教學,提高學生的程序設計能力和計算機素質提出了幾點具體的措施。殷秀云[4]指出傳統的C語言程序設計課程的授課方式和考核方式存在一定的局限性,進一步加大了學生掌握C語言編程方法的難度。因此,如何改變這種現狀,以適應不斷發展的社會的需要,已經是一個亟待解決的問題。馬杰等人[5]針對C語言教學中存在的若干問題,提出了從任務驅動、培養學生興趣、改革教學內容和方法、加強實驗教學環節及改革考核機制五個方面進行教學改革,以提高學生的編程能力,變被動學習為主動學習,培養自學的能力。謝競博[6]從教學目的、教材選擇、教學方法、實踐教學及考核方式等方面,闡述了它們與教學效果的關系,詳細分析了目前教學中存在的一些普遍問題的成因,并從幾個方面分別提出了一些可行的改革建議。陳婷[7]論述了在應用型本科C語言程序設計教學實踐中,根據應用型本科教育培養要求,對課程合理定位,采用“階梯式”、“案例式”課堂教學方法,以“項目驅動式”實踐教學為核心,同時搭建多種自主學習平臺,采用更科學和完善的考核方式,較好地兼顧了學生的不同需求,激發了學生的學習積極性。
劉三滿[8]結合學生的學習心理和認知規律,分析了C語言教學問題的主客觀原因,提出了“先過程,后對象”的教學理念,從教材建設、教學內容安排上闡述了教學內容的具體組織實施過程,從教學思路、教學觀念、教學手段幾方面探討了教學方法的改革。謝中科[9]闡述了C語言程序設計課程的教學改革與實踐,提出了通過激發大學生的學習興趣、創新熱情、教學互動等手段來建立大學生的編程思想,培養大學生的程序設計能力和創新意識。通過課程設計,培養大學生運用C語言解決實際問題的能力和創新能力。劉曉鋒等人[10]從教師、學生和教學內容等方面介紹了在《C語言程序設計》課程建設中,以程序設計和實驗為主,更新教學內容,改革傳統的授課方式的探索,闡述了注重能力培養,提高學生的學習興趣,充分調動學生的主動性、創造性的重要意義。
3.改革措施
前面部分,學生們針對C語言課程設計指出了一些缺點,同時提出了一些好的建議,在本部分將有針對性地提出一些改進的措施:(1)關于課程設計時間安排的改進:將C語言課程設計的開課時間定在學生學完C語言之后的下一個學期初。(2)關于課堂教學方面的改進:任課教師申請一個QQ或者微信群,在學校正式放假前,任課教師通過該群把課程設計的題目發送到每個學生的手中。下學期開學后的前幾周進行課程設計的集體輔導,然后進行答辯驗收。任課教師可以將沒講完的課程內容及對課程設計題目的大體梳理都錄制成視頻,然后將該視頻文件上傳到群文件里供學生們分享。群是實現師生互動的一個最重要的媒介,借助它可以突破時間和空間的限制。任課教師在放假前將題目發送到每個學生手里的一個最大好處是:學生們可以利用假期里的大量時間,充分地思考和準備這些課程設計題目。(3)關于題目方面的改進:允許學生自由命題,但是需要任課教師最終把關,以決定該命題是否適合作為課程設計的題目。此外,任課教師也可以考慮讓企業幫助出題。
前面學生們提出“編譯錯誤不好發現、也不好修改”的問題,筆者認為可以通過下面的方法進行解決:第一,首先告訴學生這是C語言的特點之一:語法限制不太嚴格,程序設計自由度大。一般的高級語言語法檢查比較嚴,能檢查出幾乎所有的語法錯誤,而C語言允許程序編寫者有較大的自由度,因此放寬了語法檢查。“限制”與“靈活”是一對矛盾,限制嚴格,就失去靈活性;而強調靈活,就必然放松限制。第二,教會學生進行單步(Step Through)調試、設置斷點(Breakpoint)等調試程序的技巧,必要時還可以通過額外添加一些輸出語句輔助進行程序調試。第三,任課教師將常見的編譯出錯信息進行匯總,然后上傳到群文件里供學生分享。其實對編譯出錯信息進行總結,不如直接告訴學生記住C語言的一些專業術語,表1中列出了其中的一些,相信這對學生調試程序將會起到很大的幫助作用。另外,還要告訴學生從一開始就要形成良好的編程風格,比如適當地添加注釋(Comment),程序要有縮進(Indent),給變量、函數、數據結構等起名字時要做到見名知意等。
4.結語
從一份C語言課程設計的問卷調查入手,筆者根據學生指出的缺點和提出的建議對該課程進行了嘗試性的改革,分別從課程設計的時間安排方面、課堂教學方面及課程設計的命題方面進行了改革,筆者相信這些改革措施一定會取得很好的教學效果。另外,筆者還對學生反映比較多的問題“編譯錯誤不好發現、也不好修改”提供了很好的解決方案。將按照文中提出的一些觀點編寫《C語言課程設計》一書,該書將嚴格貫徹執行講練結合的原則,對課程設計過程中可能涉及各個知識點通過舉例子的方式進行講解,例子的選擇標準是不僅能說明問題而且要求最簡單。
參考文獻:
[1]Brian W.Kernighan,Dennis M.Ritchie.The C Programming Language.北京:機械工業出版社,2006.8.
[2]曾輝,王倩,韓芳,趙德群.C語言程序設計教學改革初探.福建電腦,2015,31(09):62-63.
[3]張敏霞.程序設計語言課程教學方法改革的探索與實踐.中國高教研究,2004(02):90-90.
[4]殷秀云.C語言程序設計教學改革探討.《商》,2014(38):213-213.
[5]馬杰,楊磊.C語言程序設計改革探索.軟件工程師,2013(12):27-28.
[6]謝競博.C語言程序設計教學中的問題及改革建議.重慶郵電大學學報:社會科學版,2008,20(2):137-140.
[7]陳婷.C語言程序設計實驗教學改革探究.實驗技術與管理,2010,27(10):182-184.
[8]劉三滿.《C語言程序設計》課程教學改革的研究與實踐.計算機教育,2008(16):23-25.
[9]謝中科.《C語言程序設計》的教學改革與實踐.《理工高教研究》,2004,23(3):96-97.
[10]劉曉鋒,吳亞娟.計算機專業《C語言程序設計》教學與教學改革.西華師范大學學報:自然科學版,2003,24(1):34-36.