周 昕
(哈爾濱理工大學計算機科學與技術學院,哈爾濱 150080)
C++程序設計課程教學方法改革
周 昕
(哈爾濱理工大學計算機科學與技術學院,哈爾濱 150080)
針對“C++程序設計”課程原有教學模式中存在的局限性,結合計算機應用專業的實際,提出了以明確教學目標、強化教材建設、采用“案例教學,任務驅動”的教學方法、通過教與練完美結合的各層次實踐能力訓練,以及充分發揮網絡教學平臺作用等特色的新型教學方法的改革,達到了增強學生理論水平,提高實踐能力,提升學習興趣,促進教與學的雙向互動,提高學生編程能力、改善教學效果的目的。
C++程序設計;教學方法;實踐
基于VisualC++6.0可視化開發平臺的C++程序設計語言,以其強大的開發功能受到 IT業界的一致認同,是眾多理工科院校開設的計算機基礎必修課。該課程具有很強的可操作性,其實踐教學是培養學生編程能力的重要手段[1]。
目前,各高校普遍是以《C++程序設計》[2]為講授內容。伴隨著一系列的教學改革,舊有的教材、教學方法、教學模式和教學手段都不再適用,探索一套適應當前 C++課程教學的教學法勢在必行。本文旨在初步探究一套讓學生重視 C++編程應用能力,提高學生的學習興趣,促進教與學的雙向互動,增強學生解決實際問題能力的教學方法。
(一)以理論作為教學的首要目的
長期以來,理論教學作為主導型教學模式,一直在我國高等學校的教學中占據著核心地位。目前,C++課程的教學仍采用課堂講授、布置作業及實驗,這種“教本位”的教學模式中,教師是課堂的中心,注重教的原發性和主動性,把著眼點放在“教”上,忽視了學生的主體性,讓學生的學習始終處于被動狀態,師生之間缺少互動,無法發揮學生的主觀能動性[3]。學生普遍反映對知識應用缺乏整體感,按部就班地學習 C++程序設計的知識點,而沒有依托于完整的實際項目,會令學生感到所學的知識點支離破碎,不成體系,學完以后容易遺忘。而且,缺乏實際工程項目開發體驗,只是停留在知識點學習以及例題的練習上,沒有實際工程項目開發的歷練和體驗,就無法直接感受所學知識在實際工作中的作用和地位,將會抑制學生的學習興趣,影響學習效果[4]。
(二)教材選擇不當
選擇教材是教學過程中非常重要的一個環節,是直接反映教學重點風向標。選擇重于理論的教材,教師很容易偏向介紹理論知識;反之則偏向介紹應用知識。早期教學中,教師容易落入教材千年不變的窠臼,不能審時度勢地伴隨當今數據庫發展趨勢,而片面講解通用性理論,這些將最終影響到學生能力和興趣的培養。
(三)教學手段陳舊
由于課堂教學學時有限,只能傳授基本知識點,而且我們的學生一直是在考試體制的管制下學習的,因此學生學習不主動、教學效果不明顯,加上部分學生對實踐環節不夠重視,導致學生在上機時不會融會貫通,缺乏獨立解決問題的能力。
由于教材內容、重點和教學條件的限制,傳統的教學手段一般比較單一、落后,教師在教學的過程中側重陳述,學生重書本、輕實踐的最終結果恰好適得其反,導致了學生的實踐能力無法提高,程序的閱讀能力差。
(一)明確教學目標,突出重點、把握難點
C++語言程序設計課程的教學目標為:通過該課程的教學,使學生掌握程序設計語言的一些基本概念和語法規則,掌握程序設計的一般方法,掌握過程化程序設計與面向對象程序設計方法,進一步培養學生的軟件開發能力。
根據此目標,面對內容繁多的 C++語言,必須突出重點,突出實用性。主要教導學生能正確運用 C++語言編寫程序,從思想與算法上去學習面向對象編程[5]。
1.突出重點:C++的內容繁多,不可能在有限的課堂時間內全面講解,而應該有重點地去講授知識要點。如 C++基本數據類型、語法結構、程序結構、傳統結構化程序設計、數組、指針類和對象、繼承和派生類、多態性和虛函數、面向對象編程等內容。
2.把握難點:教學內容中涉及很多的抽象概念,既有難度,又有深度。如數組、指針、繼承、多態性等。
(二)加強教材建設,提高學生理論水平和實踐能力
教師在教學的過程中應當選擇合適的教材,對教學的內容能作合適的安排。由于學生學習該課程的能力和興趣往往差別很大,對于學有余力的學生,應該為他們創造深入學習的機會。教材應該是一個學習的園地,不是演講稿,教師的講課就好像是導游,為學生游覽整本書提供指導。
我們將“授課要精練,教材內容要廣”作為教學改革的一項措施,這樣有利于加強素質教育,從而提高教學質量。教材中以一個重點案例貫穿全書,使各章知識既相互獨立又相輔相成,讓學生在一學期的學習后,以本案例為基礎,掌握完整開發一套數據庫系統的全過程。
除此之外,還要向學生推薦適當的參考資料和文獻,作為教材的有益補充。讓教材為教學服務,最大程度地提高學生的理論水平和實踐能力。
(三)采用“案例教學,任務驅動”的教學方法
在教學過程中,給出具體的案例,即提出問題,引導學生在問題中學習,給學生時間思考、討論,以解決問題,從而更深入地展開學習。實踐證明,這種教學方法能夠充分調動學生學習的積極性和主動性[6]。
例如在講數組的概念時,教師先設置問題編程計算個人的數學平均成績。根據以前所學,學生會想到定義一個變量,通過循環來實現。進一步要求計算個人的數學成績的均方差。學生想到需要說明個類型相同的變量用于存放這個人的數學成績。再進一步要求計算個人的數學成績均方差。這時候如再說明個變量,則會將問題復雜化,學生此刻需要討論該如何合理說明變量。最后,再深入一步求個人的數學平均成績。此時,當教師引出數組的概念、分析數組的性質時,學生不僅能夠很容易記住數組的性質,還能夠知道在什么情況下使用數組類型,達到事半功倍的效果。
在案例的選擇上,要注意以下幾點:
1.實踐性強,應符合教學的實際,不能主觀臆造。
2.啟發性好,必須包括一定的問題,能啟發學生的思維。
3.代表性強,使之反映同類問題的一般特征,能夠對學生起到舉一反三和觸類旁通的作用。
4.難易適中,可以考慮總體看有難度,但通過層層分解,得到由一序列學生易于想出的子問題,讓學生感到自己有能力實現,愿意主動積極地參與。
我們常用案例有:聊天程序、通訊錄、商品庫存管理、圖書館管理等。
任務設計與制定要有可操作性、趣味性和拓展性[7]114。可操作性保證學生都能完成實驗而促進學生學習信心的建立,讓每一位學生都有收獲,使所有學生都“動”起來。趣味性體現在提高學生學習的興趣,讓學生帶著興趣來做任務,即便遇到困難也不會輕易放棄,對每一個任務都躍躍欲試,對進一步的學習充滿期待。拓展性是讓學有余力的學生有發揮的余地,激發他們進一步鉆研的斗志。因此,最好在滿足教學要求的前提下選擇一些與現實生活聯系比較緊密的題目做任務。
(四)加強實踐教學
C++程序設計是一門實踐性很強的課程[7]113,僅僅靠教學中“精講多練”是不夠的,還應該配套其他的實踐學習。程序設計的實驗教學通常分為三個層次:
(1)基礎與驗證型實驗;(2)設計與開發型實驗;(3)研究與創新型實驗。
只有把它們貫穿整個教學過程,通過逐步提升,才能完成 C++程序設計課程的教學目標,培養學生分析問題、解決問題的能力,培養學生的創新意識。我們在“C++程序設計”的基礎教學中主要以第一層次為主,在“C++課程設計”環節中完成第二層次的任務,并在其后的課外科研設計中,向第三層次推進。
教學活動中,把基礎教學與課程設計相結合,各有側重,互為補充。在基礎教學中采用W indows平臺下的控制臺編程,突出編程基礎能力的培養。在課程設計中引入標準W indows圖形界面編程,把面向對象的編程思想應用于解決實際問題,提高學生編程應用能力,使教學的難點得到較好地分解,降低學習的難度。
整個實踐教學組織過程中,教師可從以下幾個方面進行考慮。
1.理論教學與上機實踐緊密銜接。實踐盡量在理論講授之后立即進行,隨講隨練,趁熱打鐵,會取得比較理想得效果。有條件時,在電子教室授課更為理想,教師可以在講課之余,現場輔導學生上機演練。
2.明確實踐目的和任務。根據教學內容,編寫含有實例和習題的上機實踐指導書,實踐前,先熟悉實踐指導書給出的主要步驟;上機實踐過程中,讓學生模仿實例進行操作,細心體會實例中所包含的理論知識,然后獨立完成上機習題。實踐結束要求完成實踐報告,之后就普遍存在的問題進行課堂講解。
3.做好輔導工作。學生上機時,應隨時注意同學的實踐過程和情況,并及時給予指導,有問題及時糾正,這樣上機實踐效果會更好。
4.認真批閱實踐報告。讓學生每次實驗都應有詳細的實驗報告,寫出收獲和體會,已解決和尚未解決的問題,進一步完善的方法或設想。對課程設計后期階段,還應該有小型設計答辯會,分組都來談談設計方案的制定,匯報分工與合作的情況,演示運行自己的系統。
(五)充分利用網絡教學平臺
使用形象化資料可以激發學生的學習興趣,并加強教學效果。因此教師要精心策劃教案,提供豐富的實例,精心制作 CA I課件,使教學內容緊湊有序,形象直觀生動,便于學生實時理解掌握概念和方法,提高教學效果。
充分發揮網絡教學平臺的優勢,作為課堂教學的補充,使學生能隨時交流、復習和了解 C++語言的最新動態。在此平臺之上,學生可以反復下載課件,可以進行在線答疑,同時鼓勵學生參與網上論壇,開展各種學習討論與交流,使其在積極、活躍的學習氛圍中掌握相關知識。
(六)結合學生課外科研活動,培養學生解決實際問題的能力
根據我院倡導的,以提高學生解決實際問題能力為主旨,廣泛開展學生課外科研活動的精神,從去年開始,我以 C ++語言課程為平臺,收集一些典型問題布置給學生,形成小課題。讓學生自由選題,單獨承擔,利用本教學階段的學習內容,通過親自調研、查閱文獻、收集資料、分析研究、設計實施來解決問題,將學到的理論知識和現實生活實際問題緊密結合。
小課題完成后,讓學生在“學生課外科研活動總結”上介紹自己的成果,互相交流,并訓練表達能力。在教學內容的下一個階段,教師可以為學生再布置新的題目,或讓學生用新學到的知識對上一階段的課題進行改進,得到更好的解決方法介紹給其他學生。
以上教學方法在計算機專業的C++程序設計課程中進行試用,教學效果反映較好。學生對該課程普遍表示感興趣。通過實踐,明顯提高了學生的編程能力和應用能力。教師在今后的教學工作中,還要繼續關注課程的發展方向和趨勢,選擇適當教材,更新知識體系和教學手段,使學生適應編程的實際需要。
[1]鄒曉華,華偉.C++程序設計語言教學改革與實踐[J].今日科苑,2008,(21):117.
[2]鄭莉.C++語言程序設計[M].北京:清華大學出版社, 2006:19-20.
[3]顧勛梅.C++課程教學改革的探討與研究 [J].科教文匯,2009,(8):39.
[4]趙香會,賀萌.項目教學法在高職 C++課程教學中的探索和應用[J].科技信息,2009,(33):299.
[5]余戰秋.《C++語言程序設計》課程教學方法研究[J].巢湖學院學報,2007,(9):140-142.
[6]賈振華,李瑛.《C++程序設計》課程教學方法探析[J].華北航天工業學院學報,2006,(8):47-49.
[7]劉彥賓.C++課程設計教學實踐與探討[J].萍鄉高等專科學校學報,2009,(6).
Abstract:This paper explores the teachingmethodsofC++coursewhich is based on pointingout the limits in the teaching course at present,and concerning computermajored students'practice.The methods aims to enhance the students'ability of theory and practice,arouse their interest and promote the interactivity be tween teaching and learning,enhance the students'abilityof programming and application.
Key words:C++programming;teachingmethods;practice
(責任編輯:侯秀梅)
Research on TeachingM ethods of C++Programm ing
ZHOU Xin
(Harbin University of Science and Technology,Harbin 150080,China)
G642.0
A
1001-7836(2010)06-0072-03
2010-04-19
周昕(1968-),女,黑龍江哈爾濱人,講師,從事面向對象程序設計課程理論教學研究。