索望 昌燕 何林波
摘要:基于CDIO的教學(xué)模式已成為計算機編程類課程改革的新方向,針對當(dāng)前l(fā)ava程序設(shè)計課程CDIO教學(xué)模式存在的不足,文章提出了基于OBE教學(xué)理念改進課程設(shè)置、配套工程實踐課程、設(shè)計與專業(yè)緊密結(jié)合的教學(xué)案例項目、實施過程化考核以及基于MOOC理念改進授課方式等改革措施。實踐證明,這些改革措施符合學(xué)校全面推行的CDIO工程教育模式,取得的成果對培養(yǎng)符合社會需求的工程技術(shù)人才具有一定的指導(dǎo)作用。
關(guān)鍵詞:工程教育;CDIO模式;教學(xué)課程改革;過程化考核;大規(guī)模在線公開課
1.背景
隨著Java技術(shù)平臺的廣泛應(yīng)用,Java程序設(shè)計已成為國內(nèi)大多數(shù)高校計算機相關(guān)專業(yè)的必修課程。針對Java程序設(shè)計課程,基于CDIO的教學(xué)模式以及項目驅(qū)動的教學(xué)方式已成為公認(rèn)的發(fā)展方向,近幾年得到了廣泛的發(fā)展與應(yīng)用。雖然基于CDIO的工程教育模式得到了肯定,但由于傳統(tǒng)的課程設(shè)置以及教學(xué)方法還普遍存在,工程教育模式如何落地實施、如何充分利用網(wǎng)絡(luò)新技術(shù)實施多樣化的教學(xué)手段、如何更好地培養(yǎng)學(xué)生的工程能力,還需要不斷地探索與改進。目前,社會對計算機開發(fā)人員的專業(yè)素質(zhì)和技能都有較高的要求,這就要求高校培養(yǎng)的學(xué)生既有扎實的理論基礎(chǔ),又具有一定的開發(fā)經(jīng)驗與實踐技能。
2.存在的問題
基于項目驅(qū)動的教學(xué)方式是目前計算機編程類課程的主要改革方向,也是實現(xiàn)CDIO工程教育模式的重要形式,但在實施過程中還存在一些問題:
(1)學(xué)習(xí)需求與教學(xué)目標(biāo)不清晰。目前的Java程序設(shè)計課程制訂的教學(xué)目標(biāo)還停留在本課程的范疇,計算機相關(guān)專業(yè)開設(shè)的Java程序設(shè)計課程的教學(xué)目標(biāo)幾乎是一樣的,這就導(dǎo)致教學(xué)目標(biāo)過于籠統(tǒng),學(xué)生學(xué)習(xí)的需求不清晰,未與其專業(yè)培養(yǎng)目標(biāo)相結(jié)合。
(2)教學(xué)案例項目設(shè)計不合理。項目設(shè)計不合理主要體現(xiàn)在:①項目以實現(xiàn)功能為主,缺少設(shè)計環(huán)節(jié),使學(xué)生忽視設(shè)計能力的訓(xùn)練,只會依葫蘆畫瓢;②案例項目的設(shè)計不具備連續(xù)性和整體性;③教學(xué)目的未與專業(yè)知識相結(jié)合。
(3)教學(xué)方式單一?;贑DIO的工程教育模式雖然已成為教育發(fā)展的新趨勢,但課堂授課依然是大學(xué)授課的主要模式。我們在課堂教學(xué)中引入了大量的程序案例講解,學(xué)生也更加直觀地了解如何編寫程序,但由于學(xué)生缺乏自我思考與編程實踐,未全程參與工程項目的設(shè)計開發(fā),導(dǎo)致大部分學(xué)生無法獨立完成軟件項目的設(shè)計與開發(fā)。
(4)課余時間師生之間缺乏溝通渠道。當(dāng)學(xué)生在課后有問題時,由于溝通渠道不通暢,學(xué)生無法及時解決學(xué)習(xí)中遇到的問題,影響學(xué)生學(xué)習(xí)的積極性。
上述問題都是當(dāng)前Java程序設(shè)計課程在教學(xué)中存在的典型問題,而這些問題的存在影響了Java課程的教學(xué)效果。結(jié)合本校推行的CDIO教學(xué)模式及OBETM(Outcomes-based Education)教學(xué)理念,我們從以下幾方面對Java程序設(shè)計課程實施教學(xué)改革,力求結(jié)合新的教學(xué)理念和模式,培養(yǎng)符合時代需求的計算機相關(guān)專業(yè)技術(shù)人才。
3.課程設(shè)置的改革探索
目前,Java已成為一種廣泛應(yīng)用的軟件開發(fā)技術(shù)平臺,包括Java Web開發(fā)、Android應(yīng)用開發(fā)、Java Card應(yīng)用開發(fā)等。Java語言則是Java技術(shù)平臺的基礎(chǔ)和核心,其重要性不言而喻?;诖?,對Java程序設(shè)計課程的設(shè)置也應(yīng)作相應(yīng)調(diào)整。
3.1增加教學(xué)課時
本學(xué)期各個專業(yè)的培養(yǎng)方案中,Java程序設(shè)計都是一門核心課程,在課程體系中具有承上啟下的地位。鑒于Java程序設(shè)計課程的重要性,應(yīng)該加大該課程的教學(xué)課時,將總課時增加到64學(xué)時甚至更高,也可以采用分兩學(xué)期教學(xué)的方式,第一學(xué)期為Java程序設(shè)計入門,第二學(xué)期為Java高級編程。加大Java程序設(shè)計課程的總課時量才能為以項目為驅(qū)動的教學(xué)模式以及工程教育理念的實施提供保障。
3.2明確學(xué)習(xí)需求與教學(xué)目標(biāo)
針對各個專業(yè)的培養(yǎng)目標(biāo),制定該專業(yè)Java,程序設(shè)計課程的學(xué)習(xí)需求與教學(xué)目標(biāo)。在OBE教學(xué)模式中,明確學(xué)習(xí)需求并制定教學(xué)目標(biāo)是關(guān)鍵步驟,也是最后進行學(xué)習(xí)產(chǎn)出評估的標(biāo)準(zhǔn)。借鑒OBE教學(xué)模式,我們基于各專業(yè)的培養(yǎng)目標(biāo)來確定本課程的學(xué)習(xí)需求和教學(xué)目標(biāo)。編寫計算機程序是為了更高效、更準(zhǔn)確地解決專業(yè)問題,所以將程序設(shè)計學(xué)習(xí)與專業(yè)知識緊密結(jié)合才是更加合理的做法。Java程序設(shè)計課程的教學(xué)目標(biāo)不只要求學(xué)生掌握J(rèn)ava程序設(shè)計,更要求學(xué)生編寫Java程序來解決專業(yè)問題?;诖耍覀兠鞔_了學(xué)生學(xué)習(xí)的需求,制訂了相應(yīng)的教學(xué)目標(biāo),并以此為基礎(chǔ)更新教學(xué)內(nèi)容?;贘ava技術(shù)廣泛應(yīng)用于Web平臺和Android平臺的應(yīng)用開發(fā),我們?nèi)サ袅嗽械腁WT和SWING部分內(nèi)容,根據(jù)各個專業(yè)的要求加入與專業(yè)相關(guān)的Java技術(shù)內(nèi)容,這更符合學(xué)生的培養(yǎng)目標(biāo)。表1列舉出了本學(xué)院各專業(yè)Java課程新增的Java技術(shù)內(nèi)容。
3.3配套工程實踐課程
為了徹底貫徹CDIO工程教育模式、應(yīng)用OBE教育理念,我們強化了各個專業(yè)的實踐課程體系,也加強了工程實踐訓(xùn)練,配套增加了對應(yīng)的工程實踐課。針對各個專業(yè)設(shè)計了不同的工程實踐大項目,項目從第2學(xué)期延續(xù)到第6學(xué)期,所需知識囊括了其專業(yè)培養(yǎng)方案的所有課程,項目訓(xùn)練的內(nèi)容涵蓋了CDIO工程教育模式的4個方面:構(gòu)思(conceive)、設(shè)計(design)、實現(xiàn)(implement)和運作(operate)。針對Java程序設(shè)計課程,我們在開課學(xué)期開設(shè)對應(yīng)的工程實踐。該學(xué)期的工程實踐要求學(xué)生完成一個Java項目的設(shè)計與開發(fā),該項目是工程實踐大項目下的一個子項目,重點訓(xùn)練學(xué)生在本專業(yè)中應(yīng)用Java編程技術(shù),以達(dá)到Java課程的培養(yǎng)目標(biāo)及本專業(yè)的培養(yǎng)目標(biāo)。例如,信息對抗專業(yè)在第四學(xué)期的工程實踐項目就是用Java語言設(shè)計開發(fā)一個數(shù)據(jù)加解密程序,綜合訓(xùn)練學(xué)生密碼算法的應(yīng)用實現(xiàn)能力與Java程序設(shè)計開發(fā)能力。
4.教學(xué)項目設(shè)計改革探索
基于項目驅(qū)動的教學(xué)方式是實施CDIO工程教育理念的主要方式,但是教學(xué)案例項目并不是隨意設(shè)計的,教學(xué)案例項目是否合理直接決定了工程教育理念的實施效果,也影響著學(xué)生的學(xué)習(xí)效果。前文已經(jīng)提到了目前項目驅(qū)動教學(xué)模式存在的一些問題,因此,我們對教學(xué)案例項目的設(shè)計作出以下改進。
1)按照工程項目的完整流程設(shè)計案例項目。
目前常見的教學(xué)項目是按章節(jié)設(shè)計的,而且各個項目之間并無直接的關(guān)聯(lián),這樣的案例項目設(shè)計并不合理。我們設(shè)計了一個貫穿教學(xué)全過程的教學(xué)案例項目。案例項目包含分析、設(shè)計、實現(xiàn)、測試等環(huán)節(jié),教學(xué)內(nèi)容各個章節(jié)的知識點在項目中都有對應(yīng)的應(yīng)用場景,而學(xué)生在編程實踐環(huán)節(jié)也基于此項目。案例項目背景要貼近應(yīng)用,并且要由淺入深、循序漸進。貼近具體應(yīng)用項目讓學(xué)生不再覺得所學(xué)的知識是抽象的,而由淺入深的步驟也能讓學(xué)生克服畏難情緒,有利于激發(fā)學(xué)生的學(xué)習(xí)興趣,引導(dǎo)學(xué)生主動學(xué)習(xí)與實踐。隨著教學(xué)內(nèi)容不斷深入,項目涉及的功能越來越多,也越來越復(fù)雜。當(dāng)課堂教學(xué)結(jié)束時,教學(xué)案例項目也完成了一個相對完整并具有實用性的Java應(yīng)用程序。學(xué)生在課堂學(xué)習(xí)環(huán)節(jié)和實踐環(huán)節(jié)都以此項目為例,在此案例項目的學(xué)習(xí)與實踐中既能收獲知識與技能,也能體會完成項目的成就感,提高其學(xué)習(xí)的主動性和積極性。
2)教學(xué)項目設(shè)計強化專業(yè)知識應(yīng)用。
學(xué)院的網(wǎng)絡(luò)工程、信息安全、信息對抗與物聯(lián)網(wǎng)工程都開設(shè)了Java程序設(shè)計課程。顯然,這4個專業(yè)的培養(yǎng)目標(biāo)與方案是截然不同的,因此這4個專業(yè)開設(shè)的Java課程,不僅要學(xué)習(xí)Java編程的知識與技能,還要結(jié)合本專業(yè)的培養(yǎng)目標(biāo)和方案,在教學(xué)案例項目設(shè)計中引入專業(yè)知識與技能的應(yīng)用。比如網(wǎng)絡(luò)工程專業(yè)的培養(yǎng)方案涉及網(wǎng)絡(luò)應(yīng)用程序、Web應(yīng)用及無線互聯(lián)網(wǎng)應(yīng)用程序(主要是Android)的開發(fā),因此,網(wǎng)絡(luò)工程專業(yè)的Java課程教學(xué)案例項目一定要包含基于Java.net開發(fā)網(wǎng)絡(luò)應(yīng)用程序的模塊,由此可幫助學(xué)生學(xué)習(xí)如何利用Java.net開發(fā)網(wǎng)絡(luò)應(yīng)用程序;而對于信息安全/信息對抗專業(yè),案例項目中必然要包含使用Java語言開發(fā)密碼算法程序的模塊,體現(xiàn)密碼學(xué)專業(yè)知識在Java項目中的應(yīng)用。在教學(xué)項目中加入與專業(yè)密切相關(guān)的功能模塊的設(shè)計與實現(xiàn),有助于學(xué)生理解與掌握本專業(yè)的相關(guān)知識與應(yīng)用。
教學(xué)案例項目的設(shè)計要具有完整性、連續(xù)性、專業(yè)性以及實用性等特點,以此來驅(qū)動教學(xué)活動的開展才能取得更好的教學(xué)效果。
5.教學(xué)方式方法改革探索
雖然慕課(massiveopenonlinecourse.MOOC)等新型教學(xué)方式得到了快速發(fā)展與廣泛應(yīng)用,但目前大學(xué)的授課方式還是以傳統(tǒng)的課堂教學(xué)方式為主,對學(xué)生進行填鴨式教育,教學(xué)效果差。對此,可采取以下措施改變學(xué)生在教學(xué)活動中的被動地位,促使學(xué)生主動、自主地學(xué)習(xí),提高學(xué)習(xí)效果。
5.1機房授課模式
傳統(tǒng)模式中,教師在課堂上講授Java語言的語法與規(guī)則及相關(guān)程序案例,雖然現(xiàn)代化的教學(xué)設(shè)施能以直觀的方式為學(xué)生展示知識和案例,但由于學(xué)生始終被動地接受知識而未主動地思考與實踐,導(dǎo)致學(xué)生在課后無法獨立完成程序的設(shè)計與實現(xiàn)??蓪ava課程開設(shè)在機房,整個授課過程不再是教師唱獨角戲,而是以教學(xué)項目為導(dǎo)向,充分發(fā)揮項目驅(qū)動式教學(xué)模式的作用,在機房進行項目驅(qū)動的現(xiàn)場教學(xué),將學(xué)生推到教學(xué)活動的主體位置上,在教師的引導(dǎo)下,師生一起完成教學(xué)項目中相關(guān)功能的設(shè)計與開發(fā)工作。將教學(xué)項目引導(dǎo)的教學(xué)方法貫穿整體教學(xué)過程中,讓學(xué)生感受到學(xué)習(xí)的樂趣,并分享其學(xué)習(xí)成果,實現(xiàn)教與學(xué)的共同進步。
5.2分組討論機制
CDIO工程教育理念既提倡學(xué)生獨立思考,也提倡學(xué)生重視團隊合作,因此,可以將學(xué)生分組,日常課堂項目的設(shè)計與實現(xiàn)以小組為單位完成。將學(xué)生分成3-5人的小組,每組由基礎(chǔ)較好的學(xué)生或助教擔(dān)任組長;每3-4次課后布置一個題目交由小組完成,包括查閱資料、討論、設(shè)計與開發(fā)等,完成后由小組統(tǒng)一提交,并安排小組人員答辯,包括資料匯總、設(shè)計方案、程序演示與解答等。這種分組完成題目、課堂答題的方式有利于培養(yǎng)學(xué)生的團隊合作精神,也利于培養(yǎng)學(xué)生的表達(dá)能力。
5.3過程化考核方式
傳統(tǒng)的課程考核方式是期中加期末考試,這樣的考試安排,會使部分學(xué)生放松平時的學(xué)習(xí),而在考試前突擊復(fù)習(xí),也不利于教師及時掌握學(xué)生的學(xué)習(xí)狀況。而過程化考核機制就是把對知識點的考核分散到教學(xué)過程中,每3周左右安排一次考試,考核這段時間學(xué)習(xí)的知識點,及時把握學(xué)生的學(xué)習(xí)狀況。我們利用自行開發(fā)的過程化考試平臺實施過程化考試,過程化考試主要考核學(xué)生的編程能力。每次過程化考試,學(xué)生需要完成一個問題項目的設(shè)計、編碼及調(diào)試,最后教師根據(jù)學(xué)生的完成情況評分。實施過程化考核的方式是將考核分散到平時教學(xué)過程中,強化了學(xué)生工程實踐能力的訓(xùn)練與考核。
5.4基于MOOC的授課方式改進
MOOC是近幾年來新興的一種教學(xué)模式,提供了一種脫離課堂的教學(xué)方式,擴大了知識傳播的途徑與范圍。雖然大學(xué)教學(xué)工作現(xiàn)階段還不能脫離課堂教學(xué),但慕課的教學(xué)方式還是值得借鑒的。比如錄制課堂教學(xué)的內(nèi)容,制作成一個個簡短的主題學(xué)習(xí)視頻,發(fā)布到本課程網(wǎng)站上供學(xué)生下載觀看學(xué)習(xí)。學(xué)生在課堂上未弄懂的問題可以在課后通過觀看這些視頻資料來尋求幫助。借鑒MOOC的授課方式,既是對課程教學(xué)的有效補充,又能解決師生之間日常溝通渠道不暢的問題,有利于幫助學(xué)生維系學(xué)習(xí)的積極性與主動性。
6.結(jié)語
基于OBE教學(xué)理念設(shè)計清晰的學(xué)習(xí)需求、教學(xué)目標(biāo)及配套工程實踐課程,設(shè)計更加合理的教學(xué)案例項目、實施過程考核方式,基于MOOC改進教學(xué)方法,是筆者提出的CDIO教學(xué)模式下Java程序設(shè)計課程教學(xué)改革的主要措施。其目的是更好地將CDIO工程教育理念落地實施,強化工科院校學(xué)生的工程實踐能力和創(chuàng)新能力,提高學(xué)生的就業(yè)競爭能力。筆者所在學(xué)院的Java程序設(shè)計課程已實施了本文提出的部分改進措施,通過對比評估證明這些措施是行之有效的,也符合我校推出的CDIO工程教育與專業(yè)認(rèn)證的教學(xué)理念。當(dāng)然,這些改進措施并不是放之四海而皆準(zhǔn)的方案,只希望起到拋磚引玉的作用,為Java程序設(shè)計課程的教學(xué)改革提供參考。