鐘原 劉忠慧
摘? 要:針對計(jì)算機(jī)專業(yè)基礎(chǔ)核心課程《面向?qū)ο蟪绦蛟O(shè)計(jì)》的教學(xué)過程中,學(xué)生普遍存在從面向過程的程序設(shè)計(jì)思維方式向面向?qū)ο蟮乃季S方式轉(zhuǎn)變的困難,本文結(jié)合理論與實(shí)踐教學(xué)環(huán)節(jié),提出一種以“面向?qū)ο蟪绦蛟O(shè)計(jì)思維”為導(dǎo)向,以CDIO理念為基礎(chǔ)的互動(dòng)教學(xué)模式,通過構(gòu)建“案例+項(xiàng)目”式的教學(xué)內(nèi)容,實(shí)施層次化、階段性、遞進(jìn)式的教學(xué)過程,使學(xué)生逐步理解并掌握了面向?qū)ο蟮乃季S方式,取得了較好的教學(xué)效果。
關(guān)鍵詞:面向?qū)ο笏季S;案例+項(xiàng)目驅(qū)動(dòng);互動(dòng)式教學(xué);實(shí)踐教學(xué)體系
中圖分類號:TP399? ? ?文獻(xiàn)標(biāo)識碼:A
Teaching Research and Practice of Object-Oriented Programming
Thinking Based on CDIO
ZHONG Yuan,LIU Zhonghui
(College of Computer Science,Southwest Petroleum University,Chendu 610500,China)
Abstract:In view of the difficulty of changing from the process-oriented thinking to the object-oriented thinking that the students majoring in computer science have in the teaching process of the basic course Object-Oriented Programming Design,by combining theory with practice,this paper proposes an interactive teaching mode based on CDIO concept and guided by Object-Oriented Programming thinking.By constructing the teaching content of Case + Project,the teaching process has become hierarchical,phased and progressive so that students can gradually understand and master the object-oriented programming thinking,which has achieved good teaching results.
Keywords:object-oriented thinking;Case+Project driven;interactive teaching;practical teaching system
1? ?引言(Introduction)
根據(jù)計(jì)算機(jī)專業(yè)的人才培養(yǎng)方案,《面向?qū)ο蟪绦蛟O(shè)計(jì)》是計(jì)算機(jī)專業(yè)的一門專業(yè)核心課程,在程序設(shè)計(jì)思維培養(yǎng)和編碼能力訓(xùn)練中具有極其重要的位置。該課程開設(shè)在《C語言程序設(shè)計(jì)》之后,共有64學(xué)時(shí)(理論40,實(shí)驗(yàn)24),課程大綱涵蓋了基礎(chǔ)語法,重點(diǎn)要求掌握面向?qū)ο蟮奶匦裕悍庋b、繼承、多態(tài)等知識模塊。課程內(nèi)容的理論性較強(qiáng),如以知識點(diǎn)的講解為主,學(xué)生無法深刻理解面向?qū)ο螅∣bject Oriented,OO)的思維模式,導(dǎo)致其程序設(shè)計(jì)思維方式依然停留在面向過程(Procedure Oriented,PO)中。本研究在CDIO[1-3](Conceive-構(gòu)思、Design-設(shè)計(jì)、Implement-實(shí)現(xiàn)和Operate-運(yùn)作)理念指導(dǎo)下,改變以往從孤立知識點(diǎn)出發(fā),強(qiáng)灌式的理論課堂模式[4],提出以面向?qū)ο笤O(shè)計(jì)思維為導(dǎo)向的教學(xué)過程,將理論和實(shí)踐教學(xué)緊密結(jié)合,運(yùn)用“案例+項(xiàng)目”的互動(dòng)教學(xué)模式,不斷引導(dǎo)學(xué)生從面向過程的思維過渡到面向?qū)ο蟮乃季S,從而更全面掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的方法,激發(fā)創(chuàng)新型思維,培養(yǎng)具有自主創(chuàng)新和創(chuàng)造的計(jì)算機(jī)專業(yè)人才。
2? ?面向?qū)ο笏季S方式(Object-oriented thinking)
《面向?qū)ο蟪绦蛟O(shè)計(jì)》課程以Java語言作為講授對象,傳授面向?qū)ο蟮母拍钐匦裕渲兄匾慕虒W(xué)目標(biāo)是掌握面向?qū)ο蟮木幊谭椒?,引?dǎo)學(xué)生從面向過程思維方式轉(zhuǎn)向面向?qū)ο蟮乃季S方式。但是,面向?qū)ο笈c前序課程學(xué)習(xí)的面向過程的程序思維方式有著截然不同的邏輯,如圖1所示。要轉(zhuǎn)變已形成的定向思維模式必然面臨較大的挑戰(zhàn)。
圖1 面向過程與面向?qū)ο?/p>
Fig.1 Process-oriented and object-oriented
面向過程強(qiáng)調(diào)解決問題所需要的步驟,并通過調(diào)用函數(shù)(過程)將步驟逐一實(shí)現(xiàn);而面向?qū)ο髣t把構(gòu)成問題的事物分解成各個(gè)對象,使用對象封裝事物的屬性,并通過調(diào)用對象的方法來解決問題。因此面向?qū)ο笏季S方式轉(zhuǎn)換的關(guān)鍵在于建立“一切皆對象”的思維模式[5],將面向?qū)ο笏季S中的三個(gè)重要特性:封裝,繼承和多態(tài)貫穿于整個(gè)教學(xué)活動(dòng)中。因此,在理論和實(shí)踐教學(xué)過程中,教學(xué)內(nèi)容,教學(xué)方法,教學(xué)過程都應(yīng)以面向?qū)ο笏季S為導(dǎo)向[6],摸索學(xué)生的認(rèn)知規(guī)律,激發(fā)學(xué)生興趣,引導(dǎo)學(xué)生去思考、去設(shè)計(jì)、去實(shí)現(xiàn)、去應(yīng)用,從而掌握這種程序設(shè)計(jì)思想和方法。
3? 以面向?qū)ο鬄閷?dǎo)向的理論教學(xué)改革(Object-oriented theory teaching reform)
3.1? ?建立“案例式”的課程教學(xué)內(nèi)容
根據(jù)課程教學(xué)目標(biāo)和內(nèi)容要求,梳理教學(xué)內(nèi)容,主要包括以下兩個(gè)方面:(1)提煉面向?qū)ο蟪绦蛟O(shè)計(jì)的理論模塊:①語言概述+開發(fā)環(huán)境(JDK、Eclipse);②基礎(chǔ)語法(數(shù)據(jù)類型、控制流程、數(shù)組等)和基礎(chǔ)算法(最值、排序等);③面向?qū)ο笳Z法特性(類、對象、繼承、抽象、接口、多態(tài)、異常等)以及延伸的;④開發(fā)平臺功能(網(wǎng)絡(luò)、圖形)等模塊。(2)制作案例式的教學(xué)內(nèi)容:針對不同理論模塊以及相關(guān)知識點(diǎn)設(shè)計(jì)案例,編寫代碼,制作演示文稿。重點(diǎn)針對面向?qū)ο蟮奶匦?,設(shè)計(jì)與面向過程的對比案例,形成對比的設(shè)計(jì)思路,并進(jìn)行代碼級的比較。將面向過程的設(shè)計(jì)方法與面向?qū)ο蟮脑O(shè)計(jì)方法進(jìn)行多維度的比較,從而引導(dǎo)學(xué)生轉(zhuǎn)變設(shè)計(jì)思維。
如案例A:編寫一個(gè)計(jì)算三角形面積的程序,分別用C語言和Java語言實(shí)現(xiàn)。首先要求學(xué)生以C語言的函數(shù)方式計(jì)算面積,并通過函數(shù)調(diào)用實(shí)現(xiàn)程序,如圖2所示;再引導(dǎo)學(xué)生設(shè)計(jì)三角形類,并通過對象調(diào)用方法實(shí)現(xiàn)程序功能,如圖3所示。在此過程中,學(xué)生會(huì)潛移默化的對比兩種思維方式的差異,從而掌握面向?qū)ο笾蓄惖姆庋b功能,理解對象的含義,并學(xué)會(huì)應(yīng)用對象調(diào)用方法實(shí)現(xiàn)功能。
圖2 面向過程方式
Fig.2 Process-oriented approach
圖3 面向?qū)ο蠓绞?/p>
Fig.3 Object-oriented approach
3.2? ?基于CDIO的“互動(dòng)式”教學(xué)方法
教學(xué)過程中改變傳統(tǒng)課堂授課方式,開展基于CDIO(Conceive-構(gòu)思、Design-設(shè)計(jì)、Implement-實(shí)現(xiàn)和Operate-運(yùn)作)的互動(dòng)式教學(xué)方法,通過“提出問題/需求引導(dǎo)學(xué)生討論→設(shè)計(jì)→編碼→演示”的五大環(huán)節(jié),將理論與實(shí)踐進(jìn)行交叉,使學(xué)生在做中完成知識理論學(xué)習(xí)[5],提高學(xué)習(xí)興趣,激發(fā)學(xué)生自主學(xué)習(xí)潛能。
(1)提出問題:某公司有若干雇員,需設(shè)計(jì)程序進(jìn)行員工信息的管理,思考如何表示員工的信息,并實(shí)現(xiàn)對于員工信息的操作。
(2)引導(dǎo)討論:分析員工的靜態(tài)屬性,如:name,sex,age,
salary,hireDay;分析員工行為,如:getName(),setName(),
getHireDay(),setHireDay(),raiseSalary(),…引導(dǎo)學(xué)生進(jìn)行小組討論。
(3)進(jìn)行設(shè)計(jì):引導(dǎo)學(xué)生利用UML進(jìn)行類的設(shè)計(jì),如圖4所示,理解屬性和方法的含義。
圖4 雇員UML類圖
Fig.4 Employee UML class graphic
(4)編碼與演示:課堂上設(shè)計(jì)編碼與演示的實(shí)踐環(huán)節(jié),充分與學(xué)生進(jìn)行互動(dòng),老師演示編碼與學(xué)生編碼演示交叉進(jìn)行,同時(shí)提升學(xué)生的動(dòng)手實(shí)踐能力。如首先創(chuàng)建員工類,再通過類實(shí)例化對象,最后通過對象調(diào)用方法實(shí)現(xiàn)案例要求的功能。
3.3? ?實(shí)施層次化、階段性、遞進(jìn)性的教學(xué)過程
針對不同的模塊實(shí)施教學(xué)過程管理,主要包含兩個(gè)層次:①對于基礎(chǔ)語法模塊采用“點(diǎn)+線”的教學(xué)過程:“點(diǎn)”即零碎的知識點(diǎn),如數(shù)據(jù)類型(整形、浮點(diǎn)型)、運(yùn)算符(關(guān)系運(yùn)算符、邏輯運(yùn)算符)等;“線”即由知識點(diǎn)串起的基礎(chǔ)語法。②對于面向?qū)ο筇匦阅K采用“面+塊”的教學(xué)過程:“面”即面向?qū)ο蟮奶卣髡Z法,如類和對象;由“面”可以組合成“塊”,如“類+對象”表示面向?qū)ο笾械姆庋b思想,“父類+子類”表示繼承特性,“抽象+接口”表達(dá)多態(tài)特性。通過層次化、階段性、遞進(jìn)性的教學(xué)過程,逐步加深學(xué)生理解,從而構(gòu)建面向?qū)ο蟪绦蛟O(shè)計(jì)的思維方式。
4? 以面向?qū)ο鬄閷?dǎo)向的實(shí)踐教學(xué)改革(Object-oriented practical teaching reform)
CDIO理念的核心是在“做—中—學(xué)”,將實(shí)踐貫穿到面向?qū)ο蟮乃季S訓(xùn)練中,不斷訓(xùn)練學(xué)生的動(dòng)手實(shí)踐能力[7]。本項(xiàng)目提出“3+1”層次實(shí)踐體系,如圖5所示。3代表按照“分級遞進(jìn)、逐步提高、綜合運(yùn)用”的基本思路設(shè)計(jì)的三個(gè)實(shí)踐階段,1代表一個(gè)實(shí)踐教學(xué)資源庫。
圖5 實(shí)踐教學(xué)體系
Fig.5 Practical teaching system
(1)面向?qū)ο筇匦詫?shí)踐教學(xué):在課堂環(huán)節(jié)融入面向?qū)ο筇匦缘尿?yàn)證與體驗(yàn)的實(shí)踐環(huán)節(jié),引導(dǎo)學(xué)生思考與對比兩種不同的編程思路,通過即時(shí)的動(dòng)手實(shí)踐消化知識點(diǎn)。
(2)案例式實(shí)驗(yàn)教學(xué):在實(shí)驗(yàn)環(huán)節(jié)中,設(shè)計(jì)“案例式”的實(shí)驗(yàn)內(nèi)容,引導(dǎo)學(xué)生進(jìn)一步驗(yàn)證理論知識點(diǎn),通過分析、設(shè)計(jì)和編碼,將面向?qū)ο蟮奶匦匀谌朐O(shè)計(jì)中,融會(huì)貫通。
(3)項(xiàng)目式實(shí)戰(zhàn)教學(xué):在綜合性實(shí)驗(yàn)中,以實(shí)戰(zhàn)項(xiàng)目的方式進(jìn)行分組管理、跟蹤和驗(yàn)收。以用戶需求為導(dǎo)向,分組進(jìn)行完整的項(xiàng)目開發(fā)流程。在實(shí)戰(zhàn)訓(xùn)練中,引導(dǎo)學(xué)生主動(dòng)思考、以面向?qū)ο蟮某绦蛟O(shè)計(jì)模式進(jìn)行項(xiàng)目設(shè)計(jì)、編碼、測試和發(fā)布,不斷激發(fā)其創(chuàng)新和創(chuàng)造的能力。
(4)建立實(shí)踐教學(xué)資源庫:包含三個(gè)實(shí)踐環(huán)節(jié)所需要的示例、案例、項(xiàng)目資源。其中包含三條線索:①以面向?qū)ο蟮奶匦詾榫€索建設(shè)示例分析和對應(yīng)代碼;②以特定功能為線索建設(shè)案例庫,綜合面向?qū)ο蟮亩鄠€(gè)特性;③以特定用戶需求為線索建立項(xiàng)目庫,包含項(xiàng)目的需求分析、功能設(shè)計(jì)、代碼等資源。
5? 教學(xué)改革成果分析(Analysis of teaching reform achievements)
通過以上教學(xué)改革的研究和實(shí)踐,目前取得了一定的成果。課題組按知識模塊構(gòu)建了實(shí)踐教學(xué)資源庫,圍繞案例制作了教學(xué)課件,充分融合到互動(dòng)式教學(xué)方式和漸進(jìn)式過程中;并基于網(wǎng)絡(luò)構(gòu)建了實(shí)驗(yàn)平臺,學(xué)生可以針對案例進(jìn)行有效練習(xí),及時(shí)獲得練習(xí)成績。以本校網(wǎng)絡(luò)工程專業(yè)2016級,2017級為例,教學(xué)評價(jià)良好,以面向?qū)ο笏季S為導(dǎo)向的教學(xué)內(nèi)容以及“案例+項(xiàng)目”的互動(dòng)教學(xué)方式得到了學(xué)生的積極反饋與肯定。
6? ?結(jié)論(Conclusion)
通過以面向?qū)ο笏季S為導(dǎo)向進(jìn)行教學(xué)組織,使學(xué)生通過案例方式理清基礎(chǔ)概念,逐漸理解了面向?qū)ο蟮乃季S方式;并在案例加項(xiàng)目訓(xùn)練的動(dòng)手實(shí)踐的過程中,深入體會(huì)面向?qū)ο蟮脑O(shè)計(jì)理念,逐步掌握面向?qū)ο蟮某绦蛟O(shè)計(jì)方法。對計(jì)算機(jī)專業(yè)的學(xué)生繼續(xù)學(xué)習(xí)后續(xù)課程打下良好的理論基礎(chǔ)和實(shí)踐基礎(chǔ)具有深遠(yuǎn)的影響。為了更好跟蹤教學(xué)效果和進(jìn)行教學(xué)質(zhì)量監(jiān)督,下一步將更充分利用網(wǎng)絡(luò)教學(xué)平臺,通過對教學(xué)平臺和考試系統(tǒng)的數(shù)據(jù)分析,在教學(xué)過程中分析學(xué)生的實(shí)際情況,了解學(xué)生的學(xué)習(xí)狀態(tài),通過優(yōu)化案例,調(diào)整互動(dòng)方式,以及加強(qiáng)考核校驗(yàn)進(jìn)一步提升教學(xué)質(zhì)量。
參考文獻(xiàn)(References)
[1] 顧佩華,沈民奮,李升平,等.從CDIO到EIP-CDIO——汕頭大學(xué)工程教育與人才培養(yǎng)模式探索[J].高等工程教育研究,2008(1):12-20.
[2] 顧佩華,胡文龍,陸小華,等.從CDIO在中國到中國的CDIO:發(fā)展路徑、產(chǎn)生的影響及其原因研究[J].高等工程教育研究,2017(1):30-49.
[3] 李竹林,張根耀,王文發(fā),等.基于CDIO的計(jì)算機(jī)專業(yè)課程教學(xué)改革與效果分析[J].計(jì)算機(jī)教育,2014(16):64-66.
[4] 姜大志,孫浩軍.基于CDIO的主動(dòng)式項(xiàng)目驅(qū)動(dòng)學(xué)習(xí)方法研究——以Java類課程教學(xué)改革為例[J].高等工程教育研究,2012(4):159-164.
[5] 朱立平,林志英.從面向過程到面向?qū)ο笏季S方式的教學(xué)引導(dǎo)[J].計(jì)算機(jī)教育,2014(5):59-63.
[6] 畢忠勤,周平.基于CDIO理念的面向?qū)ο蠓治雠c設(shè)計(jì)課程教學(xué)改革探索[J]. 計(jì)算機(jī)教育,2018(2):51-53.
[7] 姚敦紅.案例引導(dǎo)多項(xiàng)目實(shí)施的面向?qū)ο蟮姆治雠c設(shè)計(jì)課程[J].計(jì)算機(jī)教育,2018(10):166-169.
作者簡介:
鐘? 原(1982-),女,碩士,講師.研究領(lǐng)域:機(jī)器學(xué)習(xí),圖形圖像處理.
劉忠慧(1980-),女,碩士,副教授.研究領(lǐng)域:深度學(xué)習(xí),人工智能.
基金項(xiàng)目:2018年四川省高等教育人才培養(yǎng)質(zhì)量和教學(xué)改革項(xiàng)目“多學(xué)科融合的項(xiàng)目引導(dǎo)式雙創(chuàng)人才培養(yǎng)研究與實(shí)踐”(編號:JG2018-447);2018年西南石油大學(xué)本科課程教學(xué)改革研究項(xiàng)目“基于MSF模式的Java程序設(shè)計(jì)課程改革與實(shí)踐”(編號:X2018KZ029);2018年西南石油大學(xué)計(jì)算機(jī)科學(xué)學(xué)院教育教學(xué)改革研究項(xiàng)目“基于CDIO以面向?qū)ο蟪绦蛟O(shè)計(jì)思維為導(dǎo)向的教學(xué)研究與實(shí)踐”.