陳 彬
(武漢科技大學(xué)信息科學(xué)與工程學(xué)院,湖北 武漢430081)
面向?qū)ο笫且环N非常重要的軟件設(shè)計(jì)方法,是計(jì)算機(jī)領(lǐng)域?qū)ΜF(xiàn)實(shí)世界進(jìn)行分析和抽象的有效方法,是計(jì)算機(jī)軟件設(shè)計(jì)發(fā)展到一定階段的必然產(chǎn)物。隨著軟件規(guī)模的日益增加,面向?qū)ο蟪绦蛟O(shè)計(jì)相對與傳統(tǒng)的面向過程的程序設(shè)計(jì)方法有易于維護(hù)、重用性好、開發(fā)效率高以及易擴(kuò)展等優(yōu)點(diǎn)。C++是在C語言基礎(chǔ)上衍生出的一種高級編程語言,C++不僅支持面向?qū)ο缶幊糖彝耆嫒軨語言,因此“C++面向?qū)ο蟪绦蛟O(shè)計(jì)”課程在電子信息工程專業(yè)的本科教學(xué)階段發(fā)揮著重要的作用。
作者長期從事電子信息工程專業(yè)計(jì)算機(jī)類課程的教學(xué)工作,本節(jié)以我校(武漢科技大學(xué))電子信息工程專業(yè)為例說明本課程的基本情況。
“C++面向?qū)ο蟪绦蛟O(shè)計(jì)”作為電子信息工程專業(yè)的選修課程,總課時(shí)為48學(xué)時(shí),其中課堂教學(xué)為40學(xué)時(shí),實(shí)踐課時(shí)為8學(xué)時(shí)。“C++面向?qū)ο蟪绦蛟O(shè)計(jì)”課程安排在本科階段的第六學(xué)期,此時(shí)電子信息工程專業(yè)學(xué)生已完成了“計(jì)算機(jī)應(yīng)用基礎(chǔ)”、“C語言程序設(shè)計(jì)”以及“數(shù)據(jù)結(jié)構(gòu)”等先修課程的學(xué)習(xí),且“微機(jī)原理及應(yīng)用”等專業(yè)課程也以C語言作為其主要設(shè)計(jì)語言,同時(shí)考慮本課程是一門非限選課,故而選修該課程的學(xué)生在學(xué)習(xí)本課程時(shí)已具備相當(dāng)?shù)腃語言基礎(chǔ),面向過程的程序設(shè)計(jì)方法也較為熟悉。
在實(shí)際教學(xué)過程中,“C++面向?qū)ο蟪绦蛟O(shè)計(jì)”的課程教學(xué)往往存在以下幾個(gè)問題:
第一,教師在教學(xué)過程中往往將重點(diǎn)放在了“C++”上,重點(diǎn)講解“C++”的語法及使用方法,把本課程當(dāng)成了一門純粹的計(jì)算機(jī)語言類課程來教學(xué),忽略了“面向?qū)ο蟆边@一關(guān)鍵問題的講解。
第二,理論教學(xué)與實(shí)踐教學(xué)比例失調(diào),過分注重概念及知識點(diǎn)的傳授而忽略了實(shí)踐環(huán)節(jié),從而導(dǎo)致學(xué)生雖然能較好地應(yīng)付試卷的考查,但設(shè)計(jì)程序、編寫程序以及調(diào)試程序的動(dòng)手能力較差。
第三,考核環(huán)節(jié)多以試卷考查為主,對實(shí)踐考查不夠重視,不利于引導(dǎo)學(xué)生自發(fā)培養(yǎng)其綜合應(yīng)用能力。
2.1.1 突出面向?qū)ο竽繕?biāo)
在學(xué)習(xí)“C++面向?qū)ο蟪绦蛟O(shè)計(jì)”課程之前,學(xué)生已經(jīng)完成了“C語言程序設(shè)計(jì)”的學(xué)習(xí),而C++語言延續(xù)了C語言的主要語法特性,兩者的語法差異不大,因此將“C++面向?qū)ο蟪绦蛟O(shè)計(jì)”課程當(dāng)成一門純粹的C++語言教學(xué)的課程來講授,而忽略了培養(yǎng)學(xué)生面向?qū)ο蟮某绦蛟O(shè)計(jì)思想,顯然是舍本逐末。故而,在本課程教學(xué)過程中,教師應(yīng)貫徹以“面向?qū)ο蟆睘橹鲗?dǎo),注重對比學(xué)生熟悉的面向過程的程序設(shè)計(jì)方法說明面向?qū)ο筇匦裕绶庋b性、繼承性和多態(tài)性等的應(yīng)用背景,原理及其優(yōu)點(diǎn)等;而后介紹如何利用C++加以實(shí)現(xiàn)這些特性,期間對新概念,新語法做簡要的介紹,如此才能培養(yǎng)學(xué)生面向?qū)ο蟮乃季S方式,體現(xiàn)本課程的教學(xué)目的。
2.1.2 多種教學(xué)方式相結(jié)合
“C++面向?qū)ο蟪绦蛟O(shè)計(jì)”是一門實(shí)用性很強(qiáng)的工程性課程,本課程的每個(gè)知識點(diǎn)都有其提出的應(yīng)用背景。因此在課堂教學(xué)過程中,教師需轉(zhuǎn)變傳統(tǒng)單向、平鋪直敘、灌輸式的教學(xué)方法,進(jìn)而利用啟發(fā)式教學(xué)方法,引導(dǎo)學(xué)生思考、理解所學(xué)知識,主動(dòng)探索解決問題的方法,培養(yǎng)其分析問題、解決問題的能力,將教師從知識傳授者轉(zhuǎn)變?yōu)榭茖W(xué)發(fā)現(xiàn)過程中的引導(dǎo)者[1]。
此外,在平時(shí)教學(xué)中應(yīng)引導(dǎo)、鼓勵(lì)學(xué)生查閱資料或通過網(wǎng)絡(luò)收集、學(xué)習(xí)知識。C++作為一種主流面向?qū)ο笤O(shè)計(jì)語言,網(wǎng)絡(luò)上眾多資深軟件設(shè)計(jì)人員總結(jié)、歸納了豐富的經(jīng)驗(yàn)和各種解決實(shí)際問題的方法,這些經(jīng)驗(yàn)、方法對于初學(xué)本課程的學(xué)生加深對知識點(diǎn)的理解、提高其綜合素質(zhì)裨益匪淺。
2.1.3 多種教學(xué)手段向結(jié)合
多媒體教學(xué)方法是目前廣泛應(yīng)用的教學(xué)手段之一,一方面可以減少教師板書時(shí)間,提高教學(xué)效率,另一方面其直觀性亦得到廣大學(xué)生的認(rèn)可。為更直觀地展示、說明課程內(nèi)容,激發(fā)學(xué)生的學(xué)習(xí)興趣,多媒體課件中應(yīng)減少文字性描述,取而代之的是圖表及動(dòng)畫等多種可視化元素。實(shí)踐表明,可視化呈現(xiàn)方式比枯燥的文字表述方式更為直接,生動(dòng),更能吸引學(xué)生的注意力,教學(xué)效果更好。
在講授基本原理、方法的同時(shí),教師也應(yīng)該多使用現(xiàn)場編程、現(xiàn)場調(diào)試以及現(xiàn)場運(yùn)行的實(shí)際演示方法對重要知識點(diǎn)進(jìn)行驗(yàn)證。一方面可以帶領(lǐng)學(xué)生完成驗(yàn)證性實(shí)驗(yàn)的工作,另一方面可面對面的傳授學(xué)生編寫程序以及調(diào)試程序的方法和技巧,為學(xué)生在實(shí)踐教學(xué)環(huán)節(jié)中的學(xué)習(xí)奠定基礎(chǔ)。
面向?qū)ο蟪绦蛟O(shè)計(jì)是針對開發(fā)較大規(guī)模的程序而提出來的,目的是提高軟件開發(fā)效率[2]。正因如此,學(xué)生只有具備相當(dāng)豐富的實(shí)踐經(jīng)驗(yàn)才能深入理解面向?qū)ο髮ο蟪绦蛟O(shè)計(jì)思想,理解C++語言各項(xiàng)設(shè)定的應(yīng)用背景以及C語言的不足和C++的優(yōu)點(diǎn)。
C++面向?qū)ο蟪绦蛟O(shè)計(jì)課程的實(shí)踐教學(xué)包含四個(gè)實(shí)驗(yàn),共八個(gè)學(xué)時(shí),這顯然是不夠的,為了進(jìn)一步加強(qiáng)實(shí)踐教學(xué)環(huán)節(jié),提高學(xué)生面向?qū)ο缶幊棠芰Γ蓮囊韵聝蓚€(gè)方面對時(shí)間教學(xué)進(jìn)行了改革:
首先,充分利用計(jì)劃實(shí)驗(yàn)課時(shí)安排一些精心設(shè)計(jì)的小型設(shè)計(jì)性實(shí)驗(yàn),為學(xué)生體會(huì)面向?qū)ο蟪绦蛟O(shè)計(jì)方法創(chuàng)造更多的機(jī)會(huì)。而驗(yàn)證性實(shí)驗(yàn)主要依靠教師在課堂上通過實(shí)際演示來加以說明,同時(shí)將一些較為重要的驗(yàn)證性實(shí)驗(yàn)布置為課后作業(yè),再利用課堂討論的方式加深學(xué)生對基礎(chǔ)知識的了解。
其次,為了給學(xué)生創(chuàng)造更多的實(shí)踐機(jī)會(huì),在教學(xué)過程中可布置一些綜合性軟件開發(fā)課題,鼓勵(lì)學(xué)生以分組的形式在課后進(jìn)行討論、設(shè)計(jì)和分工協(xié)作利用一段較長的時(shí)間加以實(shí)現(xiàn),并組織課堂討論,一方面匯報(bào)開發(fā)進(jìn)度和經(jīng)驗(yàn)總結(jié),另一方面也可與其它小組同學(xué)進(jìn)行交流。
在對課堂教學(xué)和實(shí)踐教學(xué)進(jìn)行改革的同時(shí),有必要對“C++面向?qū)ο蟪绦蛟O(shè)計(jì)”課程的考核方式進(jìn)行改革。大學(xué)計(jì)算機(jī)教育應(yīng)是以計(jì)算機(jī)應(yīng)用能力培養(yǎng)為核心的教育[4],因此本課程考核方式上的改革的重點(diǎn)在于改變傳統(tǒng)的試卷考核方式,推廣以實(shí)踐為主的考核方式。受到傳統(tǒng)試卷考核形式的制約,試卷考核往往突出考查學(xué)生對基本知識點(diǎn)和語法的掌握情況,從而無法突出提高學(xué)生面向?qū)ο蟪绦蛟O(shè)計(jì)能力的教學(xué)主旨。在實(shí)際教學(xué)中,可以利用實(shí)驗(yàn)和綜合性課程設(shè)計(jì)兩種形式考查學(xué)生的綜合素質(zhì),既可考查學(xué)生對C++基本語法的掌握情況又可考查學(xué)生利用面向?qū)ο筮M(jìn)行程序設(shè)計(jì)的能力,一舉兩得。至于驗(yàn)收方式則可采用程序驗(yàn)收、匯報(bào)演講和文檔報(bào)告相結(jié)合的方式綜合考查學(xué)生軟件設(shè)計(jì)能力。
本文從理論教學(xué)、實(shí)踐教學(xué)以及考核方式三個(gè)方面對“C++面向?qū)ο蟪绦蛟O(shè)計(jì)”課程的教學(xué)改革進(jìn)行了探索,并在電子信息工程專業(yè)該課程的教學(xué)工作中加以實(shí)踐,效果良好。為了進(jìn)一步提高該課程的教學(xué)質(zhì)量,提升電信專業(yè)學(xué)生利用C++進(jìn)行面向?qū)ο蟪绦蛟O(shè)計(jì)的能力,我們將繼續(xù)對教學(xué)的各個(gè)環(huán)節(jié)進(jìn)行探索和改革,以期獲得更大的進(jìn)步。
[1]邢長友,陳鳴,許博,等.面向創(chuàng)新人才培養(yǎng)的計(jì)算機(jī)網(wǎng)絡(luò)教學(xué)改革[J].計(jì)算機(jī)教育,2013(1):49-52.
[2]譚浩強(qiáng).C++面向?qū)ο蟪绦蛟O(shè)計(jì)[M].2版.清華大學(xué)出版社,2014,7.