張淑榮 韋立梅
(廣東白云學院,廣東 廣州 510450)
《C語言程序設計》課程目前是各大高校計算機專業開設的一門基礎課程,是學習其他計算機語言的基礎,同時也是開發計算機系統軟件非常有力的工具。該門課程的學習主要包含C語言中的不同數據類型、運算符及表達式等的運用、程序的流程控制、函數、數組、指針、結構體和共用體、文件等的程序設計知識。應用型本科大學本著培養學生成為應用型人才為目的,提高教學質量為根本,讓學生在學習C語言過程中領會程序設計的要旨,領會計算思維。美國卡內基·梅隆大學計算機科學系前系主任周以真教授在2006年發表了一篇著名文章——《計算思維(Computational Thinking)》,文中談到“計算機科學的教授應當為大學新生開一門稱為‘怎么像計算機科學家一樣思維’的課,面向非專業的,而不僅僅是計算機科學專業的學生”,計算機思維代表著一種普遍的認識和一類普適的技能,每個人都應熱心于它的學習和運用,通過學習編程,了解什么是抽象、遞歸、復用等計算思維,能在各行各業中更有效地利用計算機工具解決復雜問題。而當下,各個行業開發者都喜歡使用什么編程語言呢?圖1為目前市場上最受歡迎的計算機語言趨勢圖。
從圖1可以看出C語言在目前市場上仍占有著一定的地位,仍受眾多開發者的青睞,同時,在不同的領域C語言的地位遠不止當下最流行的計算機語言,所以對于學生來說學好計算機C語言很重要,而老師如何能讓學生們順利地學好該門課程,達到預期的效果,就需要老師們對該門課程的教學模式作進一步的改進,本文將從教學方法和課程評價兩大方面提出幾點建議和設想。

圖1 最受歡迎的計算機語言趨勢圖
由于《C語言程序設計》課程是針對新入學學生開設的課程,學生們對計算機語言的認識、編程思想都處在一個懵懂的階段,需要老師去耐心地引導和啟發。老師應該根據具體的教學目標、教學內容,從學生所掌握的知識基礎、接受能力出發,通過師生間的互動、身邊學生所熟悉的事物啟發學生,調動學生的主動性和發揮學生的創造思維能力,讓整個課堂處在一個較輕松活躍的氛圍。
1966年,C.Bohm和C.Jacopini首先證明了只用順序、選擇和循環三種基本程序流程控制結構就能實現任何“單入口、單出口”的程序,這給結構化程序設計奠定了理論基礎,所以對于程序的選擇和循環流程控制結構在進行授課時,就需要老師引導理解學習。
如:選擇結構的任何多條分支,在執行上,“跟我們面前的分岔路一樣,若想要到達目的地,你只能選擇其中的一條路去走,因為你分身乏術”,選擇結構如此,不管有多少條分支,你只能選擇條件判斷為真的那條分支執行。
再如:循環結構的設計,“如同它的名字一樣,循環著,好似我們在一個圈里循環著一圈一圈地跑步,但如果一直循環著跑步,那結局只有一個就是‘死亡’,同樣的道理,循環結構要避免無休止地循環,也就是避免‘死循環’,否則將永遠得不到輸出的結果!那么,如何能避免‘死循環’呢?這就需要在結構中放置一個調節器,這個調節器的作用就是能促使循環判斷趨向‘假’!這樣循環就可以結束,結果就可以輸出!”循環實例講解時可以通過列舉學生周邊的任何事物與教學案例相結合的方法,調動學生的學習興趣,充分地發揮他們的想象力,假設使用FOR循環方法求n!,這個求解過程如同部分學生課下愛玩的游戲“大富翁”,整個循環過程如同“大富翁”游戲的一次歷程,游戲中擲一次篩子,相當于我們循環判斷為真一次,游戲中擲完篩子就可以“買地建房、生病住院、出事拘留等”,而我們循環判斷為真一次后設計的只是一件事,那就是只要進行一次用當前的“累乘求積變量P”與“累乘次數計數器i”的乘積運算就好。通過這樣的舉例,學生對程序設計不會有那么多的畏懼,也能從身邊的事物悟出一些如何能更有效地學習該門課程的道理。
在該門課程進行到一半的時候對學生可以采用項目化教學方法,通過2個項目的教學安排,老師不僅要把握知識的易理解性,而且要把握思維規律,漸進式地演繹并分析實際問題,找出其中內在的規律,講解時可以用形象類比等方法進行啟發性教學。在過程中培養學生對編程的愛好,使用一些可以讓學生能產生興趣的小游戲如“貪吃蛇”、“潛艇大戰游戲”或實用的“萬年歷”、“計算器”、“手機通訊系統”等作為教學案例,引導學生如何分析問題、如何模塊化解決問題,充分調動學生的積極性,激發學生的編程靈感,逐漸讓學生在學習過程中產生興趣,通過所學的知識實際應用到身邊的事物。課后讓學生獨立設計一個項目作為該課程考核的一個模塊,如圖2所示。
通過以上7個方面,讓學生適應以“項目化”完成設計題目,鍛煉學生課后獨立分析問題、解決問題的能力,領會計算思維解決問題。

圖2 項目設計文檔綱要
根據《C語言程序設計》課程的特點,將該門課程采取過程式課程評價的方式對學生進行考核。注重學生學習的過程,培養學生養成良好的學習態度,在對課程評價時,將學生的學習過程中的每一個環節進行打分評價,總體分為四個方面,如圖3所示:

圖3 成績評定各模塊比例圖
說明:
(1)出勤:對學生考勤和學生的課堂表現進行考核,嚴格要求學生出勤上課,不得無故缺課,無論曠課或請假,均采取一定的扣分懲罰,只要來上課了,就向成功邁進了一步,所以這一塊必須要嚴格把關。
(2)上機操作:該模塊評分標準按學生課上操作的態度打分,如:學生是否很認真地練習、練習過程中是否發現了問題并及時尋求方法解決,以及是否已達到了熟練的操作程度等。老師可以以課堂收作業的方式激勵學生課堂練習,對于上機操作沒上交作業或曠課的學生,該次課作業分數為0分;對于請假的學生,可給機會補交上機操作作業,并按上機操作評價標準評分,若不按時補交,該次課作業仍舊為0分。
(3)項目設計報告:該模塊為學生課后要實現的一個考核項目,需要學生獨立思考,自擬設計題目,并明確給出項目設計的目的及要求,設計的思想要正確、清晰、完整,程序設計代碼完整無誤,并能運行結果正確,實現的過程中可以使用多種方法排錯,有自己的創新或見解。老師通過以上各方面對學生進行該模塊的評價打分。
(4)期末考核:該模塊為綜合性考核,老師可采取“機試”或“筆試”的方式進行學期末考核,并根據詳細、規范的評價標準進行評價打分。
以上4個模塊各占總評成績的一定比例,學生學習過程的成績大約占整個成績的60%左右,老師可以從多方面、多角度綜合考核學生對該課程的掌握情況,讓學生能成功地對計算機語言打下堅實的編程基礎,同時為后續要開設的相關編程課程如C++、Java、JavaScript做好鋪墊。
一方面是對C語言課程知識的理解,另一方面是專業知識的靈活運用,所以教師的教學重點應放在對學生思維能力的培養和思維習慣的養成上面。
《C語言程序設計》課程是一門實踐性非常強的課程,老師在進行教學內容設計時,要堅持以培養學生的理解能力、計算思維能力和創新能力為目的。課堂采取啟發式教學和項目驅動教學方法,激發學生的學習興趣,引導學生運用抽象思維方式并結合身邊事物去解決實際問題。通過過程式課程評價方式對學生進行考核,不斷激勵學生,努力學好計算機編程語言,成為一名合格的應用型計算機編程人才。