劉昌余,魯斌
(1.華南農業大學數學與信息學院,廣州 510642;2.五邑大學計算機學院,江門 529020)
探究非計算機專業C++面向對象程序設計課程教學改革
劉昌余1,魯斌2
(1.華南農業大學數學與信息學院,廣州510642;2.五邑大學計算機學院,江門529020)
隨著信息技術的高速發展,社會對復合型人才的需求日趨旺盛。如何在結合專業特色的同時,培養以社會需求為中心的高質量復合型人才,已成為高等教育興衰成敗的關鍵。作為一門交叉性和實踐性都很強的應用型專業,工業工程見證著我國制造業智能化發展過程。目前,關于國內高等院校工業工程專業人才培養模式的劃分主要有四種[1],分別是:管理學學位、機電電氣類工學和管理學雙學位、機械類工學學位,以及其他類工學學位。同時,關于工業工程專業課程體系的劃分主要有三種[2],分別是:分析與決策類課程、設計與改善類課程,以及控制類課程。在這個課程體系中,計算機編程語言類課程,例如:C語言課程、C++語言課程、或Java語言課程,是相關后續課程的基礎。
目前,在工業工程專業計算機編程語言類課程設置方面,華南農業大學數學與信息學院信息工程系開設了C++面向對象程序設計課程。C++語言,作為C語言的升級版,不僅保留了其面向過程的所有優點,而且新增了一些諸如封裝、繼承和多態等面向對象的處理機制,同時較Java語言有更好的運行效率。對于非計算機專業的工業工程學生來說,由于專業所涵蓋的課程類型差別較大,采用傳統針對計算機專業C++面向對象程序設計課程的教學方法已不能取得較好教學效果。同時,為了更好地備戰即將開展的教育部普通高等學校本科教學評估工作,有必要也迫切需要對非計算機專業C++面向對象程序設計課程的教學改革進行探究。
1.1課程基本情況分析
針對計算機專業和非計算機專業的不同需求,華南農業大學數學與信息學院每學年都開設了一系列C++/OOP(Object-Oriented Programming,面向對象程序設計)課程。表1給出了2015-2016學年C++/OOP課程開設情況。
其中,C++面向對象程序設計課程,作為工業工程專業的一門任選課,完整地且系統地介紹了面向對象程序設計基本思想和編程原理。該課程的基本情況如表2所示。通過此門課程的學習,需要使學生掌握面向對象程序設計基本語法概念,熟練運用C++語言進行基本的面向對象程序設計,具備用C++語言描述和解決現實世界中簡單問題能力,并為后續課程的學習,如算法分析與設計課程,及今后的軟件開發奠定良好的編程基礎。在選修該課程之前,要求已學習并掌握計算機應用基礎和計算機導論等相關課程。課程教學的重點在于:三大基本語句、函數定義調用及參數傳遞、全局及局部變量、數組定義使用、數組與指針、指針與函數、類與對象、運算符重載、友元函數和模板定義使用等。課程教學的難點在于:多維數組與指針、淺拷貝與深拷貝、內聯函數、函數重載、虛函數、純虛函數、繼承與派生、和標準模板庫等。

表1 2015-2016學年華南農業大學數學與信息學院C++/OOP課程開設情況

表2 C++面向對象程序設計課程基本情況
1.2教學存在問題分析
通過在華南農業大學數學與信息學院的教學實踐發現,在面向工業工程專業的C++程序設計課程教學中主要存在以下一些問題:
(1)非計算機專業的學生缺乏該課程必要的一些先期基礎積累,導致某些章節的講解比較困難,學生要學的新知識點比較多,導致花在學習語法上的時間要遠多于實踐上的時間,同時學習興趣也會有所降低;
(2)用于鞏固提升所學C++知識的后續相關進階課程或實踐較少。除了少量涉及用C++做畢業設計論文的之外,很多學生都會感覺到,在通過該課程的考核之后,再也不會用上這些已學的知識。因此,從一開始,大部分學生的學習目的不是很明確,都覺得沒有義務一定要學好該課程。
(3)從表1可以看出,目前在所列出的課程中,該課程無論是在實踐學時方面還是在總體學時方面,都是最少的,導致學完該課程之后,不少學生不能較好地實現一些簡單實用的程序,也不能很好地運用所學知識解決實際問題;
(4)面向計算機專業的C++考核機制不能很好地適應非計算機專業的實際情況,導致考核方式不能有效激發學生學習動力,以及考核結果不能全面體現學生學習情況和解決實際問題能力。
(5)目前的教學方式主要采用講授教學法,沒有充分發揮學生學習主觀能動性,不能很好地調動學生的學習興趣。同時,相對而言,與驗證型實驗次數相比,綜合型設計實驗次數相對較少,不利于培養學生對知識的系統把控力以及綜合素質能力。
為有效地解決上述存在的一些教學問題,該課程教學迫切需要與時俱進的改革措施。為此,本文對基于能力矩陣的C++課程教學改革進行了探究。
該課程總體能力目標定位為:理論學習方面,學生需要掌握面向對象程序設計的基本概念和思想,以及C++應用開發相關的基礎知識;實踐學習方面,學生需要熟練采用一種C++工具,實現驗證型實驗和綜合型設計實驗所要求的知識點,同時具備數據庫及網絡等實戰應用類型程序開發能力。相應地,本文提出了一種用于實現上述總體能力目標的非計算機專業C++面向對象程序設計課程能力實現矩陣,如表3所示。
3.1教學方式改革探究
(1)理論教學改革探究
在非計算機專業的編程課程教學中,首要的任務是培養學生學習興趣。從上述構建的能力矩陣中可以看出,提倡以能力為導向的C++教學其實并沒有縮減所必須掌握的知識點,而是在傳統的基礎上添加并優化了面向能力培養的知識點。為在有限的學時條件下,能有效提升學習興趣且實現總體能力目標,需要在理論授課的過程中采用案例式教學法和主題式教學法。
案例式教學法方面,需要針對能力矩陣授課進程安排,來精心準備一些學生感興趣且可以參與其中的驗證型和綜合型案例。案例式教學的主要作用在于,首先可以貫穿和融合原本分散的能力知識點,其次可以分層進階的方式突破教學重難點,同時可以以生動的方式展現編程課程魅力并提升學生學習的熱情。

表3 非計算機專業C++面向對象程序設計課程能力實現矩陣
主題式教學法方面,每隔一定數量的學時發布一些面向能力培養的兼具理論性和實踐性的主題,由學生自發分組合作收集相關資料,結合課下編程實踐形成匯報內容,然后通過小組代表課堂研討或提交作品來檢查和展示所學成果。主題式教學可以有效更新和補充工業工程專業背景下的程序設計課程特有的知識點,例如基于面向對象程序的智能制造。
(2)實踐教學改革探究
能力與實踐總是分不開的,在程序設計課程學習中也是如此。由于能力的實現是一個漸進的過程,因此需要漸進的實踐。
首先,需要實施驗證型實踐,來檢驗已學的知識。針對理論教學中的一些關鍵知識點,設計驗證型程序設計作業,或者在已配備的八學時實踐課上,當堂使學生對剛學的知識進行補缺查漏。
其次,需要綜合型實踐,來貫穿并系統化已學的知識。在理論課的一開始發布綜合型程序設計的要求和時間點,讓學生自發分組。在理論課快結束的時候,采用現場分組答辯或者線下作品打分等方式,檢驗所學知識是否已完整化和系統化。
最后,需要項目驅動型實踐。根據華南農業大學歷年發布的大學生創新創業項目名單,工業工程專業學生基本每年都能有省級或以上級別項目被立項。不過其中很少會有編程類型的項目。這也說明了項目驅動型實踐教學還有很大的發展空間。未來需要在考慮能力培養的基礎上,從指導教師和學生兩個角度來綜合擬定參評項目。
3.2考核方式改革探究
以能力培養為導向的C++面向對象程序設計課程教學,不僅需要在理論教學和實踐方面進行教學改革,還需要在考核方式方面進行教學改革。傳統的大部分課程都是采用了平時成績和期末成績進行加權的方式進行課程考核。這種方式無法避免有些學生臨時抱佛腳的心態,也較難適應新時代綜合型人才培養的需求。為此,從能力培養的角度上變更了該課程考核方式,使得最終的成績由平時成績、期末成績和實踐成績三部分構成。其中,平時成績主要由課堂考勤、隨堂測驗、和課后作業三塊構成;期末成績主要由選擇題和判斷題,以及填空題和編程題等構成;實踐成績主要由平時驗證型上機實踐和期末綜合型課程設計構成。未來需要在實踐成績中納入大創等類型已立項相關項目加分項,以及課堂討論及研討加分項。除了教學方式和考核方式外,還需要對之前實施的教學大綱進行改革。圍繞課程能力實現矩陣,調整C++面向對象程序設計課程大綱各個子模塊內容。例如,在教學難點小節中,需要引入進階式的實踐性難點。進而從教學源頭來頂層設計能力培養大框架。
本文結合筆者在華南農業大學數學與信息學院的任教經歷,提出了基于能力矩陣的C++面向對象程序設計課程教學改革方案,主要內容包括構建課程能力矩陣和探究基于能力矩陣的課程教學改革措施。未來的工作,需要在調研工業工程專業的核心能力指標體系基礎上,細化目前的課程能力實現矩陣,并加權其中的核心能力的授課安排。
[1]陳友玲,張浩,王成明.21世紀工業工程專業建設及人才培養[J].重慶大學學報(社會科學版),2003,9(6):141-142.
[2]劉利軍.高校工業工程專業建設探討[J].中國現代教育裝備,2007,10:85-86.
[3]鄭莉,董淵,何江舟.C++語言程序設計(第4版)[M].北京:清華大學出版社,2010.
Non-Computer Majors;Object-Oriented Programming in C++;Teaching Reform;Ability Cultivation
Research on the Teaching Reformation of C++Object-Oriented Programming for Non-Computer Majors
LIU Chang-yu1,LU Bin2
(1.College of Mathematics and Informatics,South China Agricultural University,Guangzhou 510642;2.School of Computer Science,Wuyi University,Jiangmen 529020)
1007-1423(2016)24-0050-04DOI:10.3969/j.issn.1007-1423.2016.24.013
劉昌余(1984-),男,工學博士,講師,研究方向為事件檢測、計算機應用,Email:yezhich@gmail.com
2016-08-10
2016-08-18
針對非計算機專業C++面向對象程序設計課程教學中普遍存在的問題,提出以能力培養為導向的教學改革方案。該方案,首先選取所任教的華南農業大學工業工程專業開設的C++課程作為教學改革對象,并分析目前該課程的基本情況和教學中存在的一些主要問題。其次,從能力指標分解和授課進程安排兩方面,構建非計算機專業C++課程能力實現矩陣。最后,從教學方式和考試方式兩方面,探究面向能力導向的C++教學改革措施。
非計算機專業;C++面向對象程序設計;教學改革;能力培養
廣東省科技計劃項目(No.2016A020210103)、五邑大學博士啟動金項目(No.2014BS07)
魯斌,男,講師,研究方向為復雜網絡、計算機應用
To solve prevalent teaching problems in C++Object-Oriented Programming course for non-computer majors,proposes an ability cultivation oriented teaching reform solution.Firstly,chooses the C++course of the industrial engineering major in South China Agricultural U-niversity as the teaching reform target,and analyzes current situation as well as main issues in the teaching of the course in the solution. Secondly,constructs an ability realization matrix of C++course for non-computer majors based on ability index decomposition and teaching process arrangement in the solution.Finally,explores ability cultivation oriented teaching reform measures of C++object-oriented programming from aspects of teaching approaches and examination approaches in the solution.