摘要:程序設(shè)計(jì)是計(jì)算機(jī)專業(yè)學(xué)生一門重要基礎(chǔ)課,這一點(diǎn)在特別強(qiáng)調(diào)學(xué)生實(shí)踐能力培養(yǎng)的獨(dú)立學(xué)院,更顯得尤其重要。本文針對(duì)目前在獨(dú)立學(xué)院計(jì)算機(jī)相關(guān)專業(yè)《C++程序設(shè)計(jì)》教學(xué)過程中突顯的問題,進(jìn)行了分析,并提出了相應(yīng)的解決方案。
關(guān)鍵詞:獨(dú)立學(xué)院;C++程序設(shè)計(jì);教學(xué);任務(wù)驅(qū)動(dòng)
中圖分類號(hào):G642文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2008)25-1484-02
Teaching Researches on the C++ Programming Course to Students Major CS in Independent Colleges
LUO Ai-jun
(Computer Science College of Yangtze University, Jingzhou 434023, China)
Abstract: Programming is a very important basic course to students major computer science, and the point is much more important in those independent colleges which pay more attention to training the students' practice ability. The paper aims at lots of problems exposed during the C++ Programming teaching in independent college, analyzes these problems and brings up some corresponding proposals.
Key words: Independent College; C++ Programming; Teaching; Task_driven
1 引言
隨著社會(huì)的飛速發(fā)展,在高等教育日漸大眾化的今天,用人單位對(duì)人才的要求也越來(lái)越高。各大專院校也因此紛紛即時(shí)根據(jù)社會(huì)的需求調(diào)整其人才培養(yǎng)目標(biāo),其中的獨(dú)立學(xué)院把其辦學(xué)思想定位于培養(yǎng)大批社會(huì)急需的應(yīng)用型人才,非常強(qiáng)調(diào)學(xué)生動(dòng)手實(shí)踐能力的培養(yǎng)。
程序設(shè)計(jì)長(zhǎng)期以來(lái)一直是大學(xué)工科各專業(yè)的一門必修課程。尤其對(duì)于計(jì)算機(jī)相關(guān)專業(yè)而言,程序設(shè)計(jì)學(xué)習(xí)情況的好壞,對(duì)計(jì)算機(jī)相關(guān)專業(yè)后續(xù)課程的學(xué)習(xí)將會(huì)產(chǎn)生較大的影響。目前,無(wú)論是搞開發(fā)還是搞研究,對(duì)使用的程序設(shè)計(jì)語(yǔ)言有同樣高的要求:要求能有較好的可靠性,高效率,可以在不同平臺(tái)上移植,有盡可能多的標(biāo)準(zhǔn)化語(yǔ)言內(nèi)容,支持?jǐn)?shù)據(jù)一致性,支持程序描述的簡(jiǎn)潔與清晰,風(fēng)格自然[1]。這些都是C++的外在特點(diǎn),高校計(jì)算機(jī)相關(guān)專業(yè)大多采用C++作為程序設(shè)計(jì)教學(xué)語(yǔ)言,全國(guó)計(jì)算機(jī)等級(jí)考試也把C++作為考試的主要語(yǔ)種,因此做好這門課程的教學(xué)工作具有較大的現(xiàn)實(shí)意義。但目前教學(xué)工作中普遍存在教師覺得不好教,學(xué)生覺得不好學(xué)的問題,本文針對(duì)教學(xué)中出現(xiàn)的問題進(jìn)行思考分析,并提出了相應(yīng)的解決方案。
2 存在的問題
目前在教學(xué)過程當(dāng)中主要存在以下幾個(gè)方面的問題:
(1)教學(xué)目的與學(xué)生的需求存在偏差,學(xué)生學(xué)習(xí)興趣較大,但信心不足。
C++程序設(shè)計(jì)教學(xué)的目的是向?qū)W生介紹計(jì)算機(jī)程序設(shè)計(jì)的基本知識(shí)。讓學(xué)生掌握C++基本語(yǔ)法及面向?qū)ο蟪绦蛟O(shè)計(jì)的基本方法與編程技巧;讓學(xué)生了解常用的算法和數(shù)據(jù)結(jié)構(gòu)知識(shí),能根據(jù)給定的算法,選擇合適的數(shù)據(jù)結(jié)構(gòu)并編制出相應(yīng)的程序。同時(shí)也為本專業(yè)后續(xù)其他課程的學(xué)習(xí)打下堅(jiān)實(shí)的基礎(chǔ)。
對(duì)此學(xué)生們的需求又是什么呢?博客上的調(diào)查結(jié)果反映:約75%同學(xué)希望通過學(xué)習(xí)本課程能開發(fā)出一款實(shí)用小軟件。而我們課堂程序設(shè)計(jì)教學(xué)中甚至沒有涉及到WINDOWS編程,學(xué)生學(xué)完了以后還是不能動(dòng)手寫程序。學(xué)生的需求與上述教學(xué)目的存在一定的偏差。
大部分同學(xué)對(duì)本課程興趣大,學(xué)習(xí)積極性高。但在學(xué)習(xí)一段時(shí)間后,隨著內(nèi)容的深入,難度的增大,便有同學(xué)出現(xiàn)了畏難情緒,甚至認(rèn)為C比C++簡(jiǎn)單,明顯地缺失信心。
(2)教師教學(xué)內(nèi)容和方法單一,師生互動(dòng)不明顯。
教師教學(xué)停留在傳統(tǒng)的傳授課堂知識(shí),對(duì)“師者,傳道、授業(yè)、解惑者也”的理解和認(rèn)識(shí)尚未進(jìn)一步更新。師生在課下的溝通互動(dòng)不明顯,導(dǎo)致學(xué)生在學(xué)習(xí)過程中遇到的問題不能夠及時(shí)地得到解決,這在很大程度上,也影響到學(xué)生學(xué)習(xí)的主動(dòng)性。隨著科技創(chuàng)新和知識(shí)更新速度的加快,我們的教學(xué)內(nèi)容和教學(xué)方法也不能停留在課堂教學(xué)45分鐘“老師講學(xué)生聽”這一舊的模式和舊的層次上。同時(shí),我們面對(duì)的每一個(gè)學(xué)生基礎(chǔ)不盡一樣,學(xué)習(xí)理解知識(shí)的能力也不同,如果采用單一的教學(xué)方法,很顯然是違背“因材施教”的原則的。
(3)沒有充分發(fā)揮實(shí)驗(yàn)教學(xué)的優(yōu)勢(shì)。
現(xiàn)在各高校大部分機(jī)房都已連入INTERNET,而互聯(lián)網(wǎng)絡(luò)對(duì)學(xué)生是一柄雙刃劍。如果上課合理利用網(wǎng)絡(luò)檢索所需資源,則有利于學(xué)習(xí)和掌握知識(shí);反之,如果上課時(shí)間利用網(wǎng)絡(luò)看電影、聽MP3、玩小游戲,或者甚至相互拷貝作業(yè),則不僅沒有任何優(yōu)勢(shì)可言,反而是極有害于教學(xué)的。同時(shí)“互聯(lián)網(wǎng)”和“程序設(shè)計(jì)”二者誰(shuí)對(duì)學(xué)生們的吸引力更大,這一點(diǎn)是不言而喻的,每次上機(jī)人數(shù)眾多,實(shí)驗(yàn)指導(dǎo)教師監(jiān)控管理措施不易實(shí)施。
教師在實(shí)驗(yàn)課上把精力放在指導(dǎo)學(xué)生調(diào)試程序上。作為初學(xué)者,學(xué)生們?cè)诔绦蛘{(diào)試中的問題層出不窮,只能被動(dòng)地等待老師幫忙解決。有時(shí)教師還不得不重復(fù)解決相同的問題,課堂效率低下。傳統(tǒng)的“一問一答”的方式,已經(jīng)不再適合目前的實(shí)驗(yàn)教學(xué)。
因此,在網(wǎng)絡(luò)技術(shù)越來(lái)越發(fā)達(dá)的今天,如何重新讓機(jī)房、讓實(shí)驗(yàn)課發(fā)揮其應(yīng)有的作用是擺在每一位計(jì)算機(jī)教育者面前殛待解決的問題。
3 解決的對(duì)策
3.1 選擇一本合適學(xué)生閱讀的經(jīng)典教材
要選擇一本好的教材,這看起來(lái)是一件很簡(jiǎn)單的事情,似乎也不那么重要,因?yàn)楝F(xiàn)行各作者各出版社的教材上的內(nèi)容大多相差不大。的確,這是事實(shí)。然而,不光授課教師需要認(rèn)真咀嚼教材,學(xué)生們也要認(rèn)真閱讀教材。教師在講臺(tái)上講授,同時(shí)還要求學(xué)生能夠課下自己閱讀教材上的相關(guān)內(nèi)容。國(guó)內(nèi)引進(jìn)的許多多影印版教材,在每一章節(jié)的課后都列出若干的參考文獻(xiàn),引導(dǎo)有余力有興趣的學(xué)生去閱讀[5],既加深了學(xué)生對(duì)教材的理解,也拓展了學(xué)生的視野。一本好的教材,不一定是通俗讀物,需要有一定的難度。過高的難度可能讓學(xué)生望而生畏,但適當(dāng)難度則可能激發(fā)學(xué)生更大的探索的興趣。
3.2 加大學(xué)生的興趣,增強(qiáng)學(xué)習(xí)的信心
興趣是最好的老師!如何培養(yǎng)學(xué)生對(duì)程序設(shè)計(jì)的興趣?當(dāng)他們親自感受到計(jì)算機(jī)程序設(shè)計(jì)的對(duì)當(dāng)今社會(huì)的巨大影響力,便可能對(duì)之產(chǎn)生濃厚的興趣。此外,還要讓他們認(rèn)識(shí)到學(xué)習(xí)程序設(shè)計(jì)目的在于培養(yǎng)學(xué)生用計(jì)算機(jī)解決生產(chǎn)生活中的一些問題,當(dāng)然首要就是本專業(yè)后續(xù)其他課程學(xué)習(xí)過程中的實(shí)際問題的能力。
不是說(shuō)興趣高就意味著會(huì)編程了。眼高手低是學(xué)習(xí)過程中常出現(xiàn)的問題:他們對(duì)老師演示的內(nèi)容都認(rèn)為很簡(jiǎn)單,但讓自己做卻無(wú)從下手。有意識(shí)地鍛煉學(xué)生動(dòng)手編程能力,并引導(dǎo)他們?nèi)〉贸晒Γ瑥某晒χ蝎@取更大的成就感和自信心,這將是他們?cè)诔绦蛟O(shè)計(jì)道路上繼續(xù)前進(jìn)的巨大動(dòng)力。例如,引導(dǎo)學(xué)生利用已學(xué)過的知識(shí),編程實(shí)現(xiàn)簡(jiǎn)單的數(shù)字圖像處理過程。雖然開始時(shí)會(huì)讓大家覺得有困難,比如其中大量陌生的庫(kù)函數(shù)讓人望而生畏,有時(shí)可能自己還要寫一些自定義函數(shù)。但只要做好指導(dǎo)工作并給予適當(dāng)?shù)毓膭?lì),則不僅能激發(fā)學(xué)生的興趣,還能鞏固所學(xué)的知識(shí),而且可以在實(shí)踐中讓他們的思維能力得到提高、編程能力得到鍛煉、創(chuàng)新能力得到增強(qiáng)。
教師要付出足夠的耐心,想方設(shè)法提高學(xué)生的興趣和學(xué)習(xí)熱情,培養(yǎng)和提高他們的創(chuàng)新能力,增強(qiáng)學(xué)生們對(duì)學(xué)好本課程的信心。
3.3 把握教學(xué)重點(diǎn),靈活采用教學(xué)方法,加大師生互動(dòng)
算法設(shè)計(jì)是程序設(shè)計(jì)的核心。我們要將教學(xué)重點(diǎn)從C++基本語(yǔ)法轉(zhuǎn)移到算法設(shè)計(jì)上。有針對(duì)性地設(shè)計(jì)能綜合運(yùn)用已學(xué)和將學(xué)相關(guān)知識(shí)點(diǎn)的實(shí)例,課程上多采用案例教學(xué)。即使是同一本教材,同一個(gè)算法案例,只要我們善于挖掘,也可以推陳出新,找出更易于學(xué)生理解和接受的講授方法。
針對(duì)不同的教學(xué)內(nèi)容,更要靈活采用教學(xué)方法。常用的教學(xué)方法有:類比教學(xué)法、啟發(fā)教學(xué)法、分步教學(xué)法、任務(wù)驅(qū)動(dòng)法[4]等。而其中任務(wù)驅(qū)動(dòng)法在C語(yǔ)言程序設(shè)計(jì)教學(xué)中運(yùn)用較多、效果較好的一種。
除了傳統(tǒng)的師生互動(dòng)方式外,我們還可以采用其他更靈活有效的方式。考慮到學(xué)生們課外在網(wǎng)絡(luò)上花費(fèi)的時(shí)間較多,我們就可以充分利用學(xué)校的精品課程網(wǎng)站的網(wǎng)上答疑論壇子系統(tǒng),還可以利用各大門戶網(wǎng)站提供的免費(fèi)博客系統(tǒng),二者都可以較好地解決課堂45分鐘以外的師生互動(dòng)問題。在實(shí)際教學(xué)中,我們利用TOM BLOG進(jìn)行師生溝通,也取得了很明顯的效果。
3.4 加強(qiáng)上機(jī)實(shí)驗(yàn)指導(dǎo),制訂上機(jī)任務(wù),保證上機(jī)效果
(1) 程序設(shè)計(jì)課程本身實(shí)踐性較強(qiáng),必須安排足夠的上機(jī)學(xué)時(shí)。同時(shí)還要精心設(shè)計(jì)每一次實(shí)驗(yàn)內(nèi)容,讓學(xué)生每一次實(shí)驗(yàn)都有明確的上機(jī)目的。
(2) 學(xué)生明確任務(wù)以后,應(yīng)首先仔細(xì)思考,形成思路,再將思路描述成為C++代碼寫到實(shí)驗(yàn)報(bào)告紙上,待形成完整的程序以后再輸入計(jì)算機(jī)中進(jìn)行編譯。而不是一邊想,一邊輸入代碼。這樣既提高了效率,同時(shí)也提高學(xué)生思考問題的能力。
(3) 針對(duì)學(xué)生在編譯,鏈接過程中出現(xiàn)的錯(cuò)誤或警告,教會(huì)學(xué)生使用調(diào)試工具。學(xué)生在調(diào)試中遇到的疑點(diǎn)和難點(diǎn),及時(shí)給予必要的適當(dāng)指導(dǎo),主要是教給學(xué)生科學(xué)有效的調(diào)試方法,例如等價(jià)類劃分法、邊界值分析法、安插測(cè)試語(yǔ)句等。
(4) 實(shí)驗(yàn)課結(jié)束時(shí),每名學(xué)生必須上交比較規(guī)范的紙質(zhì)實(shí)驗(yàn)報(bào)告(其中除包括程序的源代碼,輸入數(shù)據(jù),程序輸出結(jié)果外,還應(yīng)重點(diǎn)包含程序調(diào)試過程,以及本次實(shí)驗(yàn)體會(huì)),通過以上舉措來(lái)保證學(xué)生完成實(shí)驗(yàn)任務(wù)。課程結(jié)業(yè)考試也必須包括學(xué)生上機(jī)編程能力考核。
(5) 課程結(jié)束以后,分組安排2周的課程設(shè)計(jì)。題目要具有一定的綜合性和較強(qiáng)的實(shí)用性,如學(xué)生信息管理系統(tǒng)等。要求學(xué)生經(jīng)過需求分析,軟件設(shè)計(jì),編碼,測(cè)試等軟件開發(fā)的各階段,最后提交一個(gè)軟件原型及相關(guān)文檔。通過課程設(shè)計(jì)實(shí)踐,提高學(xué)生的軟件開發(fā)水平和合作能力,同時(shí),還可使學(xué)生在以后的學(xué)習(xí)過程中,自覺將計(jì)算機(jī)技術(shù)應(yīng)用到生產(chǎn)和研究過程中,真正做到學(xué)有所用。
在上機(jī)實(shí)驗(yàn)環(huán)節(jié),教師要認(rèn)真做好指導(dǎo)和督促,減少互聯(lián)網(wǎng)絡(luò)等對(duì)學(xué)生注意力的不良干擾,讓學(xué)生在規(guī)定時(shí)間內(nèi)完成指定任務(wù),從而保證實(shí)驗(yàn)教學(xué)效果。
4 結(jié)束語(yǔ)
本文提出了近幾年在獨(dú)立學(xué)院計(jì)算機(jī)專業(yè)《C++程序設(shè)計(jì)》教學(xué)過程中出現(xiàn)的問題,進(jìn)行了思考和探索。對(duì)提出的方案在獨(dú)立2006,2007級(jí)計(jì)科、網(wǎng)絡(luò)專業(yè)本科學(xué)生中實(shí)施,較好地激發(fā)了學(xué)生的興趣,調(diào)動(dòng)了學(xué)生的學(xué)習(xí)積極性,增強(qiáng)了學(xué)生的自信心,日常教學(xué)和計(jì)算機(jī)等級(jí)考試都取得了很好的效果。以上事實(shí)證明,只要教師教學(xué)目的明確,教材理解深入,教學(xué)方法靈活得當(dāng),師生加大互動(dòng),學(xué)生是可以輕松學(xué)好C++程序設(shè)計(jì)的。
參考文獻(xiàn):
[1] 錢能. C++程序設(shè)計(jì)[M]. 北京:清華大學(xué)出版社,2005.
[2] 劉曉鋒, 吳亞娟. 計(jì)算機(jī)專業(yè)《C語(yǔ)言程序設(shè)計(jì)》教學(xué)與教學(xué)改革[J]. 四川師范學(xué)院學(xué)報(bào), 2003(24):34-36.
[3] 孔垂柳,田地. 基于程序設(shè)計(jì)思想的C語(yǔ)言教學(xué)方案[J]. 吉林大學(xué)學(xué)報(bào)(信息科學(xué)版) , 2005,(S2):2.
[4] 王越超,周啟勇. 驅(qū)動(dòng)式教學(xué)法在程序設(shè)計(jì)語(yǔ)言類課程教學(xué)中的應(yīng)用[J]. 廣州市財(cái)貿(mào)管理干部學(xué)院學(xué)報(bào), 2004(3):55-58.
[5] Cay Horstmann, Timothy Budd. Big C++中文版[M]. 北京:電子工業(yè)出版社,2007.