黃華軍
摘要:c++程序設(shè)計是高等院校計算機科學(xué)技術(shù)專業(yè)的一門專業(yè)基礎(chǔ)課。對于初學(xué)程序設(shè)計的大學(xué)生,c++存在語法多、規(guī)則復(fù)雜的問題,使教師教學(xué)與學(xué)生學(xué)習(xí)都感覺困難。文章針對c++教學(xué)中存在的問題,從教學(xué)計劃、教學(xué)內(nèi)容、教學(xué)方式和考核4個方面闡述對c++程序設(shè)計課程教學(xué)進(jìn)行的改革探索。
關(guān)鍵詞:c++教學(xué);教學(xué)改革;三步法;主動學(xué)習(xí)
0、引言
c++具有功能豐富、表達(dá)能力強、靈活方便、應(yīng)用面廣、目標(biāo)程序效率高、可移植性好的特點,因此很多高校都將其作為計算機專業(yè)的一門專業(yè)基礎(chǔ)課。該課程對培養(yǎng)學(xué)生的編程技能與邏輯思維能力、分析解決問題的能力、自學(xué)能力有重要作用。但是,c++存在概念多、規(guī)則復(fù)雜、使用靈活、不易調(diào)試等問題,使得教師教學(xué)和學(xué)生學(xué)習(xí)都感到困難,特別是很多高等院校將c++作為計算機專業(yè)學(xué)生入學(xué)后首先接觸的第一門專業(yè)基礎(chǔ)課,這種現(xiàn)象尤為明顯,而c++基礎(chǔ)學(xué)不好將直接影響后續(xù)專業(yè)課程的學(xué)習(xí)。因此如何進(jìn)行c++程序設(shè)計課程教育,進(jìn)一步提高教學(xué)效果與質(zhì)量,成為了計算機專業(yè)課程建設(shè)中的一個緊迫任務(wù)。
1、教學(xué)計劃改革
教學(xué)計劃改革前,中南林業(yè)科技大學(xué)c++程序設(shè)計課程安排在大學(xué)一年級第2學(xué)期開設(shè),其中理論課程安排在第1~16周,每周4學(xué)時,共64學(xué)時,4學(xué)分;實踐課程安排在第2~19周,每周2學(xué)時,共36學(xué)時,2學(xué)分。
筆者通過幾年的教學(xué)實踐,發(fā)現(xiàn)教學(xué)計劃中存在3點問題:
(1)學(xué)生沒有編程基礎(chǔ)。中南林業(yè)科技大學(xué)計算機專業(yè)學(xué)生在大學(xué)一年級第1學(xué)期的專業(yè)基礎(chǔ)課程只開設(shè)了計算機導(dǎo)論這門課程,導(dǎo)致學(xué)生缺乏計算機編程基礎(chǔ)的知識。
(2)理論教學(xué)跨度過長。C++程序設(shè)計理論課時共64學(xué)時,需要、16周的教學(xué)時間。這使學(xué)生在學(xué)習(xí)過程中遺忘了前面的教學(xué)內(nèi)容,從而影響學(xué)生的學(xué)習(xí)熱情。
(3)實踐教學(xué)課時不足。C++是一門實踐要求強的課程,理論教學(xué)與實踐教學(xué)課時合理安排應(yīng)是1:1或者1:1.5。而中南林業(yè)科技大學(xué)的c++程序設(shè)計課程的實踐教學(xué)課時不足,從而影響學(xué)生學(xué)習(xí)興趣。
基于以上3點問題一中南林業(yè)科技大學(xué)對c++程序設(shè)計課程的教學(xué)計劃做了修改,將c++程序設(shè)計課程教學(xué)內(nèi)容分為兩個部分。
(1)面向過程教學(xué)內(nèi)容安排在大學(xué)一年級第1學(xué)期進(jìn)行,其中,理論課時32學(xué)時,每周4學(xué)時,共8周,2學(xué)分;實踐教學(xué)課時32學(xué)時,每周4學(xué)時,共8周,2學(xué)分。
(2)面向?qū)ο蟮慕虒W(xué)內(nèi)容安排在大學(xué)一年級第2學(xué)期,其中,理論課時32學(xué)時,每周4學(xué)時,共8周,2學(xué)分;實踐教學(xué)課時32學(xué)時,每周4學(xué)時,共8周,2學(xué)分。
2、教學(xué)改革
2.1 教學(xué)內(nèi)容改革
根據(jù)新版教學(xué)計劃,對c++程序設(shè)計的教學(xué)內(nèi)容進(jìn)行改革。首先調(diào)整教學(xué)大綱內(nèi)容。最初的教學(xué)大綱是按照64學(xué)時編制的,內(nèi)容涉及c++面向過程編程和面向?qū)ο缶幊趟枷?。新修改后的教學(xué)大綱分為兩部分:第1部分是C++面向過程的程序設(shè)計思想;第2部分是c++面向?qū)ο蟮某绦蛟O(shè)計思想。每部分包括32學(xué)時的理論教學(xué)和32學(xué)時的實踐教學(xué)。
在面向過程的教學(xué)內(nèi)容中,重點介紹c++的基本語法、規(guī)則和編程思想,詳細(xì)介紹數(shù)據(jù)類型、變量、運算符、表達(dá)式、語句、控制語句、數(shù)組、函數(shù)、函數(shù)重載、參數(shù)傳遞的關(guān)鍵知識點,弱化了指針的知識點。同時對一些知識進(jìn)行歸類教學(xué),采用“三步法”教學(xué)方法對關(guān)鍵知識點進(jìn)行歸納和總結(jié)。
在面向?qū)ο蟮慕虒W(xué)內(nèi)容中,重點對c++中類、對象、成員函數(shù)、數(shù)據(jù)成員、構(gòu)造函數(shù)、封裝性、信息隱藏、繼承性和多態(tài)性等知識點進(jìn)行詳細(xì)介紹,弱化運算符重載的內(nèi)容。
通過對教學(xué)內(nèi)容的改革,使學(xué)生在具體的教學(xué)過程中,不會產(chǎn)生迷惑,從而避免學(xué)生在接觸到程序設(shè)計時,區(qū)分不了面向過程與面向?qū)ο蟮木幊趟枷搿C嫦蜻^程程序設(shè)計思想的重點是c++基本語法、規(guī)則和編程思路的形成,而面向?qū)ο蟮慕虒W(xué)則可以為學(xué)生在后續(xù)學(xué)習(xí)目前流行的開發(fā)語言Java和c#等面向?qū)ο蟪绦蛟O(shè)計語言時提供幫助。
2.2 “三步法”的教學(xué)方法
“三步法”是筆者通過長期的C++教學(xué)過程發(fā)現(xiàn)的一個規(guī)律。“三步法”的教學(xué)方法定義為:在c++語法中,一般存在“定義、聲明和應(yīng)用”3個步驟,因此,將這3個步驟稱為“三步法”教學(xué)。通過“三步法”的學(xué)習(xí),能夠使學(xué)生減少編程過程中的語法錯誤,提高編程能力。
在面向過程的教學(xué)內(nèi)容中,總結(jié)了許多采用“三步法”教學(xué)的知識點。如函數(shù)的“三步法”教學(xué)方法是函數(shù)的定義、聲明和調(diào)用。對于函數(shù),我們在教學(xué)過程中第1步要定義函數(shù),即定義函數(shù)的功能;第2步是向編譯器聲明函數(shù)的原型;第3步是在需要時進(jìn)行調(diào)用。通過“三步法”教學(xué),學(xué)生能夠很快地領(lǐng)會函數(shù)的正確使用方法。其他的知識點包括變量的“定義、初始化和應(yīng)用”、數(shù)組的“定義、初始化和應(yīng)用”等。
在面向?qū)ο蟮慕虒W(xué)內(nèi)容中,也總結(jié)了大量的“三步法”教學(xué)知識點,其中類與對象是典型的知識點。對于類與對象,總結(jié)的是類的定義、對象的定義和對象應(yīng)用的“三步法”教學(xué)方法,旨在告訴學(xué)生要正確使用對象方法,第1步必須要定義類數(shù)據(jù)類型,第2步是利用定義后的類數(shù)據(jù)類型定義對象,第3步才是對對象的應(yīng)用。
“三步法”的教學(xué)方法是在筆者長期的教學(xué)實踐過程中總結(jié)出來的教學(xué)方法,對于初次接觸計算機編程的學(xué)生來說,通過程式化的學(xué)習(xí),能快速記住編程的規(guī)范,減少語法錯誤,提高初學(xué)者的學(xué)習(xí)興趣與熱情,增強學(xué)生的自信心。
2.3 實踐教學(xué)的改革
c++程序設(shè)計是實踐性很強的一門課,培養(yǎng)學(xué)生的編程能力是教學(xué)的首要目的。因此,在授課的同時,如何引導(dǎo)學(xué)生利用上機實驗來加強實踐也是教學(xué)中的一個重要環(huán)節(jié)。實踐課程的主體是上機實驗課程,但僅在上機實驗課上編程是不夠的,學(xué)習(xí)效果也會大打折扣。為此,我們對實踐教學(xué)進(jìn)行了改革。endprint
(1)改革實踐課程教學(xué)方式。傳統(tǒng)的實踐教學(xué)方法是學(xué)生上機實驗課,發(fā)現(xiàn)問題后由教師答疑,編寫實驗報告,最后由教師批改實驗報告。在這個過程中,我們發(fā)現(xiàn)一個問題。由于現(xiàn)在的教材編訂,許多的實驗內(nèi)容都有標(biāo)準(zhǔn)的答案,這樣容易造成學(xué)生在實驗課程中,按照標(biāo)準(zhǔn)答案寫程序,不能使學(xué)生的編程思維得到有效的訓(xùn)練。為此,我們對這一教學(xué)方法進(jìn)行了改進(jìn)。首先在理論課堂上給出下次實踐課程的實驗內(nèi)容,要求學(xué)生必須先寫好實驗報告;然后在實驗過程中,由鄰桌同學(xué)對事先寫好的實驗報告進(jìn)行調(diào)試和批改。這樣做的好處是學(xué)生事先對實驗內(nèi)容進(jìn)行預(yù)習(xí),并設(shè)計相應(yīng)的程序,同時,學(xué)生是帶著批判的精神來調(diào)試其他同學(xué)的程序,激發(fā)了學(xué)生的學(xué)習(xí)興趣,提高了實驗課程的學(xué)習(xí)效率。
(2)以小項目帶動實踐教學(xué),提高學(xué)生編程興趣。我們提供許多對學(xué)生具有吸引力的小項目,如24點游戲、老虎過河這兩款游戲,不僅玩起來簡單,用c++語言實現(xiàn)起來也簡單,這對剛學(xué)習(xí)計算機編程的學(xué)生來說,既有娛樂性,又簡單易編程,實現(xiàn)后易有成就感,易增加學(xué)習(xí)興趣。在實現(xiàn)這些小項目的過程中,練習(xí)和鞏固了C++語言的基礎(chǔ)知識。另外,我們還設(shè)計了與學(xué)生的年齡特征及學(xué)生生活內(nèi)容相關(guān)的小型系統(tǒng)開發(fā),如課堂點名、簽到系統(tǒng)、學(xué)生信息管理系統(tǒng)等。在c++語言的基礎(chǔ)知識學(xué)完之后,需要學(xué)習(xí)面向?qū)ο缶幊蹋δ苣K增多,難度增加,該類項目與學(xué)生的日常生活息息相關(guān),學(xué)生對這些項目的各功能模塊的流程也非常熟悉。
(3)采用綜合設(shè)計型實驗增加學(xué)生團隊合作協(xié)調(diào)能力。通過布置或由學(xué)生結(jié)合本人的興趣,從實際應(yīng)用中選擇有具體應(yīng)用背景的實驗題目,安排學(xué)生分組共同完成。綜合設(shè)計型實驗的具體內(nèi)容如下:
①首先將綜合設(shè)計型實驗的題目要求布置給學(xué)生,要求學(xué)生在選好題目的基礎(chǔ)上,認(rèn)真研究題目的要求,自行查閱有關(guān)資料,寫出系統(tǒng)的需求分析、總體框架設(shè)計,確定小組組長和成員,由小組組長進(jìn)行任務(wù)分配工作。
②小組組長組織系統(tǒng)的需求分析、總體框架設(shè)計的討論工作,將確定的系統(tǒng)詳細(xì)設(shè)計方案交于教師審閱。
③在限定的時間內(nèi),組長安排成員完成C++語言的代碼設(shè)計,完成各個功能單元的實現(xiàn)和調(diào)試。
④聯(lián)編調(diào)試,要求把各個功能塊聯(lián)編起來進(jìn)行調(diào)試。
⑤寫出相關(guān)的系統(tǒng)分析、設(shè)計、實現(xiàn)等實驗報告和文檔。
綜合設(shè)計型實驗建立起以學(xué)生為中心的教學(xué)模式,這樣既鍛煉學(xué)生的動手能力,也加強他們交流與團結(jié)協(xié)作的精神,全面提升學(xué)生的程序設(shè)計與軟件開發(fā)能力。
2.4 考核方式改革
傳統(tǒng)教學(xué)模式中,c++理論課程的考核往往只有考試一個環(huán)節(jié),顯得不太合理?;谥暗母母?,筆者對c++程序設(shè)計理論課程的考核包括以下幾個部分:
平時環(huán)節(jié)占總成績的20%,主要考查學(xué)生的出勤、作業(yè)、課堂表現(xiàn)等;團隊表現(xiàn)占總成績的20%,主要考查學(xué)生的團隊協(xié)作能力;期末考試占總成績的60%,主要考查學(xué)生的基本知識點、程序閱讀能力與程序編寫能力。
對于實踐教學(xué),考核以考查為主,主要考查學(xué)生在實踐過程中的編程開發(fā)能力。實踐課程的考核分4個部分,包括:平時環(huán)節(jié)(占總成績的20%),實驗過程(占總成績的40%),實驗報告(占總成績的20%),團隊協(xié)作(占總成績的20%)o
3、結(jié)語
程序設(shè)計課程的教學(xué)目的是通過一門程序設(shè)計語言的教學(xué),使學(xué)生掌握程序設(shè)計思維,包括基本結(jié)構(gòu)和基本算法等,從而掌握程序設(shè)計的一般方法。但c++程序設(shè)計課程存在語法復(fù)雜、編程靈活、調(diào)試?yán)щy等問題,再加上開設(shè)這門課程時,學(xué)生通常屬于初學(xué)者,容易讓學(xué)生對這門課程普遍感覺枯燥、難懂。
為此,筆者依據(jù)多年的教學(xué)實踐過程以及對多屆學(xué)生進(jìn)行的調(diào)研,對中南林業(yè)科技大學(xué)的C++程序設(shè)計課程進(jìn)行了教學(xué)改革探索,通過修改教學(xué)計劃,調(diào)整教學(xué)內(nèi)容,采用“三步法”的教學(xué)方法和多種形式的實踐課程的教學(xué)方式,對C++程序設(shè)計這門課程進(jìn)行了改革。通過這些改革,使中南林業(yè)科技大學(xué)計算機專業(yè)學(xué)生的編程能力有了一定的進(jìn)步,提高了學(xué)生的學(xué)習(xí)熱情與信心。endprint