陳 梟, 譚慧敏, 張麗娜, 張 悅
(1. 沈陽師范大學 科信軟件學院, 沈陽 110034; 2. 沈陽師范大學 研究生處, 沈陽 110034)
國際合作辦學專業C++課程體系建設和教學方法的探索與實踐
陳 梟1, 譚慧敏2, 張麗娜1, 張 悅1
(1. 沈陽師范大學 科信軟件學院, 沈陽 110034; 2. 沈陽師范大學 研究生處, 沈陽 110034)
近年來我國很多高等院校通過與國際知名院校的交流合作在國內開設了國內外聯合培養的計算機相關專業,面向對象程序設計C++是這些專業的一門必修專業基礎課。由于國內外院校針對C++這樣實用性強的課程培養方式和考查方式存在較大差異,給學生出國后繼續深入學習專業知識造成很大困擾。以C++課程在當前聯合培養專業教學過程中存在的課程知識點設置與先導課聯系不夠緊密、課程考核方式片面考核力度不足、課后作業題目設置不合理等問題作為切入點,詳細分析這些問題出現的原因和背景,在學時設置、考核方式、成績評定等多個方面貼近國際教學方式,力爭使學生熟悉國外教學考核方式及理念,能夠更快的適應國外學習生活。實際教學反饋結果表明,采用新教學體系和課程考核方式后使學生國內外專業知識學習做到了零對接,取得了滿意的教學效果。
C++; 聯合培養; 零對接
目前國內很多高校都開設了與國外大學聯合培養的計算機相關專業,這種聯合培養方式的提出,實現了人才培養的多樣性,使我國的高等教育不斷提升國際競爭力[1-4]。面向對象程序設計C++作為這些專業的一門必修專業基礎課,主要介紹面向對象程序設計的方法和C++語言的基本概念,以C++語言中的面向對象程序設計講解為主。當前聯合培養專業學生的C++課程設置還是沿用以前的教學內容和方法,很多出國繼續學習的學生反饋國外相關專業的授課及考核方式與國內有很大不同,學生初到國外時學習感覺非常吃力。本文在詳細分析這些反饋情況后,找到產生這些問題的原因,通過在課程知識點設置、學時設置、考核方式、成績評定等多個方面做出改進,使學生的國內外學習做到零對接,獲得了學生的廣泛好評。
作者多次主講本單位國際合作辦學專業的C++課程,通過與已出國繼續學習學生的交流,發現這門課程在教學過程中還存在以下問題:
1) 國內外對計算機專業學生的培養方式存在差異。雖然國內外高校對于計算機專業課程的定位都是面向實際應用、以就業市場需求為導向側重培養學生的動手能力、實際操作能力,但是由于國內外就業需求和就業環境還存在很大的不同。國內外軟件開發公司對應聘者自身素質的實際要求不同,導致高校培養目標雖然一致,但實際的培養方式還是有所不同,造成聯合培養學生在國外畢業后求職存在一定困難[5-6]。
2) 國內外課程的講授方式、考核方式存在差異。在國外高校講授課程時課上學時安排較少,需要學生在課下進行大量的閱讀和練習,完成一些有難度的課后作業和課程設計。另外國外課程在考核時側重于整個學習過程的考察,即平時成績占的比重很大,并根據課程知識點的重要程度為每個知識點設置不同成績權重,學生最后的期末考試只占總評成績的一部分。這種考核方式避免了考試的偶然性,可以更加真實的反應出學生整個學習過程中的實際表現[7]。
3) 國內教學中布置的課后作業題目設置缺乏前后聯系。教學過程中布置的課后作業題目主要考慮的是通過動手練習使學生能夠掌握理論教學中講授的知識及內容、明確對應章節的重點難點所在,但國內C++課程對應作業題目的設置缺乏前后銜接,大多數只是針對本節內容。這就造成學生完成平時作業沒有問題,但卻沒有辦法將這些知識組成一個知識體系,無法了解知識之間有什么關系,如何在以后的課程設計、畢業設計、實際工作中綜合運用它們開發一個實際的C++軟件系統。
2.1 課程體系建設
在廣泛了解國內高校聯合培養專業及國外院校的教學計劃和教學內容后,制定適用于沈陽師范大學學生的聯合培養專業的教學大綱,并為每章的學習內容設置相應的成績權重。
在制定新的教學大綱時需要考慮授課學生的學習特點、C++先導課程的掌握情況等多個條件。作者在多次的授課過程中發現很多學生對C++課程的先導課----C語言程序設計學習的不夠扎實、動手能力也不強,在初學C++課程時難以跟上原有教學大綱設定的學習進度。考慮以上情況新的C++教學大綱編寫時在正式開始學習面向對象程序設計前加入了一章過渡章節,這章主要復習C語言程序與C++相關的知識點和所需基礎知識,使學生在學習C++課程前能夠有一個復習鞏固已有知識和了解新知識的過渡過程。同時作者通過與有海外求學經歷的同事以及現定居國外供職于軟件開發公司的親屬的深入交流,確定了教學的重點和難點并為每章學習內容設置成績權重[8-9]。修改后的教學大綱及帶權重章節設計如圖1所示,圖1中百分比數字代表相應章節練習及作業題目占課程總成績的權重。
2.2 課程教學和考核的改革與實踐
當前的C++教學過程分為理論教學和實驗教學,但實際教學過程靈活多變,實際所需理論或實驗學時數量無法提前準確定義,所以在教學改革中首先所做的就是確定課程總授課學時,不區分理論學時和實驗學時的數量。得益于教學所在單位充足的實驗室和實驗設備,因此將大部分教學所用教室選在實驗室,使學生在理論學習后可以及時動手實踐當堂所學內容[10]。

第1部分:C/C++基礎(10%)第1章 C/C++基礎(10%)第2部分:面向對象編程和C++(20%)第2章 面向對象編程概述和C++語言基礎(10%)第3章 類和對象(10%)第3部分:繼承和多態(20%)第4章 繼承(10%)第5章 多態(10%)第4部分:泛型編程,STL(標準模板庫)(10%)第6章 泛型編程(5%)第7章 STL(標準模板庫)(5%)第5部分:Boost庫(5%)第8章 Boost庫(5%)第6部分:課程設計(10%)期末考試(25%)
圖1 面向對象程序設計C++主要教學內容及權重
Fig.1ThemainteachingcontentandweightofObject-OrientedProgrammingC++
基于計算機專業課程側重實際動手能力的培養以及循序漸進的原則,設計編寫前后承接有序符合實際應用開發需求的練習題目和課程設計題目。在新的教學大綱及相關題目設計完畢后,為了使C++課程取得更好的效果,從轉變考核方式和加大考核力度兩個方面入手進一步深化教學改革[11]。
1) 改變課程考核方式
傳統考核方式側重于筆試,而對學生的動手能力考查不足。比如程序如果有錯誤是可以通過編譯環境獲知錯誤的大概位置及原因的,之后學生根據自己理解修改錯誤再編譯;而筆試無法體現出學生的動手能力,對難度不同的試題都統一要求學生用筆作答有時也是無法完成的。除此之外筆試在以往的考核中所占比重過大,由于考試具有偶然性,無法準確獲得學生對知識掌握的真實程度和水平[12]。基于以上原因,新的課程考核方式將期末考試的比重減少為25%,期末考試更側重于對基礎知識的掌握,不涉及難度過大的題目,擴大平時成績占總成績比重為75%,將難度較大的題目放入平時考核。為了全面細致的展現出學生平時學習成果,在計算平時成績時為每章設置知識權重數值,即每章平時成績乘以對應章節權重為該章節最終平時成績,整個課程的平時成績為所有章節平時成績之和。這樣可以使學生直觀了解課程學習的重點,并在學習過程中更有針對性,對重點內容投入更多的精力和時間[13]。
2) 加大平時作業和課程設計成果的考核力度和深度。
在以往對平時作業和課程設計的考核中大多只是檢查成果是否完成要求的基本功能,而對具體設計細節和思路的考核很少。國外院校在對平時作業和課程設計的考核全面而細致,除了完成要求的功能外,還會對學生的結題思路是否最佳、是否利用已學知識得到當前最佳性能、代碼格式是否符合編程規范等多個方面給予考查,并設置相應的分值。基于以上原因,作者在授課過程中也采用了類似的評價方法,雖然學生一開始對這一評分準則非常不適應,甚至有些怨言,但是當學生整個課程堅持下來后看到在課程設計中自己編寫的格式工整、設計思路清晰、性能優異的代碼時都感覺收獲很大[14-15]。
2.3 課程作業題目體系建設
當前C++課程教學中課后題目設計缺乏前后銜接,使學生在學習完整個課程后難以建立起完整的知識體系。作者在參考大量國內外C++課程作業題目并結合授課學生的實際情況后,對C++課程的作業題目進行重新設計。
在設計的過程中,作者采用的方法是從設計實現一個完整軟件系統的角度出發,考慮每個知識點處于這個系統的對應位置設置作業題目,加大前后章節所學知識作業題目的相關性。作業題目設計的整體思路是要考慮知識點前后銜接,這里的前后銜接既要考慮章與章之間的銜接,也要考慮每章內節與節之間的銜接,并且在作業題目設計中遵循由簡入繁、循序漸進的原則,在題目設計上將已完成作業題目內容作為以后題目的基礎,由于篇幅原因,下面以教學大綱中第三章(類和對象)的課后作業題目設計為例對整個題目設計流程進行講解,本章課后作業題目主要內容如圖2所示。
圖2中的作業題目從設計只包含必要內容的最簡單的Point類入手,逐步將后續學習的其他內容加入。題目5中還將本章的類和對象內容與前面章節所學重點內容----重載函數結合練習,最后通過題目7和題目8使同學們掌握如何使用已有類構造其他類的過程,這最后2道題目是本章最難的題目,學生經過前幾道題目的鍛煉再來做這2道題目,學生的結題思路更加明確,完成效果很好,也使學生熟悉了解開發復雜軟件項目的設計流程及需要注意的問題。
通過對所有章節的課后作業題目采用圖2所示的方法進行重新設計,學生不但充分掌握本章所學知識之間、本章與前面章節知識之間的相互關系,快速建立起已學內容的知識體系,而且可以了解所學知識在實際軟件系統開發中所處位置,為學生在后續課程的深入學習和以后從事專業工作打了堅實的基礎。

題目1:設計表示二維坐標系中點的Point類,類中兩個數據成員分別代表X軸、Y軸坐標值;成員函數包含默認構造函數、析構函數、X和Y坐標值的Getter與Setter函數、輸出數據成員值的ToString()函數↓題目2:為題目1設計的Point類加入計算當前點到原點距離及當前點到另一點距離的成員函數,函數聲明如下:doubleDistanceOrigin();doubleDistance(Pointp);↓題目3:為題目2的Point類加入拷貝構造函數和使用用戶輸入的x、y坐標值作為參數的構造函數。↓題目4:修改題目3中doubleDistance(Pointp);函數中參數為constPoint&p;并在構造函數中加入輸出語句,對比修改前后構造函數調用次數,分析次數變化的原因。↓題目5:將題目4中的兩個計算距離的函數修改為重載函數Distance(),X數據成員的SetX()和GetX()函數修改為重載函數X(),Y數據成員修改為Y()。↓題目6:將題目5中不需要改變數據成員數值的成員函數設為常成員函數,避免對象使用時的誤操作。↓題目7:使用題目6中的Point類,自行設計使用兩個Point類對象作為數據成員的Line類,要求包含必要的成員函數并實現計算線段長度的功能。↓使用題目6中的Point類,設計Circle類。
圖2 類和對象章節課后作業題目
Fig.2Thehomeworkofclassandobjectchapter
本文通過對國際合作辦學專業C++課程與國外院校同類課程授課過程的分析和比較,針對當前教學體系和教學方法中存在的一些問題提出了相應的改進方案,方案包括制定新的教學大綱、改變課程考核方式、加大考核力度、重新設計課后作業題目等多方面的大膽改革及實踐。這一方案經過作者所在單位國際合作辦學專業實際教學的應用和實施后,初步達到了被授課學生國內外專業課學習零對接的目標,使學生可以在國外繼續學習過程中更快地進入學習狀態,為學生的進一步深造或在國外應聘工作打下良好的基礎。
[ 1 ]羅晨嫻,黃嘉,劉瑞安. 對中外聯合辦學的分析與思考[J].中國高等教育評估,2015(4):46-49.
[ 2 ]李莉. 基于校企聯合辦學的計算機專業教學改革[J]. 電腦知識與技術, 2015(26):117-118.
[ 3 ]黃鳳娟. 淺談國際合作辦學項目下人才的培養[J]. 品牌, 2015(5):258.
[ 4 ]趙陽,李志萍. 中外聯合辦學人才培養模式改革研究與實踐[J]. 華北水利水電大學學報(社會科學版), 2015,31(4):112-114.
[ 5 ]李卓妮,常亮,黃城銳. 中外聯合辦學項目大學生跨文化適應能力的培養模式研究[J]. 太原城市職業技術學院學報, 2015(9):81-83.
[ 6 ]張曉民,張楓. 卓越計劃下C++程序設計雙語教學改革與實踐[J]. 計算機教育, 2016(1):59-62.
[ 7 ]趙海國. 淺議如何提高C++程序設計課程的教學質量[J]. 湖南理工學院學報(自然科學版), 2015,28(4):86-88.
[ 8 ]王蘋.《C++程序設計》實驗教學的研究[J]. 黑龍江科技信息, 2015(35):209.
[ 9 ]張會.C++面向對象程序設計實踐教學改革探討[J]. 西昌學院學報(自然科學版), 2015,29(1):151-153.
[10]陳彬. “C++面向對象程序設計”課程教學改革與探索[J]. 技視界, 2015(13):75.
[11]楊靈. 于提升C++課程教學質量的對策思考[J]. 腦知識與技術, 215(19):135-137.
[12]周本海. 析C++程序設計的創新教學模式[J]. 試周刊, 215(9):119.
[13]夏輝,范書國. 于項目導向和實踐考核體系的軟件項目管理課程教學模式的研究[J]. 沈陽師范大學學報(自然科學版), 2014,32(1):103-106.
[14]張曉孿. 基于實踐的C++程序設計實驗教學模式探索[J]. 微型電腦應用, 2016(8):46-49.
[15]袁友偉. 基于MOOC的C++教學改革[J]. 杭州電子科技大學學報(社會科學版), 2016,12(4):64-69.
ExplorationandpracticeinthesystembuildingandteachingmethodsofC++onthemajorofinternationalcooperation
CHEN Xiao1, TAN Huimin2, ZHANG Lina1, ZHANG Yue1
(1.SoftwareCollege,ShenyangNormalUniversity,Shenyang110034,China; 2.PostgraduateDepartment,ShenyangNormalUniversity,Shenyang110034,China)
Manycollegesanduniversitiesinourcountryhaveofferedjointtrainingmajorincomputerorrelevantsubjectswiththeexchangeandcooperationoftheinternationalfamousuniversitiesinrecentyears,object-orientedprogrammingC++isoneofthecompulsorycoursestothesemajors.BecausethetrainingandtestingmodeofthecourseswithhighpracticabilitysuchasC++aredifferentgreatlyintheuniversitiesathomeandabroad.Thestudentsarehauntedwhentheycontinuetostudyprofessionalknowledgeabroad.Thepapertakestheproblemsexistingintheteachingprocessofjointtrainingmajor’sC++courseasbreakthroughpoints.Theseproblemsincludethattheknowledgepointofthecoursearenotsetcloselyenoughwithguidingcourses,themethodandpowerofcourseassessmentisinsufficient,thesettingofhomeworkareunreasonable.Afteranalyzingthereasonandbackgroundoftheseproblems,thesettingofclasshours,themethodofassessmentandthescoreevaluationaremorerelevanttointernationalteaching.Itistriedtomakestudentsfamiliarwiththeexaminingmethodandideaofteachingandaccommodatewiththestudyandlifeintheforeigncountries.Theactualfeedbackresultsofteachingindicatethattheprofessionalknowledgeofstudentsathomeandabroadismakeaseamlessconnectionafterusingnewteachingsystemandmethods.Thesatisfactoryteachingeffectivenessisachieved.
C++;jointtraining;seamlessconnection
2016-04-16。
遼寧省教育科學十二五規劃課題(JG11DB247); 遼寧省教育科學十三五規劃課題(JG16DB419)。
陳 梟(1980-),男,遼寧錦州人,沈陽師范大學副教授,碩士。
1673-5862(2017)01-0113-04
G
A
10.3969/j.issn.1673-5862.2017.01.022