馬云吉
摘要:基于c++程序設(shè)計課程的特點、重要性及目前教學(xué)中存在的問題,從教學(xué)目標(biāo)、教學(xué)內(nèi)容設(shè)計、實驗過程、課程評價及能力提高等教學(xué)的全部環(huán)節(jié),系統(tǒng)地闡述課程教學(xué)改革方法與實施過程。通過教學(xué)的改革,提高學(xué)生程序編寫、調(diào)試和分析問題的能力,激發(fā)學(xué)生學(xué)習(xí)興趣,達(dá)到應(yīng)用型人才培養(yǎng)目標(biāo)。
關(guān)鍵詞:c++程序設(shè)計;教學(xué)改革;編程能力
1、存在的問題
我國高等教育已經(jīng)進(jìn)入大眾化教育階段,隨著高等教育入學(xué)率的不斷提高,很多高校學(xué)生的總體素質(zhì)也在下滑。如何基于學(xué)生的現(xiàn)狀,有針對性地組織教學(xué),對于提高教育教學(xué)質(zhì)量至關(guān)重要。c++程序設(shè)計課程是軟件工程等專業(yè)的專業(yè)基礎(chǔ)課,也是實踐性很強(qiáng)的課程。它的教學(xué)目標(biāo)是培養(yǎng)學(xué)生對專業(yè)學(xué)習(xí)的興趣,掌握c++程序設(shè)計的基本語法,提高程序編寫、調(diào)試、分析能力,養(yǎng)成良好的編程規(guī)范,初步建立起工程意識,為后續(xù)專業(yè)課程的學(xué)習(xí)、軟件項目實訓(xùn)及今后從事軟件開發(fā)打下良好的基礎(chǔ)。
目前,很多軟件學(xué)院采用“3+1”的教學(xué)模式,在校的理論教學(xué)被壓縮到3年完成,課程學(xué)時非常緊張,以遼寧科技大學(xué)軟件學(xué)院為例,傳統(tǒng)教學(xué)中的c語言程序設(shè)計(64學(xué)時)和c++程序設(shè)計(64學(xué)時)兩門課程被壓縮到一個學(xué)期96學(xué)時加以完成,任務(wù)難度大。因為該課程的教學(xué)效果直接影響著后續(xù)課程學(xué)習(xí),有很多學(xué)生正是因為沒有入門,對專業(yè)沒有興趣,導(dǎo)致后續(xù)核心專業(yè)課程的學(xué)習(xí)困難。很多C++程序設(shè)計教材,例題主要還是為了配合講解c++語法的知識點而設(shè)置,前后章節(jié)的例題聯(lián)系很少,從而導(dǎo)致學(xué)生不知道前面的程序?qū)竺嬲鹿?jié)有什么用處。因此需要對理論教學(xué)與實驗教學(xué)內(nèi)容進(jìn)行有機(jī)整合。很多學(xué)生實驗準(zhǔn)備不充分,導(dǎo)致課堂實驗未能完成任務(wù)要求,程序拷貝抄襲現(xiàn)象嚴(yán)重。課后教師只是根據(jù)學(xué)生實驗情況給予成績評價,卻很少對掌握知識有欠缺的學(xué)生進(jìn)行后續(xù)幫助。針對上述問題,結(jié)合學(xué)生現(xiàn)狀,積極應(yīng)對,在教學(xué)的各個環(huán)節(jié)進(jìn)行系統(tǒng)探索,提出行之有效且又具有可操作性的方案。針對c++程序設(shè)計課程,很多教師基于個人教學(xué)經(jīng)驗積累,項目驅(qū)動式,工程教育模式,提出相應(yīng)改革方案。
2、教學(xué)改革與實踐
2.1 教學(xué)目標(biāo)
軟件工程本科畢業(yè)生的培養(yǎng)目標(biāo)是軟件工程領(lǐng)域的工程應(yīng)用型人才。因此對于C++程序設(shè)計課程而言,就是要求學(xué)生掌握c++程序的基本語法,能夠編寫簡單的應(yīng)用程序,培養(yǎng)學(xué)生程序設(shè)計、調(diào)試和分析問題的能力。其宗旨就是要增加學(xué)生的實際動手能力,通過實驗環(huán)節(jié)來提高。計算機(jī)語言是軟件專業(yè)人員與計算機(jī)交流的工具,計算機(jī)是嚴(yán)格的老師,只有通過計算機(jī)檢驗的程序才是合格的。
2.2 教學(xué)內(nèi)容的設(shè)計
c++程序設(shè)計課程的教學(xué)知識點是相對固定的,改革的主要目標(biāo)是教學(xué)內(nèi)容的整合與案例的設(shè)計。為達(dá)到教學(xué)目標(biāo),要求教師能夠?qū)⒗碚摻虒W(xué)與實驗教學(xué)有機(jī)結(jié)合,設(shè)計好理論教學(xué)案例與實驗教學(xué)內(nèi)容。在教學(xué)內(nèi)容設(shè)置上,根據(jù)教學(xué)的知識點,以實用性、設(shè)計性案例為主,綜合性、趣味性案例為輔。實驗教學(xué)內(nèi)容要與理論教學(xué)案例相聯(lián)系,前后章的實驗內(nèi)容相聯(lián)系,做到案例驅(qū)動教學(xué),在全部實驗結(jié)束后,整合在一起的就是完整的小型應(yīng)用軟件。因為是入門課程,案例難度不能太大。這樣,學(xué)生會知道學(xué)習(xí)課程的目的,才會有成就感。在教學(xué)中,我們的做法是在數(shù)組、函數(shù)、指針、結(jié)構(gòu)等教學(xué)知識點的講授中,在精講理論的基礎(chǔ)上,教學(xué)案例重點介紹線性結(jié)構(gòu)的數(shù)據(jù)的基本操作,如插入,刪除,排序,查找等,隨著知識點的不斷深入,不斷完善這些案例,最后在面向?qū)ο笳鹿?jié)中,將前面的基本操作整合在一起,形成綜合性案例(學(xué)生管理系統(tǒng)),該系統(tǒng)中可以用到數(shù)組、函數(shù)、指針、結(jié)構(gòu)、類、異常處理等幾乎C++程序涉及的所有知識點。
2.3 實踐環(huán)節(jié)
實踐環(huán)節(jié)包括課前實驗準(zhǔn)備、課堂完成實驗任務(wù)、課后反饋實驗結(jié)果等。對于課前實驗準(zhǔn)備要求學(xué)生根據(jù)事先布置的實驗任務(wù)完成準(zhǔn)備工作,對于稍微復(fù)雜的問題可以由學(xué)生自行組織討論,并且要每位學(xué)生形成書面資料。實驗準(zhǔn)備時要強(qiáng)調(diào)代碼的可讀性、可重用性和可維護(hù)性,早日使學(xué)生建立起工程意識。實驗準(zhǔn)備內(nèi)容包括實驗所需的源程序代碼和程序運行所需的測試數(shù)據(jù)及預(yù)期的運行結(jié)果等。沒有實驗準(zhǔn)備,課堂實驗的目的性不明確,實驗質(zhì)量也無從談起。在這一點上,要求任課教師必須加強(qiáng)督促與檢查,讓學(xué)生養(yǎng)成習(xí)慣。課堂實驗環(huán)節(jié)中,要求學(xué)生盡量獨立完成實驗任務(wù),特別是語法錯誤,要力爭自行解決,才會有很多親身的真實感受和經(jīng)驗積累,否則學(xué)生程序調(diào)試能力無法提高,且容易形成對教師的依賴性。因為學(xué)生人數(shù)多,光靠一名任課教師無法幫助學(xué)生全部完成任務(wù)。教師主要負(fù)責(zé)宏觀指導(dǎo),對學(xué)生出現(xiàn)的關(guān)鍵的技術(shù)問題給予提示與指導(dǎo)。每次實驗要對部分學(xué)生進(jìn)行抽查,主要檢查學(xué)生是否真正完成,是否存在抄襲等問題。實驗結(jié)束時,學(xué)生要將正確的實驗代碼在實驗準(zhǔn)備資料上更正并保留,作為作業(yè)上交,同時提交電子版,包括實驗代碼及運行結(jié)果等內(nèi)容的實驗報告。實驗結(jié)束后,教師要及時批閱實驗報告,對于未完成實驗要求者,特別是實驗雷同者,要給予幫助或嚴(yán)肅批評,并督促重新完成實驗任務(wù)。還應(yīng)對學(xué)生實驗環(huán)節(jié)出現(xiàn)的普遍性問題利用課余時間由教師組織學(xué)生進(jìn)行小組討論,并給予講評。
2.4 考核
課程考核以期末筆試(50%)、上機(jī)測試(30%)、平時實驗及作業(yè)實驗(20%)的方式進(jìn)行綜合評價??己伺c課程的教學(xué)目標(biāo)相一致,側(cè)重于程序編寫、調(diào)試能力的考核,因此要增加實驗綜合測試環(huán)節(jié)(上機(jī)測試),作為實驗成績評價的主要依據(jù),如果實驗測試環(huán)節(jié)不合格,則總評成績記為不合格。日常實驗可以占20%的比重,期末考試主要考察學(xué)生的程序閱讀、程序完善、程序編寫等,目前以筆試方式進(jìn)行,今后可采用上機(jī)測試方式,取消筆試測試環(huán)節(jié)。實踐證明該考核方式符合課程的培養(yǎng)目標(biāo)和示范性軟件學(xué)院應(yīng)用型人才培養(yǎng)目標(biāo)。
2.5 能力提高
除傳統(tǒng)課堂實驗外,還開展課程設(shè)計、典型程序分析與設(shè)計等實踐環(huán)節(jié),并組織c++程序設(shè)計興趣小組,C++程序設(shè)計大賽等。對學(xué)習(xí)興趣濃厚且學(xué)有余力的學(xué)生引導(dǎo)他們參加國際大學(xué)生程序設(shè)計競賽(ACM)小組,通過學(xué)生參加ACM小組系統(tǒng)的日常訓(xùn)練,強(qiáng)化其程序設(shè)計、調(diào)試、分析問題與解決問題能力;通過參加競賽,培養(yǎng)學(xué)生的自信心和學(xué)習(xí)興趣,并明確自身不足。近幾年已經(jīng)形成了一個以老帶新,在專業(yè)教師指導(dǎo)下的ACM小組,學(xué)生們每天利用業(yè)余時間進(jìn)行編程訓(xùn)練及競賽所需基礎(chǔ)知識的補(bǔ)充,在遼寧省省賽、東北四省賽中均有學(xué)生獲獎,成績斐然。對基礎(chǔ)和理解能力相對不足的學(xué)生加強(qiáng)督促與幫助,采取“任務(wù)式”輔導(dǎo),通過任課教師的指導(dǎo),完成正常實驗或作業(yè)中出錯的程序調(diào)試,避免學(xué)生產(chǎn)生厭學(xué)情緒;另外將學(xué)生分組,參與大學(xué)生科研訓(xùn)練項目或適當(dāng)布置一些難度較大的綜合性作業(yè),讓學(xué)生自主查閱資料,拓展視野,提高水平,并培養(yǎng)團(tuán)隊合作意識。
3、教學(xué)改革效果
通過上述環(huán)節(jié)的努力,學(xué)生的學(xué)習(xí)興趣、程序編寫能力和程序調(diào)試能力有了很大提高。做到引導(dǎo)優(yōu)秀學(xué)生參加ACM競賽,提高水平,拓展視野;基礎(chǔ)差的學(xué)生力爭不掉隊。另外,通過該課程的鍛煉,也為后續(xù)課程數(shù)據(jù)結(jié)構(gòu)、算法設(shè)計等課程在編程規(guī)范、編程習(xí)慣、編程能力等方面奠定了基礎(chǔ)??陀^上學(xué)生能力的提高要靠教師與學(xué)生共同努力,特別是學(xué)生的主動學(xué)習(xí)與思考。
4、結(jié)語
以案例驅(qū)動式為主要教學(xué)模式在教師中達(dá)成一致,在學(xué)生中得到肯定與好評。因為是專業(yè)入門課程,學(xué)生理解上有一定難度,特別是軟件學(xué)院學(xué)生起點稍低,因此,教師的責(zé)任心與投入也是至關(guān)重要的。教育是良心工程,需要教師適應(yīng)新形勢,付出更多的努力,給予學(xué)生更多的督促與幫助,共同提高教育教學(xué)質(zhì)量。endprint