樊廣軍
【摘 要】本文根據(jù)高校學生在學習C++程序設計課程中常見的問題,從明確教學目標,改革教學理念、模式、方法出發(fā),闡述了以學生為主體,以教師為主導的“雙主”教學觀念,介紹了優(yōu)化教學內容和課時配置的教學改革嘗試,探討了筆者在教學和課程考核等環(huán)節(jié)方面所進行的一些教改方法。
【關鍵詞】C++程序設計 教學改革 能力培養(yǎng)
1 引言
目前高校的非計算機理工科專業(yè)基本上都開設了計算機程序設計這門公共基礎課程,各種專業(yè)院系根據(jù)本身的特點和需要該門課程所講授的程序設計語言也有所不同,但由于其功能的強大和運用的廣泛性,絕大多數(shù)專業(yè)還是選擇了C++程序設計語言作為該課程所講授的內容,因此搞好C++程序設計語言課程的教學改革對提高本課程的教學質量具有十分重要的現(xiàn)實意義。
2 C++程序設計課程教學中存在的問題
筆者從近些年的教學實踐及教學效果來看,感到C++程序設計課程教學主要存在以下幾個方面的問題:
2.1教學內容繁多而教學課時有限
C++程序設計課程教學內容從知識體系上應該使學生全面了解并掌握面向的對象的控制臺編程、界面模式的API編程、基于微軟的MFC的編程三個方面的知識,否則學生的編程能力和水平難以達到滿足現(xiàn)代工程實踐應用軟件開發(fā)的基本要求。由于目前高校教學改革普遍精減本課程的教學課時約為48個學時(其中16學時為實驗,32學時為理論教學),另外再加兩個星期的課程綜合實踐。熟悉C++程序設計課程教學的人都知道:如此繁多的教學內容如何保證在這有限的學時內圓滿地完成教學任務的確是一個令人棘手的問題。
2.2部分學生對本課程學習思想上缺乏應有的重視
由于部分學生認為本課程不是非計算機專業(yè)學生核心專業(yè)基礎課程,不了解工程應用軟件開發(fā)的必要性,產生了學好本課程與否不重要的錯誤想法。一旦有這種錯誤思想的產生,再加上本課程本來內容就難學,隨著教學過程的深入,學生會遇到一些抽象的概念和理論難以及時地理解和消化,從而影響到后續(xù)內容的學習,而且隨著這些未理解消化的問題的越積越多,不可避免地會影響學習效果。
2.3 部分學生編程實踐能力不強
目前大部分C++程序的設計開發(fā)環(huán)境都采用VC++的集成開發(fā)環(huán)境,該環(huán)境集成了C++程序的編輯、編譯、調試等各個環(huán)節(jié),功能十分豐富。部分同學由于上機編程練習的機會比較少,在那有限的實驗課時里,只能照搬書中的實例做些基礎與驗證型實驗,難以有效地運用VC++集成開發(fā)環(huán)境完成一些設計與開發(fā)型實驗。這主要是由于他們自主編程的實踐能力不強,還需要加大力氣加強培養(yǎng)。
上述問題的形成原因是多方面的,要想解決這些問題有必要在教學理念、教學方法及手段、教學內容、實驗教學及課程考核方式等方面對現(xiàn)有的教學方案進行改革。
3 教學改革的措施
3.1明確教學目標,變革課堂教學理念、模式和方法
高校C++程序設計課程的教學目標應定位于培養(yǎng)基礎知識扎實,應用程序設計編程能力強,在應用程序設計方面具有一定創(chuàng)新精神的高素質人才為目標。要實現(xiàn)這一目標,必須突破傳統(tǒng)的以培養(yǎng)“知識型”人才為目標的觀念和模式,采取“主導—主體”雙主式的教學模式,即強化以學生為主體,以教師為主導的教學理念,不要片面強調教師或學生單方面的作用,這樣既有利于發(fā)揮教師的主導作用,又能充分發(fā)揮學生的認知主體作用,從而達到培養(yǎng)“應用型”人才的目標。
根據(jù)構建主義的學習理論我們可以知道:學生(學習的主體) 是在與客觀環(huán)境(所學內容)的交互過程中構建自己的知識體系結構的。目前高校C++程序設計課程教學的客觀現(xiàn)實條件就是教學課時少,教學內容繁多,如果片面強調教師講授的作用,教學內容面面俱到的話,一是時間上做不到,二是教學內容重點不突出,學生會從思想上產生依賴性,認為老師上課反正都會講解,從而不主動去自學和思考,放棄了自主與所學內容不斷交互的機會,這樣教學效果未必會好?;谏鲜鲈?,在教學方法上,我們強化多元化方法教學,主要采用多媒體教學方式和互動式教學方式與傳統(tǒng)教學方式相融合,精講多練。多媒體教學方式能夠在有限的時間里豐富教學內容,并將有些難以理解的內容配以動畫,使學生便于理解內容的同時,激發(fā)出一定的學習興趣;這樣既突破了教學中的重點和難點,又能讓學生對所學的內容留下比較深刻的印象。互動式教學方式要求教師從主講者轉變?yōu)閷W生學習活動的設計者和指導者,教師把以教為主轉變?yōu)閷W生以學為主。 通過給學生布置課后自學內容,在講解過程中為學生設置問題,檢查自學效果,引導學生與教師課堂講授時面對面的交流,啟發(fā)學生思考,然后讓學生及時理解與消化所學內容,最后教師對自學內容進行歸納總結,進一步強化學生的學習效果。另外在課堂上教師還可以通過現(xiàn)場編程,使學生能夠參與到程序的編輯和調試過程中,能夠跟隨教師共同解決問題,獲得正確的結果。這種教學方式增強了學生的參與意識和興趣,同時也能順便讓學生學會利用VC++集成開發(fā)環(huán)境進行程序的編輯、編譯與調試過程,使學生由被動學習轉變?yōu)橹鲃訉W習。
3.2優(yōu)化教學內容和教學課時的配置
優(yōu)化教學內容的首要環(huán)節(jié)就是要精選一套優(yōu)秀的教材。筆者認為作為優(yōu)秀教材應該要內容完整,組織合理,簡明扼要,實例經(jīng)典,實驗編程配置的練習題既要能驗證學生所學的知識內容,又要能使學生舉一反三,進行一些應用開發(fā)方面的訓練。在充分利用好現(xiàn)有精選教材的同時,可以組織編寫更為適合自己專業(yè)特色的新教材。
此外由于C++知識體系復雜,內容繁多,但教學時數(shù)相當有限,所以為了更好地提高教學質量,教師在理論講授時必須要做到教學內容系統(tǒng)連貫,一般內容點到即可(如C++的基本數(shù)據(jù)類型、程序的三種基本結構等等),留給學生自學練習,重點難點內容要多講(如指針概念的應用、虛函數(shù)與多態(tài)性、重載與模板的應用等等),而且還要注意精講多練,這樣一方面可以有效地解決教學課時少內容多的矛盾,另一方面也可以充分調動學生自學的積極性,培養(yǎng)學生的自學能力。
針對教學計劃所規(guī)定的教學內容科學合理地分配教學課時也是至關重要的問題,為了有效地提高教學質量,我們把教學內容傳授分為兩個階段:第一階段就是在前面48個基本學時內把C++的基本內容全部傳授完畢;第二階段就是在另外兩周的課程綜合實踐的時間里,利用學習時間相對集中的優(yōu)勢,結合以前學過的內容,簡練地介紹一下界面模式的API編程,系統(tǒng)而精練地重點講授基于微軟的MFC編程。
3.3改革實踐教學
C++程序設計是一門實踐性很強的課程,實踐訓練環(huán)節(jié)相當重要,實踐能力的培養(yǎng)也是該課程的核心任務,而且學生也只有通過大量的上機實驗才能真正理解和消化教材上的理論知識。實踐教學包括課程實驗和課程綜合實踐兩個環(huán)節(jié)。
課程實驗主要是檢查學生對基本知識點的理解和掌握情況,側重單元知識點的強化培訓。采取的主要措施有: 根據(jù)課堂講授的實例,恰當設置實驗,注意使學生學習編程逐步從模仿轉向設計,要求學生事先編好程序填寫實驗報告再進實驗室,提高實驗課的效率,學生在自己成功地編制、調試、運行實驗程序后,及時將經(jīng)過整理后的實驗結果通過實驗室的局域網(wǎng)提交至服務器,同時要求學生自己也要及時用移動硬盤把自己的實驗程序保留下來,以便將來進一步的復習參考。要求學生這樣做的目的,一方面可以督促學生按時按量地完成要求的實驗作業(yè),另一方面讓學生保留下自己的程序,能讓學生有種成就感,從而激發(fā)學生的學習興趣。實驗過程中指導教師要注意兩個方面的問題,第一就是從一開始就注意培養(yǎng)學生編程的規(guī)范化及標準化素質,因為一個高質量的程序需要規(guī)范的命名、科學的編碼風格及必要的注釋;第二就是要使學生能學會及時發(fā)現(xiàn)問題及時地利用調試工具、手段等解決程序中出現(xiàn)的問題。實驗課后教師必須做些歸納總結,對于一些共性的問題,教師必需提出來進行重點總結講解,以利于學生全面掌握。
課程綜合實踐這個環(huán)節(jié)有兩周時間集中進行學習,在這兩周的時間里,除了要對MFC編程理論知識進行重點介紹,強化訓練外,更為重要的是要對已學過的程序設計內容進行綜合性的運用來編制一個功能比較復雜的應用程序。為了更好地提高綜合實踐的教學質量,我們強調學生要按軟件工程的思想對一個應用程序要首先進行需求分析,明確應用程序要實現(xiàn)的各項功能;接下來采用面向對象的程序設計思想對應用程序進行總體設計和詳細設計,即設計出應用程序中所需要的各種類及類與類之間的關系,并完成每個類的屬性和方法設計;然后再進行編碼調試運行開發(fā)。在這個環(huán)節(jié)的代碼編寫過程中我們要求學生充分利用MFC強化訓練中學習的內容進行可視化編程,即學即用,發(fā)現(xiàn)問題指導教師要教會學生充分利用VC++集成開發(fā)環(huán)境的調試工具進行調試,及時地解決程序設計中出現(xiàn)的各種問題,這樣既可以充分調動學生學習MFC編程的學習興趣,又能充分保證學生綜合編程練習的順利完成。
3.4改革考核環(huán)節(jié)
怎么考核對學生的學習有著十分重要的導向作用。以往的考核中以筆試為主,忽略了對學生編程能力的考核,這不能全面反映出學生學習的真實水平和教師的教學效果。為了更好地運用考核指揮捧作用,我們對考核環(huán)節(jié)作了如下改革:
1)改革考試方式,注重提高學生動手能力。為了改革C++程序設計課程的考試方式,我們制定了詳細的課程考核計劃,注重加強教學過程考核,且考核形式也注重多樣化、強化教學過程中學生能力培養(yǎng)。
2) 改革考試內容,注重提高學生綜合能力。在檢驗學生基本知識掌握情況的同時,注重學生思維能力、實踐能力、創(chuàng)新精神的培養(yǎng)和綜合運用知識分析問題、解決問題的能力考核。
3) 賽考結合,注重提高學生創(chuàng)新能力。課程考試與課程競賽相結合,制訂將比賽成績與考試成績掛鉤的相關管理辦法,激勵學生奮發(fā)學習,提高學生創(chuàng)新能力。
為了搞好該課程的考試改革,任課教師須將考核方式、要求等提前告知學生,并使學生充分了解成績評定方案(如課堂表現(xiàn)、回答問題、各種測驗、作業(yè)、競賽等實施計劃以及在課程最終成績中所占比例等)。實施過程中,任課教師須認真做好過程成績記載,對每一學生的每一項評定結果及時記錄在案,在課程結束后、期末考試前向學生公布。同時將過程考核標準、結論等資料進行歸檔。通過上述考核環(huán)節(jié)的改革,基本能有效地發(fā)揮考核指揮棒的作用,激發(fā)學生對本課程學習的主觀能動性,引導學生將更多的精力投入到實際編程能力的培養(yǎng).從而達到這門課程的教學目的。
4 結束語
高校C++程序設計課程改革的思路、方法多種多樣,但不管怎么變化,其宗旨都是為了不斷提高教學質量,培養(yǎng)學生應用C++程序設計語言編寫各種實際應用程序的編程能力。在這個教學過程中,教師和學生都要充分發(fā)揮“主導—主體”作用,即教師和學生都必須充分發(fā)揮各自的主觀能動性才能收到良好的教學效果,近些年來,筆者在教師如何教學,學生如何才能學好C++程序設計課程兩個方面進行了不斷的探索和努力,積累了一些經(jīng)驗,通過后續(xù)跨學年的追蹤觀察發(fā)現(xiàn):將這些教學改革中所取得的成功經(jīng)驗運用于該課程教學過程中后,學生在后續(xù)的學年中應用C++程序設計語言解決其他學科中的應用編程問題能力有顯著的提高。
【參考文獻】
[1]齊新軍,宗明魁. C + + 程序設計課程教改與學生實踐能力培養(yǎng)[J]. 中國新技術新產品,2009(19).
[2]呂智林,龔文英. VC++程序設計課程教學改革的探索[J]. 廣西大學學報(自然科學版),2004(9).
[3]王曉磊,汪強. 高校 Visual C++程序設計課程教學改革初探[J]. 電腦學習, 2009(6).