摘要:本文針對(duì)《C++程序設(shè)計(jì)》課程教學(xué)中存在的問(wèn)題,從教學(xué)方法、教學(xué)手段、實(shí)踐環(huán)節(jié)、課程設(shè)計(jì)以及考核方式等方面進(jìn)行了教學(xué)改革,通過(guò)比較兩個(gè)年級(jí)學(xué)生的學(xué)習(xí)效果,該教學(xué)改革達(dá)到了提高學(xué)生編程能力、改善教學(xué)效果的目的。
關(guān)鍵詞:面向?qū)ο蟪绦蛟O(shè)計(jì)C++程序設(shè)計(jì)語(yǔ)言教學(xué)改革和實(shí)踐算法教學(xué)計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)
1 概述
C++是當(dāng)今面向?qū)ο筌浖_發(fā)的主流語(yǔ)言,也是高校計(jì)算機(jī)及相關(guān)專業(yè)的一門重要基礎(chǔ)課。根據(jù)我校三本學(xué)生的實(shí)際,傳統(tǒng)的教師課堂主講、學(xué)生課下自主學(xué)習(xí)的教學(xué)方法已經(jīng)不能適應(yīng)我校學(xué)生的學(xué)習(xí)需要。為了加深學(xué)生對(duì)C++知識(shí)點(diǎn)的掌握程度,切實(shí)提高學(xué)生的程序編寫能力,對(duì)《C++程序設(shè)計(jì)》課程的教學(xué)進(jìn)行了改革和實(shí)踐。
2 教學(xué)實(shí)際中存在的問(wèn)題
2.1 c語(yǔ)言基礎(chǔ)薄弱,抽象思維能力差 雖然我校學(xué)習(xí)《C++程序設(shè)計(jì)》的學(xué)生,都已學(xué)習(xí)過(guò)《C語(yǔ)言程序設(shè)計(jì)》,但由于沒(méi)有使用C語(yǔ)言開發(fā)項(xiàng)目的經(jīng)驗(yàn),所以對(duì)后續(xù)學(xué)習(xí)很重要的基礎(chǔ)知識(shí)點(diǎn),例如自定義數(shù)據(jù)類型、自定義函數(shù)、指針的掌握不夠,在此基礎(chǔ)上再來(lái)學(xué)習(xí)C++中的更多新知識(shí),自然造成理解上的困難。特別是學(xué)生易受C語(yǔ)言面向過(guò)程的編程模式的影響,思維很難向面向?qū)ο蟮木幊棠J睫D(zhuǎn)變。
2.2 自主學(xué)習(xí)能力不夠 我校三本學(xué)生中的大多數(shù)學(xué)習(xí)興趣難以持續(xù),學(xué)習(xí)主動(dòng)性不夠,不會(huì)很好地預(yù)習(xí)和課后復(fù)習(xí),更不會(huì)主動(dòng)的吸取相關(guān)知識(shí),每次等老師講解,課下上機(jī)實(shí)踐較少,所以傳統(tǒng)的教師課堂主講、學(xué)生課下自主學(xué)習(xí)的教學(xué)方法在我校教學(xué)中并不受用。
2.3 知識(shí)點(diǎn)驅(qū)動(dòng)的教學(xué)方法 傳統(tǒng)教學(xué)中采用知識(shí)點(diǎn)驅(qū)動(dòng),按照知識(shí)點(diǎn)之間的先后順序,先進(jìn)行知識(shí)點(diǎn)的講解,然后用小案例來(lái)幫助學(xué)生理解和消化,這樣的教學(xué)方法,使得學(xué)生在有參照的情況下,當(dāng)下能編寫程序,但是學(xué)生對(duì)知識(shí)點(diǎn)的應(yīng)用能力、獨(dú)立編程能力以及解決大型實(shí)際問(wèn)題的能力會(huì)比較差。
2.4 考核方式重理論輕實(shí)踐 我校在以往的教學(xué)中采用閉卷筆試的考核方式,學(xué)生為應(yīng)付考試而死記硬背理論知識(shí)。學(xué)生雖然能掌握基本概念和基礎(chǔ)知識(shí),順利通過(guò)課程考試,但是知識(shí)的綜合運(yùn)用能力、實(shí)際編程能力在考試中并不能體現(xiàn)。
3 教學(xué)改革的基本思路與開展方法
3.1 重視第一節(jié)課的教學(xué) 在第一堂課上,給學(xué)生分析該課程在專業(yè)知識(shí)領(lǐng)域中的地位和作用,演示一些用C++語(yǔ)言實(shí)現(xiàn)的有趣而實(shí)用的案例,比如“圖書管理系統(tǒng)”、“可視化計(jì)算器”,介紹C++的學(xué)習(xí)方法與經(jīng)驗(yàn)等,通過(guò)這些讓學(xué)生在第一節(jié)課上了解到該課程的重要性、趣味性以及可學(xué)性,以提高學(xué)生的學(xué)習(xí)興趣和學(xué)習(xí)信心。
3.2 階梯式教學(xué)方法,采用大案例貫整個(gè)教學(xué)過(guò)程
在學(xué)期的前四周,做好開課前的前導(dǎo)課程《C語(yǔ)言程序設(shè)計(jì)》的復(fù)習(xí)工作,主要復(fù)習(xí)函數(shù)、指針、結(jié)構(gòu)體等難點(diǎn),突出C++對(duì)C的擴(kuò)展,如符號(hào)常量、引用、名稱空間等,鞏固學(xué)生的C語(yǔ)言基礎(chǔ),為后面C++類與對(duì)象、繼承、多態(tài)的學(xué)習(xí)打下基礎(chǔ)。在教學(xué)過(guò)程中把知識(shí)點(diǎn)融入到實(shí)際的案例中去,案例選用規(guī)模較大、典型、有實(shí)用價(jià)值的,比如“可視化計(jì)算器的開發(fā)”,該案例代碼的編寫與調(diào)試可貫穿于整個(gè)教學(xué)過(guò)程,這樣既可以提高學(xué)生的學(xué)習(xí)興趣,又有利于知識(shí)點(diǎn)的鞏固,以提高學(xué)生的實(shí)踐動(dòng)手能力和解決實(shí)際問(wèn)題的能力。
3.3 各種教學(xué)手段相互補(bǔ)充 在教學(xué)中綜合利用多媒體教學(xué)、板書教學(xué)、網(wǎng)絡(luò)教學(xué)等多種教學(xué)手段,取長(zhǎng)補(bǔ)短,提高課堂教學(xué)效果。課堂教學(xué)中使用多媒體與板書相結(jié)合的手段,比如講解算法的設(shè)計(jì)過(guò)程,采用板書的形式,放慢講解速度,加深學(xué)生的印象;對(duì)于課程中難以理解的抽象內(nèi)容,采用多媒體進(jìn)行直觀展示和動(dòng)態(tài)模擬。采用網(wǎng)絡(luò)教學(xué)作為課堂教學(xué)的有益補(bǔ)充。利用網(wǎng)絡(luò)如Email、QQ,學(xué)生與教師以及學(xué)生與學(xué)生之間可以就學(xué)習(xí)中的問(wèn)題進(jìn)行交流。借此,學(xué)生的問(wèn)題能夠得到及時(shí)解決,教師也能及時(shí)獲得教學(xué)效果的反饋信息。
3.4 充分利用網(wǎng)絡(luò)教學(xué)平臺(tái),培養(yǎng)自主學(xué)習(xí)能力 在教學(xué)過(guò)程中,在學(xué)校網(wǎng)絡(luò)課程平臺(tái)上搭建教師、學(xué)生交互式C++課程網(wǎng)絡(luò)學(xué)習(xí)平臺(tái),提供課堂教案、教學(xué)視頻、示例代碼、課堂作業(yè)等共享資源以充實(shí)教學(xué)內(nèi)容,進(jìn)行在線答疑等,增加師生、生生互動(dòng),最大限度地發(fā)揮學(xué)生學(xué)習(xí)的積極性和主動(dòng)性,激發(fā)學(xué)生學(xué)習(xí)的興趣。
3.5 突出面向?qū)ο蟮木幊趟枷?,注重算法教學(xué) 課程一共48學(xué)時(shí),其中理論36學(xué)時(shí),實(shí)踐12學(xué)時(shí),針對(duì)課時(shí)較少的實(shí)際,在課程教學(xué)中,不能再泛泛介紹面向?qū)ο驝++的語(yǔ)法框架,應(yīng)注重算法和面向?qū)ο蟪绦蛟O(shè)計(jì)方法,在尋找算法中不斷培養(yǎng)學(xué)生的獨(dú)立思考和創(chuàng)新能力,突出C++的特性:封裝、繼承、多態(tài),增加STL部分的教學(xué)內(nèi)容,讓學(xué)生在面向?qū)ο蟮某绦蛟O(shè)計(jì)過(guò)程中體會(huì)面向?qū)ο蟮木幊趟枷搿?/p>
3.6 加強(qiáng)實(shí)踐教學(xué),突出編程能力的培養(yǎng) 在C++語(yǔ)言的實(shí)踐過(guò)程中,采用Visual C++ 6.0中的控制臺(tái)方式。在實(shí)踐內(nèi)容方面,基于“少一些驗(yàn)證性的實(shí)踐內(nèi)容,多一些設(shè)計(jì)性、綜合性的實(shí)踐內(nèi)容;實(shí)踐的內(nèi)容不僅要有針對(duì)性,更要能緊密聯(lián)系實(shí)際;實(shí)踐的內(nèi)容盡可能要求學(xué)生能夠獨(dú)立設(shè)計(jì)、編程,教師在實(shí)踐中僅起引導(dǎo)和輔導(dǎo)的作用”的原則,根據(jù)課時(shí)共安排了“C++編程基礎(chǔ)”(側(cè)重于C++對(duì)C的擴(kuò)展)、“類與對(duì)象”、“構(gòu)造函數(shù)與析構(gòu)函數(shù)的定義與使用”、“運(yùn)算符重載、靜態(tài)成員、友元函數(shù)”、“繼承”、“多態(tài)與模板”等六次實(shí)踐,通過(guò)實(shí)踐,進(jìn)一步鞏固了課堂學(xué)過(guò)的內(nèi)容,培養(yǎng)了學(xué)生的創(chuàng)新能力。
3.7 開展課程設(shè)計(jì) 課程學(xué)習(xí)結(jié)束后,針對(duì)所學(xué)內(nèi)容安排為時(shí)2周的課程設(shè)計(jì)。學(xué)生按3人進(jìn)行自由組合分組,選出一名項(xiàng)目負(fù)責(zé)人。針對(duì)老師給定的題目,進(jìn)行相關(guān)的調(diào)研工作,從系統(tǒng)需求出發(fā),完成“功能設(shè)計(jì)”、“模塊劃分”、“算法設(shè)計(jì)與優(yōu)化”并最終“系統(tǒng)實(shí)現(xiàn)”,在整個(gè)課程設(shè)計(jì)的過(guò)程中,強(qiáng)調(diào)各組員的團(tuán)隊(duì)協(xié)作能力,文檔寫作能力和程序開發(fā)能力,“項(xiàng)目負(fù)責(zé)任人”對(duì)組員進(jìn)行任務(wù)分配、項(xiàng)目監(jiān)控和小組評(píng)審考核。課程設(shè)計(jì)完成后,各小組抽一名組員組成答辯小組,完成設(shè)計(jì)成果的答辯與判分,有效減少了小組中個(gè)別組員不參與項(xiàng)目開發(fā),享受其他組員勞動(dòng)成果的現(xiàn)象。
3.8 考核方式采用實(shí)踐、理論、課程設(shè)計(jì)相結(jié)合的多元化方式,突出實(shí)踐能力 課程采用理論考試(50%)、實(shí)驗(yàn)考查(30%)和課程設(shè)計(jì)(20%)相結(jié)合的方式進(jìn)行考核。理論考試中考查學(xué)生對(duì)基本概念的理解和對(duì)基礎(chǔ)知識(shí)的掌握程度,包括課堂測(cè)驗(yàn)(30%)、期中考試(30%)和期末考試(40%),通過(guò)這些考試可檢測(cè)學(xué)生每一階段知識(shí)點(diǎn)的掌握情況。實(shí)驗(yàn)考查著重考查學(xué)生的動(dòng)手能力,包括實(shí)驗(yàn)報(bào)告書寫能力和程序代碼開發(fā)能力。課程設(shè)計(jì)考查學(xué)生對(duì)知識(shí)的綜合應(yīng)用能力、團(tuán)隊(duì)協(xié)作能力。通過(guò)多元化考核,激勵(lì)學(xué)生的學(xué)習(xí)主動(dòng)性,從而全面提高教學(xué)質(zhì)量。
4 教學(xué)效果
08級(jí)計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)教學(xué)中采用傳統(tǒng)的教學(xué)方式、09級(jí)教學(xué)中采用改革后的教學(xué)方式。09級(jí)學(xué)生相比08級(jí)學(xué)生而言,更能通過(guò)各種方式與任課老師溝通,討論學(xué)習(xí)中遇到的問(wèn)題,比較多的同學(xué)會(huì)利用網(wǎng)絡(luò)平臺(tái)選作練習(xí)題,檢測(cè)自己的學(xué)習(xí)效果。從課程設(shè)計(jì)《可視化計(jì)算器的開發(fā)》的完成情況來(lái)看,09級(jí)學(xué)生能進(jìn)行團(tuán)隊(duì)合作、問(wèn)題分析、程序設(shè)計(jì)、代碼編寫、報(bào)告寫作等,他們的團(tuán)隊(duì)協(xié)作能力、問(wèn)題分析能力、程序設(shè)計(jì)能力以及報(bào)告的寫作能力均好于08級(jí)學(xué)生。從期末考核結(jié)果來(lái)看,09級(jí)學(xué)生的及格率為95.34%,優(yōu)秀率為25.17%,08級(jí)學(xué)生的及格率為85.33%,優(yōu)秀率為15.12%。
5 結(jié)論
針對(duì)三本學(xué)生學(xué)習(xí)《C++程序設(shè)計(jì)》課程中實(shí)際遇到的問(wèn)題,從教學(xué)方法、教學(xué)手段、實(shí)踐教學(xué)、課程設(shè)計(jì)以及考核方式等方面對(duì)課程教學(xué)進(jìn)行了改革,通過(guò)比較計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)08級(jí)與09級(jí)學(xué)生的學(xué)習(xí)效果,09級(jí)學(xué)生在自主學(xué)習(xí)能力、知識(shí)掌握情況、算法分析能力以及實(shí)際編程能力等方面均較08級(jí)學(xué)生有所提高,可以看出該改革達(dá)到了提高學(xué)生編程能力、改善教學(xué)效果的目的。
參考文獻(xiàn):
[1]陳志泊,王春玲.面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言—C++[M].北京:人民郵電出版社,2002.
[2]周立章.C++面向?qū)ο蟪绦蛟O(shè)計(jì)課程教學(xué)探索與實(shí)踐[J].西華大學(xué)學(xué)報(bào)(哲學(xué)社會(huì)科學(xué)版),2005,增刊:257-258.
[3]孫庚.項(xiàng)目教學(xué)法在“C++程序設(shè)計(jì)”課程教學(xué)中的實(shí)踐[J].教育與教學(xué)研究,2008(2):51-54.
[4]錢能.C++程序設(shè)計(jì)教程[M].北京:清華大學(xué)出版社,2005.
[5]吳乃陵,況迎輝.C++程序設(shè)計(jì)[M].北京:高等教育出版社,2006
[6]聶永紅,李春貴,劉永娟.《高級(jí)語(yǔ)言程序設(shè)計(jì)》課程的改革與實(shí)踐研究[J].教學(xué)與管理,2006,(18):93-94.
[7]符蘊(yùn)芳,趙英豪.面向?qū)ο蟪绦蛟O(shè)計(jì)教學(xué)改革與實(shí)踐[J].中國(guó)成人教育,2010,(11):184-185.