滿 娜 任向民
摘 要:本文強調(diào)了“C++語言程序設(shè)計”教學(xué)中實踐環(huán)節(jié)的重要性,針對其實踐教學(xué)中存在的問題,提出了一系列的改進措施,從而提高學(xué)生的實踐動手能力。
關(guān)鍵詞:C++;實踐教學(xué);程序設(shè)計
1 引言
近年,隨著現(xiàn)代編程技術(shù)的廣泛應(yīng)用與發(fā)展,C++語言程序設(shè)計越來越普及,學(xué)習(xí)C++語言已成為現(xiàn)代軟件開發(fā)人員的必備知識之一,因此各大高校計算機科學(xué)與技術(shù)專業(yè)都把學(xué)習(xí)C++語言作為一門專業(yè)必修課,而且在一些非計算機專業(yè)中也不同程度地開設(shè)該課程?!癈++語言程序設(shè)計”課程具有很強的操作性,其實踐教學(xué)是培養(yǎng)學(xué)生程序設(shè)計能力的重要手段。
目前,大部分學(xué)生在學(xué)習(xí)完該課程后,雖然掌握了不少語法知識,但是動手能力差,在面對實際問題時,不知如何編程,不會處理解決實際問題。由于該課程的抽象性、復(fù)雜性,如何能在有限的課時內(nèi),使學(xué)生掌握C++的語法結(jié)構(gòu)及面向?qū)ο蟮某绦蛟O(shè)計思想,并且具有一定的編程能力,是C++語言程序設(shè)計教學(xué)實踐中所面臨的一個問題。
2 實踐教學(xué)過程中存在的問題
2.1 實驗環(huán)節(jié)重視不足
“C++語言程序設(shè)計”是一門實踐性很強的課程,課程的主要目標之一就是提高學(xué)生的實踐動手能力,培養(yǎng)學(xué)生利用面向?qū)ο蟮某绦蛟O(shè)計解決實際應(yīng)用問題的思維方式。但目前的實踐課教學(xué)中存在著很多問題。上機實驗的目的不明確,實驗的內(nèi)容不清楚,針對性不強,多數(shù)是驗證性實驗,設(shè)計性、綜合性實驗少,多數(shù)學(xué)生照抄照搬程序代碼,根本沒有真正掌握面向?qū)ο蟮木幊陶Z言的思想,真正理解程序的意義。
2.2 學(xué)生缺乏學(xué)習(xí)興趣
C++繁雜的語法,類、對象、繼承與派生、多態(tài)性等眾多抽象的內(nèi)容,學(xué)生普遍感到難以掌握,對面向?qū)ο蟮乃枷敫灰桌斫?初學(xué)時也很難認可它的價值,不知學(xué)為何用,學(xué)習(xí)缺乏目的性,從而無法激起學(xué)生學(xué)習(xí)的興趣。另外,C++編程的源代碼通常比較龐大,原因是數(shù)據(jù)與數(shù)據(jù)的操作封裝在一起,編程時也容易出錯,不易調(diào)試,眾多的成員函數(shù)使學(xué)生望而生畏,從而削弱了學(xué)生的學(xué)習(xí)積極性,降低了學(xué)習(xí)C++語言的興趣和信心。
2.3 學(xué)生程序設(shè)計能力弱
面向?qū)ο蟮腃++語言語法較復(fù)雜、規(guī)則繁多、涉及的概念抽象,教學(xué)中往往注重于語言本身的講解,削弱了更為重要的算法的教學(xué)和解決實際問題的能力。另外,有很多學(xué)生沒有意識到應(yīng)該經(jīng)常自己嘗試編程去實現(xiàn)某一功能,從編寫源代碼到得出運行結(jié)果這個環(huán)節(jié)中,來逐漸提高程序設(shè)計的能力。針對以上的問題,我們在教學(xué)過程中逐步對實踐教學(xué)進行探索,嘗試了以下的方式以提高實踐教學(xué)效果。
3 實踐教學(xué)方法的探討
3.1 改革實驗教學(xué)內(nèi)容
為了培養(yǎng)學(xué)生實踐動手,綜合應(yīng)用的能力,實驗教學(xué)中應(yīng)該合理的安排好實驗內(nèi)容。過去課堂教學(xué)偏重于傳授理論知識,而實驗教學(xué)只作為驗證理論的一種手段。因此,實驗教學(xué)中往往并不能真正達到預(yù)期的目的。作為拓寬學(xué)生知識面,培養(yǎng)學(xué)生觀察問題、分析問題、解決問題的重要環(huán)節(jié),教師應(yīng)該認真準備實驗教學(xué),明確實驗?zāi)康?教學(xué)中提出實驗注意事項及編程難點,采用示例法、討論法、演示法、啟發(fā)式教學(xué)方法,增加設(shè)計性、綜合性的實驗內(nèi)容,實驗學(xué)時與理論學(xué)時的比例基本達到1:1,加大實驗室開放的力度,為學(xué)生創(chuàng)造良好的實驗環(huán)境。
C++是當今世界上最流行的軟件開發(fā)語言之一,其中“面向?qū)ο蟆笔亲钪匾木幊谭椒?在教學(xué)中發(fā)現(xiàn)學(xué)生往往把握不住“面向?qū)ο蟆敝刑岢龅膶ο蟆㈩惖谋举|(zhì),也弄不太清楚類的繼承性與多態(tài)性實現(xiàn)的原理。因此在學(xué)習(xí)過程中只好死記硬背語法法則,生搬硬套。針對這些問題,教師應(yīng)精心設(shè)計相應(yīng)的實驗內(nèi)容,為學(xué)生提出具有階段特點的編程要求,由淺入深循序漸進地逐步深入學(xué)習(xí)C++語言程序設(shè)計方法,從而增強學(xué)生學(xué)習(xí)的信心,消除畏懼心理。使學(xué)生通過上機操作,調(diào)試,觀察程序的運行情況和結(jié)果,真正理解“面向?qū)ο蟆钡乃枷牒途幊谭椒?并且體會到采用了面向?qū)ο缶幊碳夹g(shù)之后,軟件重用所帶來的好處,從而使理論和實踐相結(jié)合,提高教學(xué)質(zhì)量。隨著課程的深入,實踐的內(nèi)容盡可能要求學(xué)生能夠獨立設(shè)計、編程,進一步增強學(xué)生獨立分析問題、解決問題的能力,為用C++開發(fā)項目打下基礎(chǔ)。
3.2 加強團隊合作
在實驗教學(xué)中,創(chuàng)建團隊,把學(xué)生分成小組,選出一名組長,負責小組活動。對于一些設(shè)計性、綜合性的實驗內(nèi)容,學(xué)生以小組為單位來完成,教師提前把內(nèi)容布置給學(xué)生,讓學(xué)生充分預(yù)習(xí),加強組內(nèi)同學(xué)之間的交流溝通能力,集思廣益,各抒己見,找出解決問題的思路與方法。這樣能夠自然地調(diào)動學(xué)生的參與,有效開闊學(xué)生的思維,激發(fā)學(xué)生學(xué)習(xí)的動力。
教師在實驗指導(dǎo)過程中,發(fā)現(xiàn)實驗中普遍性問題和同學(xué)中的新思路、新方法,實時地提出問題,對存在的共性問題進行講解,或者請有獨特思路的小組,由組長演示自己的方法或程序,對比各種方法的優(yōu)缺點,修改錯誤,鼓勵大家提出新方法,引導(dǎo)學(xué)生進行程序的優(yōu)化,提高編程的靈活性。在完成實驗的過程中,提高了學(xué)生分析解決問題的能力和創(chuàng)新能力,培養(yǎng)了學(xué)生團隊協(xié)作精神。軟件開發(fā)的過程中,團隊合作是非常重要的。如果沒有科研團隊的協(xié)作,要完成重大的科研項目,是不可想象的。學(xué)習(xí)編程語言的過程中,不僅要培養(yǎng)學(xué)生具有分析問題、解決問題的能力,還應(yīng)注重培養(yǎng)其團隊合作能力。強調(diào)培養(yǎng)學(xué)生的團隊精神,不僅要使學(xué)生具有一種從事科學(xué)研究所必備的素質(zhì),而且也是為了使他們進入社會后能與他人更好合作與溝通。
3.3 注重實驗總結(jié)
實驗教學(xué)中應(yīng)注重實驗結(jié)果的分析與總結(jié),使學(xué)生鞏固本次實驗內(nèi)容,培養(yǎng)學(xué)生分析、概括能力。學(xué)生調(diào)試和運行完程序后,進行以下兩方面內(nèi)容:一是對實驗的結(jié)果與調(diào)試中遇到的問題,以實驗報告的形式總結(jié)出來,真正解決編程過程中的問題;二是讓各小組討論,就本次實驗過程的收獲,解決問題的思路與方法,各種算法的比較等問題做一總結(jié),從而擴展實驗內(nèi)容,避免今后再出現(xiàn)類似的問題,更好地掌握所學(xué)知識。
3.4 進行網(wǎng)絡(luò)實踐教學(xué)
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,多媒體教學(xué)形式的產(chǎn)生,教師可以以網(wǎng)絡(luò)和現(xiàn)代教育技術(shù)為依托,創(chuàng)建一個開放式的網(wǎng)絡(luò)教學(xué)模式,合理地使用網(wǎng)絡(luò)教學(xué)平臺進行輔助教學(xué)。建立以教師為主導(dǎo)、學(xué)生為主體的自主學(xué)習(xí)的交互式網(wǎng)絡(luò)教學(xué)環(huán)境,通過網(wǎng)絡(luò)提供的大量資源,使C++語言程序設(shè)計教學(xué)內(nèi)容更豐富,教學(xué)方式更靈活,教學(xué)手段更先進,更有利于調(diào)動學(xué)生學(xué)習(xí)興趣及學(xué)生個性化發(fā)展。教師可以把教案、作業(yè)、算法案例、視頻點播、多媒體課件,試題庫等一系列資料上傳到平臺上,在線答疑,留言等。學(xué)生可以下載相應(yīng)的資料,上傳自己完成的作業(yè)、實驗報告,在線自測,并反饋學(xué)習(xí)中困難,教師及時做出解答,增強交互性。通過網(wǎng)絡(luò)教學(xué)平臺真正實現(xiàn)資源共享和信息交流,極大地激發(fā)學(xué)生學(xué)習(xí)興趣,提高教學(xué)效率。
3.5 考核方式
針對C++語言的課程特點,既要考察基本知識點.又要考察編程能力。在實驗教學(xué)環(huán)節(jié)中,采用上機考試和課程設(shè)計的形式。要求學(xué)生利用已學(xué)的知識,去設(shè)計和開發(fā)小型的應(yīng)用系統(tǒng),用于考察學(xué)生的編程能力。學(xué)生通過參與應(yīng)用系統(tǒng)的設(shè)計和開發(fā),了解并掌握利用計算機進行應(yīng)用系統(tǒng)設(shè)計的過程和方法,使學(xué)生獲得自主學(xué)習(xí)的能力,極大地調(diào)動學(xué)生主動上機調(diào)試程序的熱情。上機考試主要測試學(xué)生在規(guī)定的時間內(nèi)正確編寫和調(diào)試程序的能力,進一步引導(dǎo)和督促學(xué)生重視實踐教學(xué)。
4 結(jié)束語
實踐教學(xué)的改革和探索,一方面培養(yǎng)了學(xué)生應(yīng)用計算機解決問題的實際動手能力,另一方面也開發(fā)了學(xué)生新的思維方式。作為教師,應(yīng)重視實驗教學(xué),一定要在教學(xué)過程中不斷端正學(xué)生的學(xué)習(xí)態(tài)度,激發(fā)學(xué)生興趣和積極性,在一定程度上提高學(xué)生程序的編寫、調(diào)試、優(yōu)化等能力,為今后學(xué)習(xí)其他計算機課程打下良好基礎(chǔ)。
參考文獻
[1]李宇翔,李端明,王大志.提高“C++語言程序設(shè)計”教學(xué)效果的思考[J].福建電腦,2006(1) .
[2]王春玲.C++程序設(shè)計[M],中國鐵道出版社,2007.
作者簡介:滿娜(1978-),女,學(xué)士,講師。目前在哈爾濱工程大學(xué)攻讀碩士學(xué)位。研究方向:數(shù)據(jù)庫與知識庫。