徐洪智,張彬連,鐘鍵
(吉首大學(xué)軟件服務(wù)外包學(xué)院,張家界 427000)
《C++程序設(shè)計(jì)》課程實(shí)驗(yàn)教學(xué)改革與探索
徐洪智,張彬連,鐘鍵
(吉首大學(xué)軟件服務(wù)外包學(xué)院,張家界 427000)
實(shí)踐教學(xué)有助于鞏固知識,培養(yǎng)觀察問題、分析問題和解決問題的能力,提高實(shí)踐教學(xué)質(zhì)量對高校專業(yè)教育具有重要意義??紤]實(shí)驗(yàn)項(xiàng)目之間的遞進(jìn)性和連貫性,以及學(xué)生自學(xué)能力培養(yǎng)與個(gè)性發(fā)展需要,設(shè)計(jì)《C++程序設(shè)計(jì)》課程基礎(chǔ)驗(yàn)證型、綜合設(shè)計(jì)型、實(shí)踐創(chuàng)新型三個(gè)層次的實(shí)驗(yàn)教學(xué)項(xiàng)目體系?;贑DIO模式教育理念進(jìn)行實(shí)驗(yàn)項(xiàng)目的構(gòu)思、設(shè)計(jì)、實(shí)施、運(yùn)作,充分發(fā)揮學(xué)生在實(shí)驗(yàn)過程中的自主性,有效提升學(xué)生C++程序設(shè)計(jì)能力和創(chuàng)新能力。
C++課程;實(shí)驗(yàn)項(xiàng)目;CDIO;教學(xué)改革
隨著國家經(jīng)濟(jì)的快速發(fā)展,社會對畢業(yè)生的要求越來越高,不僅要求他們具備豐富的理論知識,同時(shí)還要有良好的創(chuàng)造性思維和扎實(shí)的實(shí)踐能力。實(shí)驗(yàn)教學(xué)是一個(gè)培養(yǎng)學(xué)生動手、動腦的過程,既能培養(yǎng)學(xué)生實(shí)事求是的科學(xué)態(tài)度和探究問題的科學(xué)方法,又能幫助學(xué)生形成科學(xué)概念、理解和鞏固科學(xué)知識,培養(yǎng)觀察問題、分析問題和解決問題的能力,是高等教育提高學(xué)生實(shí)踐能力和創(chuàng)新能力的重要途徑之一。實(shí)踐教學(xué)質(zhì)量是教育質(zhì)量的重要組成部分[1],提高實(shí)踐教學(xué)質(zhì)量對高校專業(yè)教育具有重要意義。
《C++程序設(shè)計(jì)》課程是軟件工程等專業(yè)的專業(yè)基礎(chǔ)課,也是實(shí)踐性很強(qiáng)的課程[2],該課程對面向?qū)ο蟮能浖O(shè)計(jì)思維培養(yǎng)具有重要作用[3]。通過對C++課程的學(xué)習(xí),要求學(xué)生掌握面向?qū)ο蟪绦蛟O(shè)計(jì)中的抽象、封裝、繼承和多態(tài)等理論,理解軟件的可重用性、可擴(kuò)充性和可維護(hù)性等,能基于某種C++編程環(huán)境實(shí)現(xiàn)小型軟件項(xiàng)目。由于C++本身涉及的知識較多,部分內(nèi)容較為抽象難懂[4],所以該課程在開設(shè)形式上除設(shè)置理論教學(xué)環(huán)節(jié)之外,一般還會設(shè)置實(shí)驗(yàn)教學(xué)環(huán)節(jié)。經(jīng)過多年實(shí)驗(yàn)教學(xué)的總結(jié)與探索,為進(jìn)一步提高學(xué)生的實(shí)踐能力與創(chuàng)新能力,通過對實(shí)驗(yàn)項(xiàng)目進(jìn)行整合與優(yōu)化,設(shè)計(jì)了C++程序設(shè)計(jì)課程實(shí)驗(yàn)教學(xué)體系。
實(shí)驗(yàn)教學(xué)是培養(yǎng)學(xué)生動手能力與創(chuàng)新能力的重要環(huán)節(jié),以往的C++課程實(shí)驗(yàn)教學(xué)基本圍繞課程知識點(diǎn)展開,對學(xué)生工程實(shí)踐能力和創(chuàng)新能力的培養(yǎng)還不夠。因此,我們在原有的實(shí)踐教學(xué)基礎(chǔ)上,對實(shí)驗(yàn)教學(xué)進(jìn)行改革,按逐層遞進(jìn)、連貫性和適應(yīng)個(gè)性發(fā)展需要的思路對實(shí)驗(yàn)項(xiàng)目進(jìn)行優(yōu)化。
逐層遞進(jìn)。根據(jù)C++課程知識能力目標(biāo)要求,結(jié)合教學(xué)進(jìn)度安排與學(xué)生實(shí)際情況,實(shí)驗(yàn)項(xiàng)目難度基本遵循逐層遞進(jìn)的原則,從C++編程語法開始,到面向?qū)ο笤O(shè)計(jì)思維的培養(yǎng),再到面向?qū)ο笙到y(tǒng)設(shè)計(jì)能力的提高。前十個(gè)實(shí)驗(yàn)項(xiàng)目包含C++程序設(shè)計(jì)的要點(diǎn)并盡量輻射到相關(guān)的專業(yè)課程知識,最后的研究創(chuàng)新型實(shí)驗(yàn)對課程知識進(jìn)行綜合運(yùn)用,培養(yǎng)學(xué)生系統(tǒng)分析與設(shè)計(jì)能力。
連貫性。因?yàn)槊總€(gè)實(shí)驗(yàn)項(xiàng)目看起來是獨(dú)立的,在進(jìn)行實(shí)驗(yàn)項(xiàng)目設(shè)計(jì)時(shí)考慮各個(gè)項(xiàng)目之間的邏輯性與連貫性,使前后項(xiàng)目之間的內(nèi)容銜接性更加緊密,前面的項(xiàng)目為后續(xù)項(xiàng)目提供基礎(chǔ),后面的項(xiàng)目是前面項(xiàng)目的拓展與深化。
適應(yīng)個(gè)性發(fā)展需要。在實(shí)驗(yàn)項(xiàng)目選擇與設(shè)計(jì)時(shí),每個(gè)項(xiàng)目的基礎(chǔ)功能比較簡單,但可以通過一些拓展,使這個(gè)項(xiàng)目變得更具價(jià)值和挑戰(zhàn)性。如在對象建立實(shí)驗(yàn)項(xiàng)目中,建立一個(gè)矩形對象后,不是簡單地用cout顯示這個(gè)矩形的相關(guān)信息,而是將這個(gè)矩形繪制出來,然后編寫移動、著色等函數(shù),這些拓展或可為將來的小游戲設(shè)計(jì)打下基礎(chǔ)??紤]到實(shí)驗(yàn)項(xiàng)目拓展的需要,教師在課程理論教學(xué)時(shí)可提及EGE圖形引擎的應(yīng)用方法,要求學(xué)生自學(xué)一些相關(guān)內(nèi)容。在具體的實(shí)驗(yàn)項(xiàng)目實(shí)施中,學(xué)生可自由拓展一些功能,實(shí)踐創(chuàng)新型項(xiàng)目也可自由選擇,項(xiàng)目功能可自由發(fā)揮,主要培養(yǎng)學(xué)生自主學(xué)習(xí)能力適應(yīng)個(gè)性發(fā)展需要。
按逐層遞進(jìn)的原則與連貫性思路,構(gòu)建《C++程序設(shè)計(jì)》課程基礎(chǔ)驗(yàn)證型、綜合設(shè)計(jì)型、實(shí)踐創(chuàng)新型三個(gè)層次的實(shí)驗(yàn)教學(xué)項(xiàng)目體系。其中,基礎(chǔ)驗(yàn)證型實(shí)驗(yàn)主要加深學(xué)生對C++程序設(shè)計(jì)相關(guān)知識的理解,掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的基本方法,如對象建立的實(shí)驗(yàn)要掌握類的定義方法,理解構(gòu)造函數(shù)和析構(gòu)函數(shù)何時(shí)被執(zhí)行,對象在內(nèi)存中的大小等;綜合設(shè)計(jì)型實(shí)驗(yàn)內(nèi)容涉及本課程的綜合知識或與本課程相關(guān)課程知識,注重學(xué)生對理論知識的理解與綜合應(yīng)用,主要側(cè)重于C++面向?qū)ο缶幊趟枷?,培養(yǎng)學(xué)生面向?qū)ο蟮某绦蛟O(shè)計(jì)思維以及綜合運(yùn)用知識的能力,如多態(tài)和虛函數(shù)實(shí)驗(yàn)要求理解C++中的虛機(jī)制,掌握虛函數(shù)的應(yīng)用,本實(shí)驗(yàn)還涉及圖形的相關(guān)操作,要求學(xué)生自學(xué)圖形引擎的相關(guān)函數(shù)并加以應(yīng)用;實(shí)踐創(chuàng)新型實(shí)驗(yàn)為一個(gè)小型應(yīng)用項(xiàng)目,要求學(xué)生自己拓展項(xiàng)目的功能并按軟件工程的方法設(shè)計(jì)與實(shí)現(xiàn),撰寫項(xiàng)目設(shè)計(jì)文檔,項(xiàng)目結(jié)束時(shí)對項(xiàng)目進(jìn)行演示和講解,旨在培養(yǎng)學(xué)生的軟件項(xiàng)目分析與實(shí)現(xiàn)能力。根據(jù)課程知識與能力線索設(shè)計(jì)C++課程實(shí)驗(yàn)項(xiàng)目表如表1所示。
C++程序設(shè)計(jì)實(shí)驗(yàn)項(xiàng)目基于CDIO(Conceive,De?sign,Implement,Operate;構(gòu)思,設(shè)計(jì),實(shí)施,運(yùn)作)教育理念進(jìn)行實(shí)施,CDIO是一種指導(dǎo)工程教育人才培養(yǎng)模式改革的教育理念,強(qiáng)調(diào)學(xué)生在一個(gè)工程項(xiàng)目的生命周期中的自主學(xué)習(xí)和實(shí)踐[5],注重培養(yǎng)學(xué)生獲得扎實(shí)的基本理論和工程專業(yè)知識[6]。在實(shí)驗(yàn)項(xiàng)目的構(gòu)思、設(shè)計(jì)、實(shí)施、運(yùn)作過程中,學(xué)生是主體,實(shí)施“做中學(xué)”[7],教師是引導(dǎo)者,更多的是引導(dǎo)或指導(dǎo)學(xué)生學(xué)習(xí)?;贑DIO的項(xiàng)目實(shí)施方案如圖1所示,為增強(qiáng)學(xué)生的工程實(shí)踐能力,學(xué)院通過校企深度合作聘請企業(yè)技術(shù)專家與學(xué)校教師一起共同擔(dān)任最后的實(shí)踐創(chuàng)新型項(xiàng)目指導(dǎo)。
表1 C++課程實(shí)驗(yàn)項(xiàng)目表
圖1 基于CDIO的項(xiàng)目實(shí)施
項(xiàng)目構(gòu)思階段主要培養(yǎng)學(xué)生獲取軟件項(xiàng)目需求的能力,要求學(xué)生根據(jù)項(xiàng)目基本描述理解項(xiàng)目的主要功能或業(yè)務(wù)需求,對于實(shí)踐創(chuàng)新型項(xiàng)目,則由教師對學(xué)生進(jìn)行編組,每個(gè)項(xiàng)目組需進(jìn)行必要的項(xiàng)目調(diào)研,確定組員角色及任務(wù)分工;設(shè)計(jì)階段主要培養(yǎng)學(xué)生進(jìn)行軟件項(xiàng)目設(shè)計(jì)的能力,《C++程序設(shè)計(jì)》課程實(shí)驗(yàn)項(xiàng)目主要為類和對象的設(shè)計(jì),為了實(shí)現(xiàn)項(xiàng)目的功能,學(xué)生所要做的工作是確定定義哪些類,類中有哪些數(shù)據(jù)成員和成員函數(shù),具體的算法是怎樣的,輸入和輸出格式如何;項(xiàng)目實(shí)施階段主要培養(yǎng)學(xué)生編碼與調(diào)試能力,學(xué)生根據(jù)設(shè)計(jì)階段產(chǎn)生的設(shè)計(jì)文檔應(yīng)用C++語言進(jìn)行編碼實(shí)現(xiàn),并對代碼進(jìn)行調(diào)試與測試,本階段要注意代碼的風(fēng)格,提高程序的可讀性和可維護(hù)性;項(xiàng)目運(yùn)作階段主要學(xué)生歸納總結(jié)與表達(dá)能力,本階段要求學(xué)生提交實(shí)驗(yàn)項(xiàng)目報(bào)告,實(shí)踐創(chuàng)新型項(xiàng)目則進(jìn)行項(xiàng)目評審,學(xué)生講解項(xiàng)目設(shè)計(jì)思路,演示項(xiàng)目實(shí)現(xiàn)的功能,回答評審組教師的提問。
C++是C語言的繼承,它既支持面向過程的程序設(shè)計(jì),又支持面向?qū)ο蟮某绦蛟O(shè)計(jì),它不僅擁有高效運(yùn)行的實(shí)用性特征,同時(shí)擁有程序設(shè)計(jì)語言的問題描述能力。設(shè)計(jì)《C++程序設(shè)計(jì)》課程基礎(chǔ)驗(yàn)證型、綜合設(shè)計(jì)型、實(shí)踐創(chuàng)新型三層實(shí)驗(yàn)項(xiàng)目體系,基于CDIO教育理念進(jìn)行實(shí)施,充分發(fā)揮學(xué)生在實(shí)驗(yàn)過程中的自主性,有效提升學(xué)生C++程序設(shè)計(jì)能力和創(chuàng)新能力。
[1]劉元林,孟慶強(qiáng),潘莉,胡丹.實(shí)踐教學(xué)質(zhì)量監(jiān)控與評價(jià)指標(biāo)體系的構(gòu)建研究[J].實(shí)驗(yàn)技術(shù)與管理,2011,28(1):19-21.
[2]馬云吉.C++程序設(shè)計(jì)教學(xué)改革[J].計(jì)算機(jī)教育,2014(2):46-47.
[3]徐洪智.C++程序設(shè)計(jì)課程教學(xué)改革[J].計(jì)算機(jī)教育,2013(12):19-21.
[4]Stanley B.Lippman著,侯捷譯.深度探索C++對象模型[M].武漢:華中科技大學(xué)出版社,2007.
[5]阮夢黎.CDIO導(dǎo)向下軟件開發(fā)課程群建設(shè)的實(shí)踐研究[J].中國成人教育,2015(17):158-160.
[6]陳澎,熊耀華,周慧.基于CDIO模式的軟件工程實(shí)踐教學(xué)課程建設(shè)的研究[J].軟件工程,2016,19(1):1-3.
[7]查建中.論做中學(xué)戰(zhàn)略下的CDIO模式[J].高等工程教育研究,2008(3):1-6.
Reform and Exploration of Experimental Teaching of C++Programming Course
XU Hong-zhi,ZHANG Bin-lian,ZHONG Jian
(Jishou University School of Software and Service Outsourcing,Zhangjiajie 427000)
Practical teaching is helpful to consolidate knowledge,cultivate the ability to observe,analyze,and solve problems.Improving the quality of practice teaching is of great significance to the professional education in Colleges.Takes into account the progressive nature of the experi?mental project,and the cultivation of students'self study ability and the development of students'personality,designs the system of experi?ment teaching project,which is based on the three levels of C++Programming curriculum verification,integrated design and practice inno?vation.The concept,design,implementation and operation of the experimental project play a student's autonomy in the experiment process, and enhance the C++program design ability and innovation ability.
徐洪智(1974-),男,湖南長沙人,副教授,研究方向?yàn)檐浖こ虒I(yè)教學(xué)與管理
2017-03-06
2017-05-01
湖南省普通高?!笆濉睂I(yè)綜合改革試點(diǎn)項(xiàng)目(湘教通[2016]276號)、吉首大學(xué)教學(xué)改革研究項(xiàng)目(No.2014SYJG005、No.2016JSUJD037)
1007-1423(2017)15-0050-04
10.3969/j.issn.1007-1423.2017.15.013
張彬連(1978-),女,湖南湘潭人,碩士,副教授,研究方向?yàn)椴⑿杏?jì)算
鐘鍵(1983-),男,湖南常德人,碩士,講師,研究方向?yàn)閳D像處理技術(shù)
C++Programming Course;Experiment Project;CDIO;Teaching Reform