李果
[摘 要]在向應(yīng)用型本科轉(zhuǎn)型背景下,計算機基礎(chǔ)課程教學(xué)課時大幅降低,C語言的教學(xué)面臨課時短和內(nèi)容多的矛盾,通過優(yōu)化教學(xué)流程、突出程序教學(xué)關(guān)鍵點、以項目編程收尾等方式改進C語言教學(xué),幫助學(xué)生掌握編程通識,提升編程能力。
[關(guān)鍵詞]應(yīng)用型人才;C語言;少學(xué)時;教學(xué)實踐
[中圖分類號]G642 [文獻標(biāo)識碼]A
C語言誕生于上世紀(jì)70年代初,是一門久遠但富有生命力的計算機語言,長期高居編程語言排行榜前三。在中國眾多高校,C語言一直是理工科專業(yè)大學(xué)計算機基礎(chǔ)教學(xué)的首選語言。近年來,隨著普通本科教育向應(yīng)用型本科教育轉(zhuǎn)型發(fā)展,大學(xué)課程建設(shè)也要緊緊圍繞這一主題。以我校為例,C語言作為大學(xué)計算機基礎(chǔ)課,面向的是大一非計算機專業(yè)理工科學(xué)生,大多數(shù)沒有計算機編程經(jīng)驗甚至計算機基本操作都不熟練。我校C語言理論課時為26學(xué)時,分13次進行,要在較短學(xué)時前提下,完成C語言完整的知識傳授并為今后拓展學(xué)習(xí)打下良好基礎(chǔ),這對課堂教學(xué)是個挑戰(zhàn)。本文從近年來教學(xué)實踐中總結(jié)出少學(xué)時前提下一些有效教學(xué)的經(jīng)驗。
1 教學(xué)實踐
1.1 優(yōu)化教學(xué)流程
譚浩強先生的《C語言程序設(shè)計》是我國高校中使用最廣泛的C語言教材,2017年第五版發(fā)行已超1400萬冊,對同類教材編寫和高校C語言教學(xué)影響深遠。教材前六章按照C語言簡介、算法簡介、順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、數(shù)組的順序編排,直到第七章才正式介紹C程序基本的組成模塊——函數(shù)。教材編排直接影響到課堂教學(xué)的進度安排,參考該教材順序開展教學(xué)的話,需要先花十幾個學(xué)時在C語言基本語法細節(jié)上,比如常量和變量、數(shù)據(jù)類型、各種運算符的使用等。過于追究語法細節(jié),花了大量時間到頭來仍搞不清程序基本構(gòu)造,學(xué)生學(xué)習(xí)熱情受挫、學(xué)習(xí)動力不足。一個較好的教學(xué)實踐是以函數(shù)作為教學(xué)的起點,讓學(xué)生從宏觀角度把握C程序的基本構(gòu)造,掌握模塊化編程的思想,即C程序都是由函數(shù)構(gòu)成的:一是作為程序“司令官”的獨一無二的main函數(shù);二是前人造好的“輪子”庫函數(shù);三是我們?yōu)閷崿F(xiàn)特定功能編寫的自定義函數(shù)。任何函數(shù)都具有相同的結(jié)構(gòu),獨占一行的函數(shù)頭以及由大括號包圍的函數(shù)體。通過對函數(shù)類型的介紹以及函數(shù)結(jié)構(gòu)的分析,理解模塊化編程思想,無論長短的C程序,在讀程序時都能清晰識別其結(jié)構(gòu)。
1.2 程序教學(xué)關(guān)鍵點
通過函數(shù)的教學(xué)讓學(xué)生從宏觀角度快速掌握C程序的基本結(jié)構(gòu),之后便可在教學(xué)中完善計算機語言通用語法知識。從教學(xué)實踐看,有兩個關(guān)鍵知識點需要突出:一是關(guān)于變量,程序編寫必然涉及大量數(shù)據(jù),變量是不可或缺的。同時變量關(guān)聯(lián)的知識極廣,從為變量賦值、變量類型、變量運算到指針的運用。然而多數(shù)教材對C語言中的變量著墨不多,比如譚版C停留在變量是值可以改變的量這一抽象層面。必須指出變量本質(zhì)是關(guān)聯(lián)的存儲單元,若存儲器是大廈,變量便是大廈的房間,由此關(guān)于變量關(guān)聯(lián)的知識便引刃而解,比如變量有不同規(guī)格、變量中的值可以修改、變量的地址即指針。二是簡單程序的編寫方法,即DIPO方法。對于C語言初學(xué)者,面對簡單問題寫程序卻不知如何下手,其實這些問題大都有固定的編程模式。第一步,D即define,首先定義程序需要使用的變量,遵循變量先定義后使用的原則。第二步,I即input,對程序中的變量進行初始化或者手工輸入賦值。第三步,P即process,根據(jù)問題進行相應(yīng)計算或其他處理。第四步,O即output,輸出程序運行結(jié)果。理解了變量和DIPO方法,也就消除了通用簡單程序設(shè)計的基本障礙。
1.3 以項目收尾
當(dāng)前多數(shù)C程序設(shè)計教材,編程練習(xí)以數(shù)值計算問題為主,難度不大,結(jié)構(gòu)簡單,實現(xiàn)代碼短,但對學(xué)生代碼能力鍛煉不夠。在教學(xué)的收尾階段,宜通過小型項目形式串聯(lián)起所學(xué)全部知識,如簡單動畫、小游戲和小型信息管理系統(tǒng)等,單項目代碼量數(shù)百行。但要指出的是,C語言目前主要活躍于系統(tǒng)軟件和嵌入式軟件開發(fā),脫離具體場景很難談實際應(yīng)用,而這些光靠C語言一門課程是難以實現(xiàn)的,還需要后續(xù)配套課程的跟進。
2 結(jié)語
在C語言教學(xué)中,通過優(yōu)化教學(xué)流程、突出教學(xué)關(guān)鍵點和以項目結(jié)束教學(xué),在短學(xué)時教學(xué)中取得了一定的教學(xué)效果,多數(shù)學(xué)生能在全程保持較高的學(xué)習(xí)熱情,對程序設(shè)計基本通識掌握較好。但作為非計算機專業(yè)的大學(xué)計算機基礎(chǔ)課程,C語言作為貼近硬件并廣泛使用的系統(tǒng)語言難以滿足普遍的興趣和需求,畢竟在C語言誕生的年代,互聯(lián)網(wǎng)、移動應(yīng)用等都還沒出現(xiàn)。2017年,Python語言進入浙江省信息技術(shù)教材,同時成為全國計算機等級考試新增科目,并成為IEEE計算機編程語言排行榜第一名。簡單易學(xué)、擁有豐富數(shù)據(jù)結(jié)構(gòu)、代碼規(guī)范且深受人工智能算法青睞的Python語言也許代表今后計算機基礎(chǔ)教學(xué)改革的方向。
[參考文獻]
[1] 譚浩強.C程序設(shè)計(第5版)[M].北京:清華大學(xué)出版社,2017.
[2] 車萬翔,蘇小紅,袁永峰,等.計算機專業(yè)高級語言程序設(shè)計課程改革探索[J].計算機教育,2014(13).