[摘 要]隨著時(shí)代的發(fā)展,計(jì)算機(jī)編程課程已經(jīng)成為高等學(xué)校非計(jì)算機(jī)專業(yè)學(xué)生的計(jì)算機(jī)基礎(chǔ)課程,面對(duì)不同專業(yè)基礎(chǔ)的大學(xué)生,如何培養(yǎng)他們良好的編程習(xí)慣和邏輯思維,提高他們的計(jì)算機(jī)編程能力等已被不少院校廣泛關(guān)注,他們也已將此課程列為教改課程。因此,可以以C++為例,探討該教改課程的教學(xué)模式、教學(xué)內(nèi)容、教學(xué)方法、教學(xué)手段等內(nèi)容。
[關(guān)鍵詞]計(jì)算機(jī)編程;課程改革;C++
[中圖分類號(hào)] TP312;G642.0 [文獻(xiàn)標(biāo)識(shí)碼] A [文章編號(hào)] 2095-3437(2016)04-0110-02
一、引言
所謂計(jì)算機(jī)編程,就是人類運(yùn)用某種計(jì)算機(jī)編程語(yǔ)言設(shè)計(jì)程序代碼而讓計(jì)算機(jī)運(yùn)行得到結(jié)果的過(guò)程。人類只需將所要解決問(wèn)題的思路、方法和手段等通過(guò)計(jì)算機(jī)能夠理解的形式告訴計(jì)算機(jī),使得計(jì)算機(jī)能夠根據(jù)人的指令一步步去工作,完成預(yù)先設(shè)定的任務(wù)。在高校,計(jì)算機(jī)編程也已成為許多非計(jì)算機(jī)專業(yè)學(xué)生的基礎(chǔ)課程。如何講解好計(jì)算機(jī)編程課程日益成為很多高校關(guān)注的問(wèn)題,而且不少院校已經(jīng)將計(jì)算機(jī)編程課程列為教改課程,針對(duì)教改課程的教學(xué)研究方法也就此展開(kāi)。蘇莉蔚,白洪濤,朱曉旭[1]針對(duì)C語(yǔ)言程序設(shè)計(jì)課程提出分段教學(xué)法與項(xiàng)目驅(qū)動(dòng)法,以及考試形式的改革等方法;時(shí)海亮,汪遠(yuǎn)征[2]針對(duì)非計(jì)算機(jī)專業(yè)的計(jì)算機(jī)編程設(shè)置,以VB為例提出了一些建議;孟雪梅[3]提出在程序設(shè)計(jì)教學(xué)中培養(yǎng)學(xué)生的創(chuàng)新能力的思想;張青,蘇葉健,高偉鋒[4]在軟件開(kāi)發(fā)技術(shù)類課程中采用語(yǔ)境式教學(xué),采用營(yíng)造實(shí)踐環(huán)境,以用代學(xué),以用促學(xué),并結(jié)合項(xiàng)目教學(xué)進(jìn)行語(yǔ)境式教學(xué)方法研究與應(yīng)用的探索,以上所有這些改革方法都取得了較好的效果。
本文主要以C++為例,從該課程的現(xiàn)狀出發(fā),在教學(xué)內(nèi)容及相應(yīng)的改進(jìn)措施等方面展開(kāi)研究,以提出一些改進(jìn)措施。
二、計(jì)算機(jī)編程課程現(xiàn)狀分析
(一)學(xué)時(shí)少
盡管計(jì)算機(jī)編程已經(jīng)延伸到非計(jì)算機(jī)類專業(yè),但是因?yàn)閷?duì)課程的要求不一樣,不同院校設(shè)定的學(xué)時(shí)也不一樣,有些總學(xué)時(shí)為32學(xué)時(shí),有些為48學(xué)時(shí),但無(wú)論多少學(xué)時(shí),都要求學(xué)生通過(guò)這些有限學(xué)時(shí)的學(xué)習(xí)達(dá)到掌握計(jì)算機(jī)編程的基本內(nèi)容和編程思想的要求。由于該課程的理論性和實(shí)踐性都很強(qiáng),因此這門課程既需要通常的理論課時(shí),也需要一定的上機(jī)實(shí)踐的課時(shí)。教師在理論課上主要講解基本的語(yǔ)法知識(shí)、算法的設(shè)計(jì)思想以及相應(yīng)的編程方法。但是由于學(xué)時(shí)嚴(yán)重不足,教師往往顧此失彼,學(xué)生也疲于奔命,很多專業(yè)的學(xué)生上機(jī)實(shí)踐的課時(shí)大打折扣,這就要求學(xué)生自己在課外多加強(qiáng)練習(xí)。而對(duì)初學(xué)者而言,可能一個(gè)簡(jiǎn)單的問(wèn)題都會(huì)影響到后續(xù)的學(xué)習(xí),比如,在將變量定義成整型后,很多學(xué)生對(duì)“8 / 5”這樣簡(jiǎn)單的算術(shù)運(yùn)算結(jié)果為什么是1感到不理解。諸如此類的問(wèn)題很多,學(xué)期結(jié)束后,學(xué)生普遍感到計(jì)算機(jī)編程課程難懂、不好理解,不知道編程能解決什么樣的問(wèn)題,從而失去了學(xué)習(xí)熱情,造成應(yīng)用水平相對(duì)較低、不能滿足課程要求等問(wèn)題。尤其對(duì)于學(xué)時(shí)數(shù)只有32學(xué)時(shí)的非計(jì)算機(jī)專業(yè)的學(xué)生來(lái)說(shuō),要想在有限的學(xué)時(shí)內(nèi)學(xué)好這門課程,這對(duì)教師和學(xué)生都是非常大的挑戰(zhàn)。
(二)專業(yè)基礎(chǔ)不同
很多院校將計(jì)算機(jī)編程課程拓展到非計(jì)算機(jī)專業(yè)后,該課程變成了一門相關(guān)專業(yè)的公共基礎(chǔ)課,這就可能會(huì)出現(xiàn)文科專業(yè)的學(xué)生與理科專業(yè)的學(xué)生同在一個(gè)班級(jí)上課的情況。這時(shí)由于思維方式的差異會(huì)導(dǎo)致:如果教師課程內(nèi)容講快了,文科專業(yè)的學(xué)生跟不上講課進(jìn)度;如果教師課程內(nèi)容講慢了,理科專業(yè)的學(xué)生又會(huì)覺(jué)得比較乏味的情況。因此,如何計(jì)劃好講課內(nèi)容以及采用什么樣的講課方法對(duì)教師來(lái)說(shuō)都是一種挑戰(zhàn)。我們采取的解決方法通常是對(duì)同一個(gè)算法編排兩個(gè)不同難度的例題供課堂練習(xí)使用。很多學(xué)生在編寫好相對(duì)簡(jiǎn)單的例題后會(huì)選擇去挑戰(zhàn)編寫相對(duì)難點(diǎn)的例題,這樣既可以保證這些學(xué)生課上有事做,又能提升他們的水平,而且一旦程序編譯通過(guò)并運(yùn)行出正確的結(jié)果時(shí),學(xué)生也會(huì)很激動(dòng),這也激發(fā)了學(xué)生學(xué)習(xí)這門課程的熱情。
(三)教學(xué)方式
本課程目前采用在機(jī)房并結(jié)合多媒體的教學(xué)方法,這種教學(xué)方法的優(yōu)點(diǎn)是每講好一個(gè)例題,學(xué)生可以立即上機(jī)操作實(shí)踐,若有問(wèn)題可得到及時(shí)解決。但因?yàn)閷W(xué)時(shí)的限制,學(xué)生也只能在課堂上練習(xí)例題,更多的練習(xí)需要學(xué)生課后自己去加強(qiáng)。實(shí)踐證明,采用在機(jī)房并結(jié)合多媒體的授課方式是在學(xué)時(shí)有限的情況下相對(duì)有效的一種教學(xué)方法。
三、計(jì)算機(jī)編程課程的改進(jìn)措施
(一)精心安排教學(xué)內(nèi)容
針對(duì)只有32學(xué)時(shí)的計(jì)算機(jī)編程課程,教學(xué)內(nèi)容的設(shè)計(jì)非常重要。學(xué)生通過(guò)掌握這些內(nèi)容,可以熟悉相關(guān)的編程軟件及其用法,了解計(jì)算機(jī)編程的特點(diǎn),掌握計(jì)算機(jī)編程的邏輯思維并會(huì)應(yīng)用編程解決一些簡(jiǎn)單的實(shí)際問(wèn)題,本文以C++為例進(jìn)行探討。
基于上述目的,教學(xué)內(nèi)容主要包括C++語(yǔ)言的特點(diǎn)、C++語(yǔ)言的數(shù)據(jù)類型、C++語(yǔ)言的結(jié)構(gòu)、數(shù)組、指針、結(jié)構(gòu)體和類等相關(guān)內(nèi)容。
(二)采用啟發(fā)式教學(xué)方法
這要求教師在講課時(shí)提出問(wèn)題要自然,具有一定的邏輯性;分析問(wèn)題要簡(jiǎn)明扼要、透徹,防止繁瑣雜亂,尤其是在設(shè)計(jì)算法時(shí)更應(yīng)如此;解決問(wèn)題要切實(shí)準(zhǔn)確,要引導(dǎo)學(xué)生積極思考。要做到這一點(diǎn),教師必須考慮到在講解一個(gè)問(wèn)題時(shí),怎樣引導(dǎo)學(xué)生多動(dòng)腦筋。比如在講解多個(gè)if語(yǔ)句時(shí),很多學(xué)生不是很理解,這樣教師可以先從簡(jiǎn)單的學(xué)生熟知的函數(shù)入手,比如符號(hào)函數(shù),講清楚如何設(shè)計(jì)條件,結(jié)果會(huì)以什么樣的形式顯示,在學(xué)生充分理解后再引入相對(duì)復(fù)雜一些的條件;也可以從日常實(shí)際的生活入手,比如購(gòu)買商品時(shí)會(huì)有不同的折扣,以此為例,讓學(xué)生有一個(gè)感性的認(rèn)識(shí)后再來(lái)設(shè)計(jì)算法。
(三)承上啟下、及時(shí)歸納的教學(xué)方法
很多院校的計(jì)算機(jī)編程課程安排在大學(xué)一年級(jí)的第一學(xué)期,而大學(xué)的教學(xué)方式與中學(xué)的教學(xué)方式有著明顯的區(qū)別。首先是教學(xué)方式的不同。大學(xué)教學(xué)不再像中學(xué)教學(xué)那樣,一個(gè)知識(shí)點(diǎn)大學(xué)教師不會(huì)反反復(fù)復(fù)講好幾遍,對(duì)于難度稍高的知識(shí)點(diǎn)教師會(huì)講得比較詳細(xì),而相對(duì)簡(jiǎn)單的知識(shí)點(diǎn)可能就講得比較快甚至一帶而過(guò)。其次,教學(xué)內(nèi)容的量上也會(huì)有明顯的區(qū)別。為了能夠?qū)⒄n程設(shè)計(jì)的內(nèi)容講解完,教師每次的講課內(nèi)容量比較大,學(xué)生不容易全部掌握。這就需要教師及時(shí)總結(jié)本次課堂上需要重點(diǎn)掌握的內(nèi)容,告訴學(xué)生這次課堂講授內(nèi)容需要達(dá)到一個(gè)什么樣的水平,這樣學(xué)生自己才有一個(gè)衡量標(biāo)準(zhǔn)。比如,第一次課結(jié)束時(shí),大部分的專業(yè)可能就將C++的概況及特點(diǎn)講解完畢,學(xué)生會(huì)覺(jué)得信息量太大,這時(shí)只需告訴學(xué)生需要掌握C++的幾個(gè)特點(diǎn),可以強(qiáng)調(diào)一下幾個(gè)重點(diǎn)的語(yǔ)句即可。最后,大學(xué)里相鄰兩次課的授課時(shí)間間隔相對(duì)較長(zhǎng),教師上次課講的內(nèi)容到下次課時(shí)學(xué)生容易忘記。這就要求學(xué)生做到課前認(rèn)真預(yù)習(xí),課后復(fù)習(xí)并做練習(xí),以鞏固所學(xué)內(nèi)容。下次上課時(shí),教師可與學(xué)生一起先回顧上次課堂的教學(xué)內(nèi)容,并簡(jiǎn)單闡述一下本次課將要學(xué)習(xí)的內(nèi)容,以做到承上啟下,更好地讓學(xué)生將知識(shí)點(diǎn)連接起來(lái)。
(四)利用網(wǎng)絡(luò)平臺(tái),建立共享機(jī)制
目前好多院校都有自己的教學(xué)網(wǎng)絡(luò)平臺(tái),教師需要將課程大綱、教學(xué)進(jìn)度、課程文檔等內(nèi)容發(fā)布到該平臺(tái)上,這些功能也是大部分教師和學(xué)生對(duì)該平臺(tái)常用的功能。除此之外,在該平臺(tái)上教師也可以建立討論組,學(xué)生可以將學(xué)習(xí)過(guò)程中遇到的問(wèn)題等通過(guò)平臺(tái)反饋給教師,甚至可以進(jìn)行在線的互動(dòng)。
(五)注重實(shí)踐,加強(qiáng)學(xué)生的編程能力,培養(yǎng)學(xué)生良好的編程習(xí)慣
學(xué)習(xí)任何計(jì)算機(jī)編程語(yǔ)言,都需要學(xué)生多加強(qiáng)課后練習(xí),在實(shí)踐中掌握編程技巧及上機(jī)調(diào)試的方法,很多概念和知識(shí)點(diǎn)需要通過(guò)上機(jī)練習(xí)才能更好地理解。同時(shí),練習(xí)也能提高其對(duì)當(dāng)前新的編程語(yǔ)言及應(yīng)用系統(tǒng)軟件的掌握程度和使用能力。編程是一門實(shí)用實(shí)踐性較強(qiáng)的課程,所以學(xué)生實(shí)際編程解決問(wèn)題的能力是檢驗(yàn)教學(xué)成績(jī)的關(guān)鍵。因此,教師需要在教授基本知識(shí)的同時(shí),給學(xué)生創(chuàng)造更多的機(jī)會(huì)編寫可用、實(shí)用性較強(qiáng)的程序。如果條件允許,也可以讓學(xué)生多參與一些課題或項(xiàng)目,以提高學(xué)生的編程能力。
此外,要讓學(xué)生養(yǎng)成一個(gè)良好的編程習(xí)慣,在編寫程序之前先設(shè)計(jì)好流程圖,不要拿到問(wèn)題就開(kāi)始編寫代碼。此外,在編寫源代碼時(shí)應(yīng)盡可能簡(jiǎn)單明晰,易讀性要強(qiáng),直觀明了,可以適當(dāng)?shù)靥砑右恍┳⑨屨Z(yǔ)句,遵守編程過(guò)程中約定俗成的一些標(biāo)準(zhǔn),這樣自己或他人在閱讀程序時(shí)都容易理解。同樣,養(yǎng)成一個(gè)好的編程習(xí)慣對(duì)提高自己的編程水平也會(huì)有一定的幫助。
從以上幾方面進(jìn)行教學(xué)改革,既可以將抽象的理論用通俗易懂的示例進(jìn)行講解,又能讓學(xué)生因?yàn)閷W(xué)以致用而提高學(xué)習(xí)的積極性,能取得非常良好的教學(xué)效果。
四、總結(jié)
計(jì)算機(jī)編程課程既具有嚴(yán)密的邏輯性,又有一定的結(jié)構(gòu)性。學(xué)習(xí)計(jì)算機(jī)編程可以培養(yǎng)學(xué)生運(yùn)用算法解決實(shí)際問(wèn)題的能力。因此,計(jì)算機(jī)編程課程是培養(yǎng)全面發(fā)展、能迎接信息化社會(huì)挑戰(zhàn)的新型人才所必需的,這也是這門課程越來(lái)越受到高校關(guān)注的主要原因之一。
[ 參 考 文 獻(xiàn) ]
[1] 蘇莉蔚,白洪濤,朱曉旭.《C語(yǔ)言程序設(shè)計(jì)》課程教學(xué)改革探討[J].大學(xué)教育,2013(6):122-123.
[2] 時(shí)海亮,汪遠(yuǎn)征.關(guān)于非計(jì)算機(jī)專業(yè)“計(jì)算機(jī)編程”課程設(shè)置的一些思考[J].電子設(shè)計(jì)工程,,2014(8):15-17.
[3] 孟雪梅.在程序設(shè)計(jì)教學(xué)中培養(yǎng)學(xué)生的創(chuàng)新能力[J],JOURNAL OF JILIN COMMERCIAL COLLEGE,2006(1):39-40.
[4] 張青,蘇葉健,高偉鋒.計(jì)算機(jī)編程課程的語(yǔ)境式教學(xué)實(shí)踐[J].南寧職業(yè)技術(shù)學(xué)院學(xué)報(bào),2014(6):61-63.
[責(zé)任編輯:陳 明]