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