摘要:“面向?qū)ο蟪绦蛟O(shè)計(jì)C++”課程在高等院校計(jì)算機(jī)及其相關(guān)專(zhuān)業(yè)教學(xué)體系中具有十分重要的地位。針對(duì)該課程在教學(xué)和實(shí)踐中存在的問(wèn)題,結(jié)合多年的教學(xué)經(jīng)驗(yàn),從教學(xué)內(nèi)容、教學(xué)方法以及實(shí)踐教學(xué)等方面進(jìn)行了改革和探討,以期能更好地實(shí)現(xiàn)本課程的教學(xué)目標(biāo),提高教學(xué)效果。
關(guān)鍵詞:面向?qū)ο蟪绦蛟O(shè)計(jì);教學(xué)改革;實(shí)踐教學(xué)
在現(xiàn)今的中國(guó)高等教育中,計(jì)算機(jī)課程和外語(yǔ)課程并稱為高等院校中的兩大基礎(chǔ)課程,也是目前唯一設(shè)有全國(guó)統(tǒng)一等級(jí)考試制度的兩門(mén)課程。在計(jì)算機(jī)課程中,“面向?qū)ο蟪绦蛟O(shè)計(jì)C++”(簡(jiǎn)稱C++程序設(shè)計(jì))語(yǔ)言以其高效而又實(shí)用的特性——既可以進(jìn)行過(guò)程化程序設(shè)計(jì),又可進(jìn)行面向?qū)ο蟮某绦蛟O(shè)計(jì),因此逐步成為各高校程序設(shè)計(jì)課程中的主流。該課程作為計(jì)算機(jī)科學(xué)與技術(shù)及其相關(guān)專(zhuān)業(yè)的必修基礎(chǔ)課程,既是進(jìn)行軟件開(kāi)發(fā)的直接工具,又是后續(xù)課程如“Java程序設(shè)計(jì)”、“軟件工程”、“數(shù)據(jù)結(jié)構(gòu)”等課程的先修課程,因此,在整個(gè)教學(xué)體系中占據(jù)十分重要的地位。本文根據(jù)筆者多年的教學(xué)經(jīng)驗(yàn)和教學(xué)中發(fā)現(xiàn)的問(wèn)題,從教學(xué)內(nèi)容、教學(xué)方法、教學(xué)實(shí)踐等幾個(gè)方面進(jìn)行了探討,以期進(jìn)一步提高本課程的教學(xué)效果和教學(xué)質(zhì)量。
一、存在的主要問(wèn)題
1.“面向?qū)ο蟪绦蛟O(shè)計(jì)C++”課程是讓學(xué)生在掌握面向過(guò)程的程序設(shè)計(jì)基礎(chǔ)上以面向?qū)ο蟪绦蛟O(shè)計(jì)方法為教學(xué)目標(biāo)。該課程目前在國(guó)內(nèi)大部分高校中采用的教學(xué)模式為:“C程序設(shè)計(jì)”+“C++程序設(shè)計(jì)”+“Java程序設(shè)計(jì)”。以江西財(cái)經(jīng)大學(xué)為例:一般是在大學(xué)第二學(xué)期學(xué)習(xí)“C程序設(shè)計(jì)”,然后在第三學(xué)期學(xué)習(xí)“C++程序設(shè)計(jì)”。由于C語(yǔ)言是前期剛剛開(kāi)設(shè)的教學(xué)課程,再加上C++本身又是從面向過(guò)程的C語(yǔ)言上發(fā)展而來(lái)的,因此學(xué)生非常容易受C語(yǔ)言的面向過(guò)程的思想束縛,對(duì)于面向?qū)ο蟪绦蛟O(shè)計(jì)的概念理解總是不夠深入,停留在表面上,不能很好地理解面向?qū)ο蟮膬?nèi)涵。
2.多媒體教學(xué)存在的問(wèn)題。目前,幾乎所有的高校中的C++程序設(shè)計(jì)課程都采用了PPT投影方式的多媒體教學(xué)方式,這種教學(xué)方式能促進(jìn)學(xué)生的感性認(rèn)識(shí),同時(shí)也能加大教學(xué)信息量、保證教學(xué)進(jìn)度。但是,采用這種多媒體的教學(xué)方式學(xué)生會(huì)隨著時(shí)間逐漸失去新鮮感。另外,由于取代了傳統(tǒng)的黑板板書(shū)方式進(jìn)行教學(xué),使得教師的即興發(fā)揮以及與學(xué)生的交互受到限制。通常由于教學(xué)課件已經(jīng)準(zhǔn)備好,教師在課程教學(xué)中基本上采用常規(guī)的順序式、灌輸式的教學(xué)方法,在教學(xué)過(guò)程中與學(xué)生之間難以形成互動(dòng),因而大大降低了學(xué)生學(xué)習(xí)的積極性和主動(dòng)性。再加上C++程序設(shè)計(jì)語(yǔ)言本身又是一門(mén)比較抽象、難以理解的語(yǔ)言,采用這種傳統(tǒng)的教學(xué)方式還會(huì)使學(xué)生因?yàn)橛X(jué)得難以理解而逐漸喪失學(xué)習(xí)的興趣。
3.C++程序設(shè)計(jì)是一門(mén)實(shí)踐很強(qiáng)的課程,要求課堂教學(xué)和實(shí)驗(yàn)教學(xué)緊密結(jié)合。通過(guò)同步上機(jī)實(shí)驗(yàn),使學(xué)生深入領(lǐng)會(huì)C++語(yǔ)言的功能和作用,理解程序的編譯、運(yùn)行機(jī)理,加深對(duì)C++語(yǔ)言面向?qū)ο蟊举|(zhì)的認(rèn)識(shí)。通過(guò)實(shí)驗(yàn)教學(xué),幫助學(xué)生理解和消化課堂教學(xué)內(nèi)容,培養(yǎng)自主學(xué)習(xí)的能力,加強(qiáng)實(shí)踐能力,使學(xué)生具備較好的程序設(shè)計(jì)能力和解決問(wèn)題的能力,并積累一定的實(shí)踐經(jīng)驗(yàn),為今后在專(zhuān)業(yè)領(lǐng)域中用計(jì)算機(jī)解決問(wèn)題打下扎實(shí)基礎(chǔ)。但是,在實(shí)際中我們發(fā)現(xiàn)由于有先入為主的原因,雖然大多數(shù)學(xué)生通過(guò)教學(xué)已經(jīng)知道了面向?qū)ο缶幊痰膬?yōu)越性,但是在解答作業(yè)和解決實(shí)際問(wèn)題時(shí)還是存在少數(shù)學(xué)生無(wú)從下手、部分學(xué)生習(xí)慣了應(yīng)用結(jié)構(gòu)化編程的思想,不會(huì)自覺(jué)地應(yīng)用面向?qū)ο蟮姆椒ǚ治龊徒鉀Q問(wèn)題等。歸結(jié)到一點(diǎn),就是學(xué)生缺少理論聯(lián)系實(shí)際的能力,實(shí)踐動(dòng)手能力較差。
二、教學(xué)與實(shí)踐改革的具體措施
1.教學(xué)內(nèi)容改革。由于C++語(yǔ)言中的基礎(chǔ)知識(shí)大部分都來(lái)自其前導(dǎo)課程C語(yǔ)言,如數(shù)據(jù)類(lèi)型、表達(dá)式和語(yǔ)句、數(shù)組和結(jié)構(gòu)等。為此,在C++程序設(shè)計(jì)課程中我們將不再重復(fù)與C程序設(shè)計(jì)課程中相同的知識(shí),從而避免學(xué)生再次受到C語(yǔ)言結(jié)構(gòu)化編程模式的影響。因而在教學(xué)內(nèi)容上,我們一方面對(duì)教學(xué)內(nèi)容加以精選,突出面向?qū)ο蟪绦蛟O(shè)計(jì)的關(guān)鍵技術(shù),突出C++語(yǔ)言中的實(shí)用技術(shù),包括類(lèi)、對(duì)象、封裝、繼承、多態(tài)和模版,突出算法而不是語(yǔ)法;另一方面借助一些參考書(shū)目積極引入本課程的最新技術(shù)和成果(新概念、新技術(shù)、新方法),將這些內(nèi)容重新組合成三個(gè)模塊:基礎(chǔ)要求模塊、選學(xué)模塊、選修模塊,從而形成新的課程體系深化面向?qū)ο蟮暮诵乃枷搿Mㄟ^(guò)這種教學(xué)內(nèi)容的改革,使學(xué)生真正掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的本質(zhì),使學(xué)生的思維模式逐步從先前的面向過(guò)程的程序設(shè)計(jì)方式轉(zhuǎn)向面向?qū)ο蟮某绦蛟O(shè)計(jì)方式上來(lái)。
2.教學(xué)方法改革。針對(duì)上述C++程序設(shè)計(jì)課程中傳統(tǒng)的教學(xué)方法存在的問(wèn)題和局限,結(jié)合C++語(yǔ)言的高度抽象性的特點(diǎn),我們?cè)诓捎枚嗝襟w教學(xué)的同時(shí)在課堂中重點(diǎn)加強(qiáng)了以下兩種方式的教學(xué)。
(1)啟發(fā)式教學(xué)。由于C++程序設(shè)計(jì)是一門(mén)邏輯性強(qiáng)、知識(shí)內(nèi)在聯(lián)系緊密的課程,通過(guò)該教學(xué)方法能改變傳統(tǒng)的一講到底的講授方法,講到一定程度教師便提出一些思考性和概念性都很強(qiáng)的問(wèn)題,讓學(xué)生自己學(xué)會(huì)分析、研究和討論,引導(dǎo)學(xué)生得出正確的結(jié)論,充分發(fā)揮了教師和學(xué)生的雙主體地位。通過(guò)這種方式的教學(xué),學(xué)生在接受程序設(shè)計(jì)中的新知識(shí)時(shí)將會(huì)更加自然、主動(dòng)。
(2)案例式教學(xué)。由于C++程序設(shè)計(jì)中牽涉到較多的語(yǔ)法和算法,如果過(guò)重地去講解這些知識(shí)點(diǎn),學(xué)生反而會(huì)感到枯燥、乏味、不知所云。為此,在每一個(gè)比較重要或者難以理解的知識(shí)點(diǎn)處要選擇合適的案例輔以教學(xué)。案例的選擇不能僅局限于數(shù)學(xué)性質(zhì)的問(wèn)題,還可以是游戲程序、圖形、圖像程序或者是自然界中的一些真實(shí)現(xiàn)象的模擬。這種教學(xué)方法有助于培養(yǎng)學(xué)生的思維能力,能夠從本質(zhì)上掌握程序設(shè)計(jì)的思想和設(shè)計(jì)方法。而且,成功的案例演示既能激發(fā)學(xué)生的興趣,又能調(diào)動(dòng)學(xué)習(xí)本課程的積極性和主動(dòng)性。
3.實(shí)踐教學(xué)改革。由于C++程序設(shè)計(jì)課程中實(shí)踐環(huán)節(jié)的重要性和復(fù)雜性,在C++實(shí)驗(yàn)教學(xué)環(huán)節(jié)的改革中,我們針對(duì)學(xué)生的實(shí)際情況構(gòu)建出了三種不同層次的實(shí)驗(yàn)課程體系,以逐步加強(qiáng)學(xué)生的實(shí)際動(dòng)手能力。
(1)驗(yàn)證型實(shí)驗(yàn)。該類(lèi)實(shí)驗(yàn)要求學(xué)生獨(dú)立完成,主要涉及課程的面向?qū)ο蟪绦蛟O(shè)計(jì)的相關(guān)知識(shí)點(diǎn),使學(xué)生驗(yàn)證、理解、鞏固并掌握課內(nèi)教學(xué)的基本教學(xué)內(nèi)容。這一層次的實(shí)驗(yàn)通常在實(shí)驗(yàn)課堂內(nèi)必須完成,而且要求每一個(gè)學(xué)生獨(dú)立完成且填寫(xiě)實(shí)驗(yàn)報(bào)告。該類(lèi)實(shí)驗(yàn)的目的在于進(jìn)一步鞏固教學(xué)內(nèi)容,初步培養(yǎng)學(xué)生的實(shí)際動(dòng)手能力,避免學(xué)生只聽(tīng)不練。
(2)設(shè)計(jì)型實(shí)驗(yàn)。該類(lèi)實(shí)驗(yàn)要求學(xué)生獨(dú)立完成,也可分組完成(限2人),實(shí)驗(yàn)由教師以任務(wù)的形式提出實(shí)驗(yàn)要求和具體實(shí)驗(yàn)成果,要求學(xué)生能比較綜合地利用課程中的幾個(gè)相關(guān)知識(shí)點(diǎn)開(kāi)發(fā)并完成實(shí)驗(yàn)項(xiàng)目同時(shí)提交設(shè)計(jì)型實(shí)驗(yàn)報(bào)告。該類(lèi)實(shí)驗(yàn)也要求在課堂內(nèi)完成,旨在培養(yǎng)學(xué)生帶著問(wèn)題自主學(xué)習(xí)的能力,并培養(yǎng)學(xué)生利用面向?qū)ο蟮乃枷敕治龊徒鉀Q問(wèn)題的能力。學(xué)生在整個(gè)實(shí)驗(yàn)中學(xué)習(xí)目的非常明確,學(xué)習(xí)的積極性得到充分調(diào)動(dòng),動(dòng)手能力進(jìn)一步加強(qiáng)。
(5)大作業(yè)。該類(lèi)實(shí)驗(yàn)要求學(xué)生分組完成(3-4人/組),實(shí)驗(yàn)以現(xiàn)實(shí)的問(wèn)題或逼真現(xiàn)實(shí)的問(wèn)題為實(shí)驗(yàn)對(duì)象,只有具體實(shí)驗(yàn)要求而沒(méi)有最終的結(jié)果,采用完全開(kāi)放、自由選題的形式,要求學(xué)生系統(tǒng)地運(yùn)用所學(xué)的全部面向?qū)ο蟮闹R(shí)來(lái)解決實(shí)際問(wèn)題,最終要求學(xué)生現(xiàn)場(chǎng)演示答辯,教師當(dāng)場(chǎng)測(cè)試驗(yàn)收每個(gè)作業(yè)包括大作業(yè)報(bào)告。該類(lèi)實(shí)驗(yàn)通常在課程結(jié)束前1-1.5個(gè)月布置,要求學(xué)生在課堂外完成所有過(guò)程,課堂內(nèi)可以根據(jù)問(wèn)題和教師進(jìn)行交流。該層次的實(shí)驗(yàn)重在培養(yǎng)學(xué)生的研究能力和創(chuàng)新意識(shí),鍛煉學(xué)生運(yùn)用面向?qū)ο蟮闹R(shí)分析問(wèn)題和解決問(wèn)題的能力,激發(fā)學(xué)生的學(xué)習(xí)研究興趣,使學(xué)生的分析能力、創(chuàng)造能力、思辨能力和團(tuán)隊(duì)合作能力得到全面的鍛煉。
此外,為了保證每一個(gè)學(xué)生都真正參加到實(shí)踐環(huán)節(jié)中和實(shí)驗(yàn)必須達(dá)到預(yù)期的效果,對(duì)課程的最后考核成績(jī)方式也進(jìn)行了改革,最終的總評(píng)成績(jī)構(gòu)成為:筆試成績(jī)(60%)+驗(yàn)證型實(shí)驗(yàn)、設(shè)計(jì)型實(shí)驗(yàn)及平時(shí)考核(20%)+大作業(yè)(20%)。通過(guò)該考核方式的改革,進(jìn)一步引導(dǎo)和督促學(xué)生重視實(shí)踐環(huán)節(jié)。
“面向?qū)ο蟪绦蛟O(shè)計(jì)C++”是計(jì)算機(jī)及其相關(guān)專(zhuān)業(yè)學(xué)生必修的一門(mén)專(zhuān)業(yè)基礎(chǔ)課程,在整個(gè)專(zhuān)業(yè)的教學(xué)體系中具有十分重要的地位和作用。本文以此課程為切入點(diǎn),以作者在教學(xué)和實(shí)踐中發(fā)現(xiàn)的問(wèn)題和得到的啟發(fā)為契機(jī),結(jié)合課程的特點(diǎn)和教學(xué)目標(biāo),在教學(xué)內(nèi)容、教學(xué)方法和實(shí)踐教學(xué)等方面進(jìn)行了探索,并且在實(shí)際教學(xué)中取得了較好的效果。