陳雪萍
探索《C++程序設計》教學方法
陳雪萍
福建師范大學信息技術學院
針對《C++程序設計》教學過程中存在的問題,探討如何結合高職院校學生的特點,改進《C++程序設計》課程的教學方法,使不同層次的學生都能學好該課程,為后續課程打下良好的編程基礎。
C++程序設計 高職教育 教學方法 獨立思考
根據高職院校培養應用型人才的特點,我院為計算機游戲開發專業引進了《C程序設計》—《C++程序設計》—《游戲工具開發》—《游戲腳本開發》—《在線游戲網絡架構》—《Direct X編程》—《高級游戲特性》為主線的課程體系設置。不難看出,《C++程序設計》在游戲開發專業課程學習過程中具有極其重要的作用,它的定位是面向對象程序設計原理,要讓學生有扎實的理論基礎,同時也應該具備扎實的實踐技能,是學生必須掌握的專業基礎課。但在實際授課過程中,學生普遍反映本門課程難學,對編程失去興趣和信心,后繼專業課程基本無法聽懂。本文試圖找出《C++程序設計》難學的癥結所在,并提出相應的解決方案。
在計算機游戲開發專業課程體系中,《C程序設計》被設計為《C++程序設計》的前續課程,基本語法的學習放在《C程序設計》,《C++程序設計》的授課重點則放在了面向對象的基本思想和基本方法上。這樣,學生有可能受到兩方面的影響:編程過程過于關注基本語法;在編程過程中受結構化編程思想影響,難以理解面向對象編程思想。
針對計算機游戲專業與其它專業的特殊性,建議直接引入《C++程序設計》,而不是先學《C程序設計》再學《C++程序設計》,盡早引入面向對象編程思想。《C++程序設計》課程涉及到較多的抽象概念,如繼承、多態等,應提高學生從客觀事物抽象出類的方法去考慮和解決問題的抽象思維能力。
同時,在授課過程中淡化語法,重點強調算法,以算法帶動基本語法的學習。督促學生多記錄常見錯誤提示,錯誤再次發生時能自行解決。錯誤提示通常為英語,可與《專業英語》課程相結合,學習相關專業術語。
以往《C++程序設計》的課程教材都是采用清華大學版的教程,由于該書的信息量太大,知識點太多,對語法強調得過多,學生難以把握學習重點,往往拿起書本就覺得沒有信心,妨礙了學生自學,容易產生畏難情緒,不適合用于培養高職院校計算機專業學生的編程能力。書本內容多也導致了教學難度大,知識點過多容易使課程教學出現拖拉現象。因此,對教材的要求應該從培訓學生的實際編程能力為前提進行選擇,教材內容應該以項目設計為主線,將C++語言的各個知識點融入其中。知識點講完了,一個項目也就完成了。
案例教學是一種具有啟發性和實踐性,能開發學生智力,提高學生決策能力和綜合素質的教學方法。初學時,學生很容易就產生學習C++程序設計非常枯燥無味的情緒,一部分學生甚至出現“只聽不練”的情況。使用這種方法能將枯燥的抽象概念變得生動、具體,重點突出,簡單明了。例如,我們小時候都玩過“掌上寵物”這個游戲,現在把這個游戲搬進我們的課堂,既活躍了課堂氣氛,又調動了學生的積極性。案例教學的有效實施,有助于學生在開始階段順利入門,保持學習的興趣和積極性,提高他們的實際應用能力。
案例教學效果的好壞關鍵在于案例設計的質量如何。一般情況下,教學案例的設計應該盡量做到:①覆蓋課程的相關知識點;②有實踐性,設計的案例應切合實際,容易被學生理解;③有針對性,應該針對學生的接受能力來設計案例;④有系統性,在整個課程教學過程中用到的案例應該由易到難進行設計。
在課堂案例教學過程中,經常看到這樣一個場景:老師教一步,然后等學生操作一步,然后老師再繼續教下一步操作,就是老師教學生一步一步模仿開發。可是,換一個案例,碰到新知識和新問題的時候,學生就不知道如何處理了。
因此,在教學過程中,我們應該給學生一些時間讓他去思考,除了課程電子教案、案例重難點分析,我們還應該提供一些案例擴展的自檢自測題。課堂和課外兩個案例同時進行,除了課堂案例,應該再設計一些案例,供學生課外練習,鼓勵學生借助搜索引擎(如百度、雅虎)來獲取其感興趣的資源,完成課外案例。
由于學生素質參差不齊,一部分學生接受能力快,課堂布置的實驗很快完成,出現課堂剩余時間無所事事的情況;而另一部分學生接受能力差,實驗進度緩慢。游戲專業兩極分化比較嚴重,上課節奏難以把握。
對接受能力快的學生,采用“任務式”教學,提出任務,引導學生進行思考,使其自己翻閱資料并給出解決方案。這樣既可以引導學生在學習過程中少走彎路,又能激發這些學生的學習動力,變被動學習為主動學習,提高其自覺能力;對接受能力差的同學,采用扎實、緩慢的授課方式,對所有的難點、細節都舉大量的例子,不斷地反復練習,加深印象,避免因為前面內容沒有聽懂而放棄后面內容的學習。同時采用分組形式,盡量讓學習能力強的學生帶學習能力差的學生,課堂上的問題盡量在小組內解決,如有不能解決的,再向老師提問。這樣,既能使學習能力強的學生知識得到鞏固,又使學習能力差的學生能解決學習問題,同時學習到好的學習方法。
學生在編程過程中,往往按照自己的習慣進行編程,很少注意到編程規范問題,使程序的可讀性差,這使得學生即使是自己寫的程序,依然看得很吃力,在代碼糾錯方面也浪費了大量的時間。編程不規范主要表現在以下幾個方面:
(1)標識符命名不規范,學生通常喜歡用i,j等標識符來命名,不能“望名知義”。標識符命名最好采用“匈牙利命名法”或“駝峰式命名法”。
(2)程序格式混亂,沒有縮進或亂縮進,程序層次不分明,經常出現括號不配對等問題。應該引導學生使用”TAB”鍵進行縮進,而不是使用空格,同時借助編輯工具來規范程序代碼層次。
(3)程序沒有注釋,使代碼的閱讀和代碼的維護產生困難。應該要求代碼的注釋量達到程序代碼比例的20%左右,修改代碼時,應該要更新注釋。
大型軟件開發通常由多人協同完成,可以提供給學生一些IT公司的編程培訓視頻或編程規范文檔,例如給學生閱讀《華為編程規范和范例》,使學生理解IT公司的編程要求,盡早培養好的編程習慣,養成命名規范化和編程規范化,提高編寫的程序可讀性,使學習效率事半功倍。
由于《C++程序設計》涉及知識面廣,內容豐富,語法復雜,學生在編程過程中往往被語法問題難住,對程序調試過程中出現層出不窮的語法問題和邏輯問題難以自行解決,只能被動等待授課老師過來解決。因此,在上機過程中,應該著重指導學生怎么跟蹤程序的運行,怎樣設置被監視的變量,怎么設置斷點,怎樣單步運行,怎樣使用Debug工具。這樣,在實驗過程中,學生才能學會如何自行解決問題。
在案例教學中要培養學生的邏輯思維能力、程序設計能力和綜合解決問題的能力,因為,對教師自身的程序設計能力也有了更高的要求。教師應該經常參與項目開發,參與系統設計、系統實施,積累開發經驗和編程技巧,把理論上先進的思想付諸實施,同時把實踐中的體會用于教學。
總之,在教學過程中一定要結合高職院校學生的特點,使課程內容盡量貼近學生的興趣,這樣才能調動學生學習的積極性,提高教學效果。
[1] 潭浩強. C++程序設計[M].北京:清華大學出版社,2011
[2] 錢能.C++程序設計教程——設計思想與實現[M].北京:清華大學出版社, 2009.
[3] 黃國軍,黃賢文.高職院校中C++教學問題的探討[J].軟件工程師, 2010(4): 59-60.