彭文 王金睿 閻光偉 徐琳茜
摘 要 為了提高VC++課程對學生提升綜合能力尤其是動手能力的作用,針對該課程的特點及教學過程中存在的問題,提出四位一體的課程授課模式,以教學為基礎,將科研項目、競賽活動和專家講座融入授課過程中。通過課程實踐驗證,該授課模式適應學生的認知過程,對于提高學生解決問題能力和動手能力效果顯著。
關鍵詞 VC++;案例教學;科研項目;競賽;專家講座
中圖分類號:G642.3 文獻標識碼:B
文章編號:1671-489X(2017)08-0103-03
Abstract In order to improve the students comprehensive ability, especially the practical ability, a four-in-one teaching model aiming at characteristics of the VC++ and problems in the teaching process was put forward in this paper. It is based on the teaching combines the research projects, competitions with expert lectures into the teaching process. Through the curriculum practice, the teaching mode adapts to the students cognitive process, which is significant for improving their problem-solving and practical ability.
Key words VC++; case teaching; research projects; competitions; expert lectures
1 引言
VC++課程的授課內容包括C++語法與Visual C++開發工具的使用,是提高學生編程能力的關鍵課程,目前已經被眾多高校作為理工科的必修環節。由于C++語言知識點難、概念復雜、規則多,而VC++包括層次結構復雜的MFC類庫,并且AppWizard自動生成的程序專業化程度高、代碼量大,這些都使得學生掌握課程更加困難。
針對這種情況,廣大教育學者開展了不同方式的課程改革,尤其是基于案例驅動成為最為主流的教學模式。趙燕萍以四則運算器為案例,講述了案例教學法的實施過程,并將其應用于實際教學,取得不錯的效果[1]。魏春英則從案例引入到模仿,再到改寫,最后到編寫,逐步引導學生不斷提升程序設計能力[2]。曹西征分析了知識驅動教學法的弊端,提出實例驅動教學法,并結合實例說明這種教學法的優勢和教學過程,同時構建與VC++相適應的模糊評價模型來評估學生掌握VC++程序設計的能力水平[2]。趙曉平等從理論和實踐兩個方面,闡述案例教學在Visual VC++課程教學中的應用[3]。
除此之外,黃華軍針對C++教學中存在的問題,從教學計劃、教學內容、教學方式和考核等四個方面闡述基于“三步法”的教學改革探索思路[4]。徐暉將基于榜樣的學習方法應用于VC++教學中,學生通過聯想、回憶、概括等形式獨立地完成一個榜樣,以解決相似的問題[5]。Michael Dawson將每個知識點的理解和學習都通過一個游戲來進行,但需要大量的學習及實踐時間[6]。白霞等提出使用內容重組方式,將計算思維能力培養融入C++程序設計授課過程中[7]。劉井蓮等從教學環境、授課人數、授課教材、考核方式等環節入手,探討C++課程的改革過程。實踐表明,教學效果顯著,激發了學生的學習興趣,提高了學生的面向對象程序設計能力[8]。
上述學者提出的教學改革多是從教學方法上做出探索與改革,但VC++課程不同于傳統的理論課程,更側重于培養學生分析設計和實際動手的能力。因此,筆者結合實際教學情況,提出四位一體的VC++課程授課模型,從教學、科研、競賽和講座等多方面入手,為學生構建一個快速提升程序設計能力的框架。
2 VC++課程教學存在的問題
VC++課程在華北電力大學屬于必修課程,目前采用基于案例的教學模式,課程包含較多的上機學時。學生的程序設計能力較之前有了一定的進步,但課程教學仍然存在以下問題。
1)案例內容不合理,有些案例邏輯關系過于復雜,使得學生將大量精力投入其中,從而忽視了知識點的掌握。
2)案例規模不合理,有些功能復雜的案例橫跨幾節課的知識點,這使得原來沒有關系的知識點產生相互影響,導致能力相對較差的學生因為沒有掌握前面的知識而影響后續知識的學習。
3)學生創新能力不足,只能參照案例開發程序,對于知識點的靈活應用較為欠缺。
3 四位一體的授課模式
針對上述問題,本文提出一種四位一體的課程授課模式。該模式以教學為基礎,將科研項目、競賽活動和專家講座融入授課過程中,如圖1所示。其中教學環節仍然以案例為主,但采用改進后的案例,便于知識點的授課。高校教師除教學任務外,都會承擔一定量的科研項目,從授課教師的眾多科研項目中篩選出適合課程的模塊,作為學生的課后作業。對于完成較好的程序可經過加工后成為未來授課的案例。每年都會有全國、省、市、校等多級的程序競賽,鼓勵學生積極參加,將所學內容應用到實際問題的解決過程中,以檢驗知識點的掌握水平。在授課過程中,選取合適時機邀請專家為學生做講座,主要圍繞行業最新技術發展和當前流行軟件介紹為主題。這雖然不能對課程產生直接影響,但有助于學生擴展視野,了解更多的實際案例,從而激發學生的設計興趣,真正實現從程序編寫到程序設計的轉變。
基于合理案例的知識教授 案例教學是一種利用模擬或者重現現實生活中的一些場景,讓學生把自己融入案例場景,通過討論或者研討來進行學習的教學方法。在教學過程中,要經過事先周密的策劃和準備,使用合理的案例來引導學生明確學習目標,并通過模仿案例來主動探索并掌握知識。總結多年的教學經歷,筆者認為VC++課程中案例的選擇應遵循以下原則。
1)知識點突出,邏輯關系簡潔。案例中最核心的部分一定是要講授的知識點,不能摻雜復雜的邏輯關系。如在講解C++類的定義過程中,要突出類的結構、成員變量和成員方法的定義格式。如果某個成員方法中包含較為復雜的算法,則會分散學生的精力,無法集中于知識點的理解。
2)規模適中,跨度合理。案例的規模直接影響到知識點的分布情況,過小的案例只能包含有限的知識點,會導致授課過程中頻繁介入不同的案例;反之,案例規模過大,會使得原本無關的知識點產生約束條件,即前續知識點沒有掌握,直接影響后繼知識點的理解。依據教學經驗,案例的規模在1~2次課時能講解完為最佳。
3)情景典型,符合常理。案例的選題一定要與知識點相匹配,最大限度體現知識點在案例中的作用,并且是學生日常學習和生活中熟知的場景。如作為密碼使用的文本框嵌入登錄界面案例中,就是非常典型的使用方法。再如圖形基類與矩形子類、圓形子類的關系就適用于講解抽象類與純虛函數等知識。反之,如果用樹控件來實現學生信息的管理,就不是典型的使用方法,容易誤導學生。
4)不斷完善,與時俱進。案例的選題背景與內容編排要隨著技術的發展不斷優化,這樣更符合學生的認知。如最近流行的微信軟件,比較火爆的游戲場景,日益強大的電子商務等,都可以經過加工變為新穎的案例,這樣就可以避免一味地使用立意陳舊的案例,更容易吸引學生的眼球。
基于科研項目的能力提升 在課堂中講授的知識點,學生一定需要獲得更多的練習機會才能鞏固學習效果,才能提升動手能力。與此同時,高校教師會承擔一些科研項目,如果能夠將兩者很好地結合,就可以達到事半功倍的結果。
科研項目通常分為工程類與研究類,工程類項目中會包含用戶管理、角色管理、權限管理等模塊,這些都包含類層次設計和對話框界面開發等知識,完全能達到鍛煉的目的。此外,一些項目中數據圖形化展示模塊也有助于學生理解視圖/文檔結構。研究類的項目側重于算法的研究與創新,但可根據具體問題,由教師設計一個算法結果圖形化展示和效果對比的軟件開發方案,滿足課程的要求。
在模塊的開發過程中,要以實際項目的標準嚴格要求程序的完成情況,如數據有效性的檢驗、界面美觀性的設計和用戶交互性的操作。這樣,一方面學生接觸了實際項目,綜合能力得到明顯提升;另一方面,負責人可篩選完成的作業,將符合要求的納入項目中,從而加快項目進度。
基于競賽驅動的實踐應用 競賽既可以滿足學生對榮譽的追求,又可以將所學知識應用于實踐,是課堂教學的有益補充。每年全國、省、市、學校各級會舉辦一系列面向工程類專業的競賽,如全國大學生創新創業訓練項目、“電力科技杯”大學生課外學術科技作品競賽等。在VC++課程中,對話框及文檔/視圖可以作為參賽題目的界面顯示技術,并可借助網絡上開源的插件進行美化。教師盡可能鼓勵更多的學生參加競賽,并且改變以往的指導模式,全程參與,為學生提供研究與學習的場地,并給予技術上的指導,從題目制定、技術選擇、功能設計到報告撰寫,規范化的流程必然促進學生的成長。
基于專家講座的視野拓展 在課程講授的最后階段,安排一次專家講座,以改變課堂教學相對嚴肅的氣氛。講座的專家可以通過學校、學院或者其他教師協調,邀請參與過VC++項目開發的企業技術人員,或者是畢業后從事相關技術開發的學生,并可建立長期的合作關系。講座的內容圍繞VC++技術在各個行業的應用,重點講解行業軟件的設計架構、用戶操作及應用效果。在講座過程中,學生可跳出知識細節,從更宏觀的角度看待問題,更容易理清楚課程脈絡,可最大限度避免常見的陷入細節現象。
4 應用效果
華北電力大學的VC++課程開設在大二第一學期,針對2014級學生采用本文提出的四位一體課程授課模式。在整個學期授課過程中,優化原有教材中的若干案例,修改后的案例講解基本能控制在一次課程范圍內。如將“繪圖系統”拆分為三個案例:圖形的繪制、畫筆的使用和畫刷的使用。
通過整理分析,從教師的科研項目中剝離出五個題目:小型基建項目管理、系統權限管理、Excel文件導入模塊、電力企業數據對比顯示和光伏功率預測結果展示等。以課后作業的形式布置給學生,在課程考核之前,大部分學生基本完成相應的功能。
在這一學期,全年級共有10多組40余名學生參加了學校組織的大學生創新創業計劃項目。在VC++課程中雖然不能直接指導競賽,但絕大部分學生選擇VC++作為開發環境,在查找與題目相關的其他資料基礎上,能夠將所學內容應用到具體場景,加深對課程的理解和掌握。
由于其他原因,本次授課過程未能邀請到知名企業人員做相關講座。為了彌補,課程組教師整理參與的所有科研項目,并從網絡上搜集相關軟件系統的說明,為學生做了一次課程的補充。
在課程考核中,最終成績由試卷+上機兩部分組成。與上一屆學生相比,本屆學生的最終成績有五分左右的提升,其中試卷部分基本持平,但上機部分都一定程度的提高。此外,在學期末還有為期兩周的VC++課程設計。從學生提交的程序代碼和報告來看,表現出:1)課程設計題目更加多樣,自選題目的學生人數較上屆增加;2)同樣題目的課程設計,在功能細節上更加完善。
5 結論
針對VC++課程授課過程中對學生動手能力提升的欠缺,筆者結合多年的教學經驗,提出基于“教學/科研/競賽/講座”四位一體的VC++課程授課模式。實踐證明,該方法在多種維度刺激了學生的學習興趣,有利于提高學生分析問題和解決問題的能力,在教學中取得較為理想的效果。
參考文獻
[1]趙燕萍.案例教學法在Visual C++程序設計教學中的探索[J].長春理工大學學報,2012(3):221-222.
[2]魏春英.案例教學在《VC++面向對象程序設計》課程中的應用[J].濟寧學院學報,2009(3):33-34.
[3]趙曉平,趙秀莉.案例教學在Visual C++課程教學中的應用[J].中國科教創新導刊,2011(22):93.
[4]黃華軍.C++程序設計教學改革探索[J].計算機教育,
2014(2):38-41.
[5]徐暉,嚴圣華. NIIT教學法及其在VC++教學應用的研究[J].計算機光盤軟件與應用,2012(21):283-284.
[6]Dawson M. Beginning C++ through game Programming third edition[M].Course Technology PTR,2011.
[7]白霞,高飛,趙娟.基于計算思維的C++面向對象程序設計教學改革[J].計算機教育,2014(11):7-9.
[8]劉井蓮,趙衛績.C++教學改革與探索[J].赤峰學院學報:自然科學版,2012(17):209-210.