孫偉峰 王艷
摘要文章針對在程序設(shè)計語言C/C++課程教學(xué)過程中遇到的實際問題,結(jié)合自己的思考、體會與實踐,就如何設(shè)計教學(xué)內(nèi)容、激發(fā)并保持學(xué)生的學(xué)習(xí)興趣、改進教學(xué)手段與教學(xué)方法、加強實踐教學(xué)與改革考核方式等方面提出了自己的觀點。教學(xué)實踐表明,在教學(xué)過程中采用這些方法能夠較好地解決教學(xué)中的實際問題,教學(xué)效果良好。
關(guān)鍵詞C++語言教學(xué)方法教學(xué)實踐
中圖分類號:G642.41 文獻標識碼:A
《程序設(shè)計語言C/C++》是我院大學(xué)生學(xué)習(xí)程序設(shè)計語言的入門課程,旨在向?qū)W生介紹計算機程序設(shè)計的基本知識,使學(xué)生掌握編程的基本思想,培養(yǎng)學(xué)生分析問題、解決問題的基本能力,同時為后續(xù)相關(guān)課程的學(xué)習(xí)打下良好的基礎(chǔ)。該課程教學(xué)內(nèi)容包括面向過程的程序設(shè)計與面向?qū)ο蟮某绦蛟O(shè)計兩部分,涉及到的內(nèi)容多,概念復(fù)雜,語法、規(guī)則繁多且實踐性強,對于初學(xué)程序設(shè)計的學(xué)生具有一定的難度,學(xué)生普遍反映該課程比較抽象、難學(xué)。
本文針對在C++程序設(shè)計教學(xué)過程中遇到的實際問題,結(jié)合本門課程面向?qū)W生群體的特點,對教學(xué)的各個環(huán)節(jié)進行了思考與總結(jié),提出了一些有利于提高教學(xué)質(zhì)量的措施與方法。
1 優(yōu)選教學(xué)內(nèi)容,注重培養(yǎng)學(xué)生的學(xué)習(xí)興趣
1.1 精心備課,圍繞關(guān)鍵內(nèi)容精講多練
要講好一門課,首先要精心備好課。備課既要備課程,也要備學(xué)生。備課程主要是把握好每堂課的學(xué)習(xí)目標、學(xué)習(xí)重點和難點,設(shè)計好講解的思路;而備學(xué)生則是要充分考慮學(xué)生的實際情況,從學(xué)生學(xué)習(xí)的角度出發(fā)來設(shè)計教學(xué)內(nèi)容和講解方法,確保學(xué)生愿意學(xué)、容易學(xué)也能學(xué)會。同時,由于該課程內(nèi)容多、學(xué)時少,內(nèi)容講解時不可能面面俱到,需要優(yōu)化教學(xué)內(nèi)容,做到抓住主線,突出重點,把握難點。本課程教學(xué)中,面向?qū)ο蟮某绦蛟O(shè)計由于其概念抽象,學(xué)生學(xué)習(xí)起來較為困難,是本門課程的教學(xué)重點與難點。要加大該部分內(nèi)容的學(xué)時分配,并改進教學(xué)方法,應(yīng)用舉例、類比等方式,將抽象的概念具體化、實例化,對重點難點內(nèi)容做精心講評,反復(fù)練習(xí),這樣,才可以在有限的學(xué)時內(nèi)取得較好的教學(xué)效果。
1.2 激發(fā)并保持學(xué)生的學(xué)習(xí)興趣
興趣是推動學(xué)生積極主動學(xué)習(xí)的直接動力,想讓學(xué)生學(xué)好這門課程,首先要喚起學(xué)生的學(xué)習(xí)興趣。程序設(shè)計語言類課程的優(yōu)勢是實踐性強,學(xué)生通過編寫程序能夠產(chǎn)生成就感,感興趣也樂意學(xué),在教學(xué)過程中要充分發(fā)揮好這種優(yōu)勢,注意激發(fā)并保持學(xué)生的學(xué)習(xí)興趣。在上第一堂課時,就要給學(xué)生強調(diào)學(xué)習(xí)這門課程的重要性:作為一門主流編程語言,C++是從事工程領(lǐng)域的工作及科學(xué)研究的必備工具,學(xué)好它,無疑可以為今后的工作及科研提供重要的技術(shù)支撐;可以培養(yǎng)縝密的邏輯思維,提高分析問題以及利用計算機解決問題的能力;可以為今后學(xué)習(xí)其他面向?qū)ο蟮恼Z言奠定良好的基礎(chǔ)等。然后,給學(xué)生演示幾個用C++語言開發(fā)的應(yīng)用軟件及工程項目實例,讓學(xué)生真切地感受到C++語言的神秘與魅力。在隨后的教學(xué)過程中,要精心組織教學(xué)內(nèi)容,設(shè)計教學(xué)方法,穿插一些具有趣味性及實用性的實例,讓學(xué)生體會到編程的快樂,使他們的學(xué)習(xí)興趣在整個課程的學(xué)習(xí)過程中得以保持,從而達到主動學(xué)習(xí)的目的。
2 優(yōu)化教學(xué)方法與教學(xué)方式,提高教學(xué)質(zhì)量
2.1 從問題出發(fā),進行互動式教學(xué)與啟發(fā)式教學(xué)
傳統(tǒng)的教學(xué)方式一般采用以教師為中心的講授型教學(xué),按照章節(jié)內(nèi)容依次介紹,這種灌輸式的教學(xué)模式能夠較好地保證所授知識的系統(tǒng)性,但教學(xué)過程太過枯燥,學(xué)生學(xué)習(xí)的積極性不高。與此相比,采用教師為主導(dǎo),學(xué)生為主體的模式進行互動式教學(xué)與啟發(fā)式教學(xué),可以很好地改善這種狀況。C++語言邏輯性強,前后章節(jié)內(nèi)容之間存在很強的內(nèi)在聯(lián)系,可以按照“提出問題-解決問題-歸納分析”的思想來設(shè)計教學(xué)過程。在授課的過程中,根據(jù)講課內(nèi)容設(shè)置一些趣味性的問題,然后以互動的方式引導(dǎo)學(xué)生主動地去思考、解決這些問題,學(xué)生很自然地就掌握了要講的內(nèi)容。這樣,一方面可以活躍課堂氣氛,激發(fā)學(xué)生的學(xué)習(xí)興趣;另一方面,經(jīng)過思考、分析來解決問題的過程,也加深了學(xué)生對所學(xué)知識的理解。
2.2 開展實例教學(xué)
C++語言語法、規(guī)則繁雜,知識點多,如果孤立地進行各個知識點的講解會讓學(xué)生感到枯燥無趣,不能專心聽講;即使聽懂了,也不知道應(yīng)該怎么應(yīng)用到具體的編程中。采用實例教學(xué)的方法,將各個知識點的講解融入到具體的教學(xué)實例中,并有目的地設(shè)計一些容易掉入的“陷阱”,這樣,容易引起學(xué)生的學(xué)習(xí)興趣,加深對知識點的理解,并讓學(xué)生認識到應(yīng)用這些知識點時應(yīng)該注意的問題,在實際編程過程中避免出現(xiàn)類似錯誤。在實例教學(xué)中,實例的選取尤為重要,必須切合當前的教學(xué)內(nèi)容、代表性強、啟發(fā)性好且有趣味性。可以結(jié)合實際工程項目的編程實例,將C++語言在實際工程中的應(yīng)用娓娓道來,讓學(xué)生感到C++編程是“真功夫”,而不是紙上談兵,以激發(fā)學(xué)生的學(xué)習(xí)熱情。
2.3 踐行反饋教學(xué)
教學(xué)過程是教師與學(xué)生交互的過程,教師不但要看自己教授了什么,更重要的是看學(xué)生學(xué)會了什么。反饋教學(xué)法就是從學(xué)生反饋的問題入手,通過及時講評,解決學(xué)生學(xué)習(xí)中遇到的各類問題,以達到預(yù)期的教學(xué)目標。反饋教學(xué)可分為課堂反饋,課下答疑反饋、作業(yè)反饋、上機實驗反饋等多種形式,對學(xué)生在學(xué)習(xí)過程中反映出來的困難和疑惑及時進行解答,并對普遍遇到的典型問題進行歸類講解。采用反饋教學(xué)的方法,可以及時地掌握學(xué)生的學(xué)習(xí)動態(tài),有針對性地解決學(xué)生在學(xué)習(xí)過程中遇到的問題和困惑。
2.4 采用多媒體與板書相結(jié)合的教學(xué)方式
多媒體教學(xué)是程序設(shè)計語言類課程的主要授課方式。與板書教學(xué)相比,多媒體教學(xué)具有生動、直觀、形象等諸多優(yōu)勢。然而,任何事物都具有兩面性,多媒體教學(xué)也有其不足之處:大量的文字、圖片、動畫等的出現(xiàn),容易分散學(xué)生的注意力,影響學(xué)生的主動思考;不利于知識點的連貫表達與分析;學(xué)生不記筆記,導(dǎo)致對課堂內(nèi)容理解不夠深刻。
板書教學(xué)借助其靈活性可以很好地彌補多媒體教學(xué)的這些不足。在授課過程中采用多媒體、板書與現(xiàn)場編程相結(jié)合的教學(xué)方式,問題描述用多媒體展示,分析過程、重點內(nèi)容、關(guān)鍵代碼及易出錯的地方用板書講解、程序?qū)崿F(xiàn)用編譯環(huán)境演示。講解程序時,一邊講解算法,一邊書寫語句,這樣學(xué)生就可以緊跟教師的思路,主動地去思考如何用語句實現(xiàn)算法的每一步。
根據(jù)不同的授課內(nèi)容,采用多媒體與板書相結(jié)合的教學(xué)方式,各取所長,優(yōu)勢互補,才能取得更為理想的教學(xué)效果。
3 開展多層次實踐教學(xué),重視培養(yǎng)學(xué)生的編程能力
實踐性強是C++語言的一個顯著特點,其知識的掌握與能力的培養(yǎng)很大程度上依賴于上機實踐。有些在理論授課時強調(diào)多遍的知識點與注意事項,學(xué)生在編寫程序時仍然會忽視,只有通過親自上機編程,發(fā)現(xiàn)并改正錯誤,才能真正理解并掌握所學(xué)知識。在C++教學(xué)過程中,實踐教學(xué)分為三個層次進行。
第一,理論授課時進行現(xiàn)場編程演示。在進行實例代碼的講解時,可以讓學(xué)生口述程序,然后與學(xué)生一起編程,在容易出錯的地方采用試錯的方法,讓學(xué)生體會到錯誤的發(fā)生并改正。這樣,既鍛煉了學(xué)生的編程思維,也能夠讓學(xué)生體會到成就感,有利于學(xué)習(xí)興趣的培養(yǎng)。
第二,上機實驗教學(xué)。實驗教學(xué)可以幫助學(xué)生鞏固課堂所學(xué)知識,掌握程序調(diào)試的基本技能。在實驗內(nèi)容方面,精心設(shè)計了基礎(chǔ)驗證性實驗、設(shè)計開發(fā)性實驗、能力拓展性實驗三個層次的題目供學(xué)生訓(xùn)練。在實驗考核方面,采用實驗前檢查預(yù)習(xí)報告,實驗中隨機抽取答問以及實驗報告中必須寫心得體會的方式,避免學(xué)生對實驗內(nèi)容敷衍應(yīng)付甚至抄襲別人程序的情況發(fā)生。在實驗過程中,鼓勵學(xué)生自己調(diào)試程序,查找并排除錯誤,在改正錯誤的過程中逐步提高編程能力。
第三,程序設(shè)計實習(xí)。在課程學(xué)習(xí)結(jié)束之后,安排為期兩周的程序設(shè)計實習(xí),要求學(xué)生利用面向?qū)ο蟮某绦蛟O(shè)計方法獨立設(shè)計并實現(xiàn)一個小型公司信息管理系統(tǒng),實現(xiàn)對公司內(nèi)不同工種的人員進行信息錄入、數(shù)據(jù)統(tǒng)計、數(shù)據(jù)打印以及數(shù)據(jù)備份等功能,并鼓勵學(xué)生對系統(tǒng)的功能進行擴充,最后形成規(guī)范的實習(xí)報告并撰寫實習(xí)心得。通過該訓(xùn)練,培養(yǎng)學(xué)生綜合運用所學(xué)知識進行程序設(shè)計的能力。
通過三個層次的實踐教學(xué),逐步培養(yǎng)并提高學(xué)生利用C++語言進行程序設(shè)計及軟件開發(fā)的能力。
4 改革考核方式,實現(xiàn)“以考促學(xué)”
本課程的學(xué)習(xí)不僅僅是為了讓學(xué)生掌握C++編程的語法知識,更重要的是培養(yǎng)學(xué)生利用C++語言編程解決實際問題的能力。為了更客觀全面地反映學(xué)生的學(xué)習(xí)情況,更合理地對學(xué)生的學(xué)習(xí)效果進行評價,真正發(fā)揮“以考促學(xué)”的作用,本課程的考核采用了多元化的方式,課程的最終成績由平時成績(包括考勤、上課答問及作業(yè))、實驗課成績、筆試成績和上機考試成績共同決定。該方式重視對學(xué)生學(xué)習(xí)過程及實際動手能力的考核,側(cè)重考核學(xué)生對知識的融會貫通和靈活運用能力,而不僅僅是對基本理論、基本知識的掌握。
5 結(jié)語
本文對在C++程序設(shè)計教學(xué)過程中遇到的問題進行思考與總結(jié),提出了一系列行之有效的教學(xué)方法。實踐表明,在教學(xué)過程中運用這些方法可以很好地激發(fā)學(xué)生的學(xué)習(xí)興趣,調(diào)動學(xué)生的學(xué)習(xí)積極性,改善教學(xué)效果。C++程序設(shè)計課程的教學(xué)涉及諸多方面的因素,需要我們在今后的教學(xué)過程中不斷進行探索與實踐,改進教學(xué)思路與教學(xué)方法,更好地促進該課程教學(xué)質(zhì)量的提高。
參考文獻
[1]譚浩強.C++程序設(shè)計(第1版)[M].北京:清華大學(xué)出版社,2004.
[2]周昕.C++程序設(shè)計課程教學(xué)方法改革[J].黑龍江教育學(xué)院學(xué)報,2010.29(6):72-74.
[3]劉群,李堅.C++程序設(shè)計實驗教學(xué)中的若干問題探討[J].實驗科學(xué)與技術(shù),2010.8(6):95-98.
[4]吳飛鵬.淺析程序設(shè)計語言課的板書教學(xué)[J].現(xiàn)代企業(yè)教育,2011(18):169-170.