摘要:C++編程是高職院校計算機專業的一門必修課,高職院校計算機專業培養的是高水平實用型計算機技術人才而區別于本科院校計算機專業培養計算機研究型人才,針對目前高職院校C++教學中存在的問題,本文從教材、教師、編程習慣和考試的形式四個方面進行探討,并提出了相應的解決方案。
關鍵詞:C++;高職院校;編程能力
計算機科學與應用的迅猛發展,使C++語言成為當今的熱門語言。很多程序員用C++的編譯器作為開發工具,這足以說明C++在當今計算機科學研究與軟件開發中的地位。C++既是設計工具,又是實現工具;既可抽象概念,描述實際問題,又兼顧效率,能很好地實現底層的系統軟件。目前,C++程序設計是高職院校計算機專業的一門必修課。根據筆者多年的教學經驗和體會,對高職院校中C++教學中出現的問題進行探討,并提出相應的解決方案,希望能有拋磚引玉的的作用。
1 教材不能滿足高職教學的要求
我國的高職教育的目標是培養高水平實用技術人才,而不是培養本科院校的研究型人才。教材要與高職教學培養的目標相配套。高職計算機專業C++程序設計的教學認為只要有大綱用什么教材都可以,是不妥的。
我國的高職教育還處在發展的初期,屬姍姍學步的階段。目前高職院校計算機專業所用C++程序設計教材多種多樣,但滿足國家教育部關于高職院校人才培養目標,適應于高職院校計算機專業學生所學的教材還沒有。有的高職院校計算機專業用錢能老師《C++程序設計教程》第2版作為C++程序設計課程的教材,該教材完全從語法角度出發展開論述,除了動態內存分配之外,其他語法現象的探討深入到極致。但對高職院校計算機專業的學生,這門課是培養他們編程能力的主課,但該教材專講語法,不合適。并且該書不包括參數化程序設計高級階段內容。該書已經完全成為一本語法參考書,不再是教材。還有的高職院校計算機專業用譚浩強老師《C++程序設計》作為C++程序設計課程的教材。這本書的對象是非計算機專業的,即他們未來不需要大量編程的。如在該書中,作者放棄了動態內存分配相關內容,而將棧區的自動變量講成動態分配。
一本好的高職院校計算機C++程序設計課程的教材應該是怎樣的呢?筆者認為:其一它的教學內容新,教學理念先進,教學資料豐富,其編寫思想是從培養學生編程能力出發,最顯著的特點是從面向對象和參數化程序設計兩方面展開教學;其二要以“項目設計”為核心組織,將C++語言的各個知識點巧妙地由淺入深地植入項目中,各個知識點講完了,一個項目也完成了,從而達到學以致用的目的。
2 教師的能力有限
大多高職院校計算機專業的教師沒有在企業單位實際項目開發經歷,對C++語言在現實生活的應用沒有真實的體驗,也有的教師剛從C語言或PASCAL語言教學轉化到C++語言教學上來。因此在課堂上講授C++程序設計課程時著重從語法角度展開,忽視了C++中算法和面向對象內容,未將UML活動圖和類圖融合到教學過程中,僅在課程設計中使用是失誤之處。
教師的能力有限還表現在不了解自己傳授知識的對象,對他們的要求過高或過低。不了解哪里該精講,哪里該閱讀,對于學生哪里是難點,學時應該怎樣分配等等,推廣過急。另外高職院校的學生一般都是高考中的應試教育的失敗者,他們一般對教材上難度較大的知識點在理解上存在一定困難,但是他們的動手能力并不差,因此在教學設計時要強調做,讓學生在做中學、學中做,以提高學生的動手能力。
怎樣提高職院校計算機專業的教學能力呢?其一是要送計算機專業的教師到相關企業單位頂崗鍛煉一段時間,真正參與項目的開發工作,使教師具有實際項目開發經歷。回到學校后,要求他們將自己開發的項目應用于課堂的教學中。有了項目開發經驗,課講起來就活了,就更有吸引力和感召力。其二是教師要采用多種途徑多個平臺與學生交流,及時地掌握學生的學時情況,了解哪里該精講,哪里該閱讀,對于學生哪里是難點,動態地調整學時分配等。其三是教師在教學過程中強調學生的動手能力,要求學生在模仿的基礎上能用C++編程完成任務就可以了,對于用到的C++的相關知識點可能不能完全理解,這是可以接受的。隨著實踐次數增加,學生會漸漸理解相關的知識點。
3 編程習慣不規范
程序設計是一種集體行為,大型軟件的開發通常由很多的人協同完成,編程規范如果不統一,最終合到一起的程序可讀性將較差。這不僅給代碼的理解帶來障礙,增加維護階段的工作量,同時不規范的代碼隱含錯誤的可能性也比較大。因此,在具體的教學過程中,無論上課例子的演示還是上機的輔導,都特別強調代碼的可維護性使學生養成良好的編程習慣,為未來從事軟件開發工作打下良好的基礎。編程習慣的不規范有下面的幾個表現:
表現之一是標識符命名不能“望名知義”與過于簡單。最好是采用Windows中的API所使用的“匈牙利命名法”,也就是一個變量名由一個或多個小寫字母開始,這些字母有助于記憶變量的類型和用處,緊跟著的就是程序員選擇的任何名稱。這個后半部分的首字母可以大寫以區別前面的類型指示字母。也可以采用“駝峰式命名法”,這種命名法中每個變量名由兩個以上單詞的構成,變量的每個單詞第一個字母大寫,兩個單詞間用下劃線連接,與匈牙利命名法不同的是它并不將變量的類型寫入變量名中。
表現之二是所編寫的程序格式混亂,沒有縮進或亂縮進。正確的縮進方法應該是“Tab”鍵的形式,這樣做出來的縮進位置是固定不變的,不能用空格代替。在Visual C++ 6.0環境下,還可借助智能縮進工具,方法是選中需要縮進部分,然后在主菜單“Edit”中選擇“Advanced”,點擊“Format Selection”或者快捷鍵“Alt+F8”。嚴格規范的程序代碼層次清晰,一目了然,可以降低代碼出錯率,例如能夠有效避免括號不配對等低級問題,也便于后期的程序維護與修改工作。
表現之三是程序沒有注釋或者注釋全是廢棄的代碼。雖然在編譯和執行時注釋會被忽略,注釋本身不會增加可執行文件的大小,但是注釋的目的是方便代碼的閱讀和代碼維護。因此,一定要按照統一的規范來書寫足夠的注釋,尤其在相對復雜的程序設計問題和大型項目研發中注釋及說明文檔更加必不可少。現行的代碼規范要求注釋量應占到程序代碼比例的20%左右,即100行程序中包含20 行注釋。注釋可以書寫在代碼中的任意位置,但是一般寫在代碼的開始處或者結束處。Visual C++ 6.0中,正確的注釋方法是以“//”為起始的行注釋和“/*….*/”為起止符的多行注釋。最后,修改程序代碼時,一定要更新注釋,同時建議記錄相應的修改日期和程序修改人。
4 考試的形式單一
C++程序設計課程的考試是為檢查學生用已學的面向對象的知識來解決實際問題的能力,從而達到學以致用的目的。大部分高職院校在學完C++程序設計課程后,學生的C++成績就是用一份筆試試卷的成績來衡量;也有的高職院校采用“筆試+上機”的形式。這與高職院校計算機專業培養生編程能力出發的目標不符。應該取消單一的筆試或“筆試+上機”的考試方法。
考試形式要能全面促進學生在平時注重動手能力、程序調試能力和項目開發能力的培養。筆者提倡高職院校計算機專業的C++程序設計課程采用課程設計的較為合適,在學完該課程后,將學生分成若干個小組,每個小組完成不同的項目,最后以答辯的方式考核。這樣既達到了培養了學生用己學的面向對象的知識來解決實際問題的能力的目的,同時學生的團結協作能力和語言表達能力也得到了提高。
5 結束語
在高職院校計算機專業的C++語言教學中,如果從教材、教師、編程習慣和考試的形式四個方面進行改革和逐步完善,將會為國家培養真正的市場需要的高水平的計算機技術應用人才,還會使老師達到教書育人兩不誤的目的。
參考文獻
[1]錢能.C++語言程序設計教程[M].北京:清華大學出版社,2005.
[2]馬苗,田紅鵬.面向對象的程序設計與C++教學中的問題與思考[J].教育與教學研究,2008(6).