余燁 徐京濤 路強 薛峰
摘 要:分析Java課程的特點及目前教學(xué)中存在的問題,提出將OBE教育理念引入Java程序設(shè)計課程,變以教學(xué)內(nèi)容驅(qū)動為學(xué)習(xí)結(jié)果驅(qū)動,即引入“學(xué)習(xí)結(jié)果—教學(xué)內(nèi)容設(shè)計—評價體系”的新教學(xué)模式,并從課堂教學(xué)、實踐環(huán)節(jié)教學(xué)和教學(xué)評價3方面具體闡述改革過程,以進一步提高Java程序設(shè)計課程的教學(xué)質(zhì)量和人才培養(yǎng)質(zhì)量。
關(guān)鍵詞: OBE;Java程序設(shè)計;學(xué)習(xí)結(jié)果;教學(xué)改革
1 背 景
OBE(outcome-based education),中文翻譯有多種,如以結(jié)果為基礎(chǔ)的教育[1]和基于學(xué)習(xí)結(jié)果的教育模式。OBE模式起源于西方國家的教育改革,20世紀90年代在北美興起,相關(guān)學(xué)者認為:在以學(xué)習(xí)結(jié)果為基礎(chǔ)的教育模式下,老師能夠很好地按照學(xué)生要實現(xiàn)的目標制訂教學(xué)計劃,并根據(jù)學(xué)生自身的特點予以區(qū)別對待,以實現(xiàn)特定的教學(xué)目標;整個教學(xué)過程都是以實現(xiàn)學(xué)習(xí)結(jié)果為目的規(guī)劃學(xué)生的學(xué)習(xí)方案,驅(qū)動整個學(xué)習(xí)過程。學(xué)生產(chǎn)出作為驅(qū)動教育系統(tǒng)運作的動力,而非教科書或教師經(jīng)驗,這與傳統(tǒng)的內(nèi)容驅(qū)動和重視投入的教育模式形成鮮明對比。通過結(jié)果的引領(lǐng),學(xué)生和老師能夠快速達到要完成的教學(xué)目標,實現(xiàn)真正意義上的學(xué)以致用[2]。
Java程序設(shè)計是大學(xué)本科計算機專業(yè)的核心課程,具有很強的實踐性和應(yīng)用性,要求學(xué)生具備一定的程序編寫能力和創(chuàng)造能力,對計算機專業(yè)應(yīng)用型人才的培養(yǎng)至關(guān)重要。然而,當(dāng)前的Java教學(xué)課程大多停留在傳統(tǒng)的授課模式,主要講解Java的基本概念和簡單應(yīng)用,忽視學(xué)生的學(xué)習(xí)基礎(chǔ)以及學(xué)習(xí)目標,對所有學(xué)生設(shè)計的教學(xué)內(nèi)容和評價內(nèi)容都是一樣的,從而限制學(xué)生更大程度的發(fā)展。為進一步提高教學(xué)質(zhì)量,我們將OBE理念引入Java程序設(shè)計課程的教學(xué)中,基于學(xué)生學(xué)習(xí)目標和所要達成結(jié)果的不同制訂不同的教學(xué)內(nèi)容,實施不同的教學(xué)過程并進行有效的評價。
2 Java程序設(shè)計課程的特點及現(xiàn)狀分析
2.1 Java程序設(shè)計課程的特點
(1)Java語言流行程度高,實用性強,其培養(yǎng)目標要與市場需求接軌。從2016年9月TIOBE編程語言排行榜前10位的排名情況以及TIOBE對排名前10的編程語言流行趨勢分析[3]可以看出,Java語言除了在2004—2006年和2010—2015年出現(xiàn)過被C語言趕超的歷史外,其余時間一直名列TIOBE編程語言排行榜第一位,由此也可以看出Java語言的受歡迎程度和流行程度。計算機科學(xué)與技術(shù)專業(yè)的本科生掌握Java程序設(shè)計語言必不可少,這也是學(xué)校培養(yǎng)人才與社會人才需求相接軌的必要條件之一。
(2)Java語言涉及內(nèi)容廣泛,參考資料豐富,因此課程目標設(shè)定和課程內(nèi)容提煉非常重要。Java程序設(shè)計涉及的知識點多,包括GUI設(shè)計與事件處理、輸入輸出流、多線程機制、數(shù)據(jù)庫操作、網(wǎng)絡(luò)通訊等;囊括的參考資料豐富,包括教材、在線課程、培訓(xùn)視頻、技術(shù)論壇等。在如此多參考資料的影響下,初學(xué)者如何選擇合適的參考教材,從何處入手開展學(xué)習(xí),做好這一點也非常重要。教師要在有限的課時限制下完成Java教學(xué),這對教學(xué)目標的設(shè)定要求嚴格;而在確定教學(xué)目標的情況下,合理設(shè)置課程內(nèi)容也非常重要。
(3)Java語言的擴展繁多,如何培養(yǎng)可擴展性學(xué)習(xí)人才是關(guān)鍵。JSP、Android和J2EE的三大框架Struts、Hibernate、Spring均建立在Java程序設(shè)計課程基礎(chǔ)上,且Java及其擴展技術(shù)的更新日新月異。對計算機專業(yè)的學(xué)生來說,僅僅掌握一門技術(shù)已經(jīng)遠遠不夠,如何在飛速革新的互聯(lián)網(wǎng)時代中穩(wěn)步前行,擁有可擴展性的學(xué)習(xí)能力才是學(xué)習(xí)的核心。講授Java語言時,如何讓學(xué)生打牢技術(shù)基礎(chǔ)并為后續(xù)基于Java知識的擴展學(xué)習(xí)奠定基礎(chǔ),如何培養(yǎng)可擴展性學(xué)習(xí)人才,這些才是Java教學(xué)的關(guān)鍵和教師應(yīng)該重點考慮的問題。
2.2 傳統(tǒng)Java程序設(shè)計課程教學(xué)中存在的問題
(1)強調(diào)教學(xué)進程和課堂教學(xué)效果,要求學(xué)生按既定的教學(xué)計劃、時間、進度等開展學(xué)習(xí),要求教師的課堂教學(xué)深入淺出,既生動又能抓住學(xué)生的注意力,使課堂教學(xué)內(nèi)容易于掌握和消化吸收,但傳統(tǒng)的教學(xué)方式?jīng)]有強調(diào)學(xué)生“學(xué)習(xí)結(jié)果”這一重要因素。
(2)強調(diào)以知識導(dǎo)向為主的教學(xué)模式,教師更多關(guān)注教學(xué)內(nèi)容,而學(xué)生則更多關(guān)注對知識的總結(jié)、整理和應(yīng)用,缺乏對學(xué)生自主學(xué)習(xí)、擴展性學(xué)習(xí)等多方面能力的培養(yǎng)以及對學(xué)生學(xué)習(xí)結(jié)果的有效評價。傳統(tǒng)的基于考試的教學(xué)評估方法把學(xué)生的注意力集中在課本理論知識的學(xué)習(xí),導(dǎo)致學(xué)生對Java課程無法形成一個完整的認識,不能解決實際問題,缺乏系統(tǒng)的分析能力和開發(fā)環(huán)境的操作能力,當(dāng)遇到大型項目和工程時往往不能快速有效地進行構(gòu)思、設(shè)計、實現(xiàn)與運行[4]。
(3)強調(diào)以教師為中心,學(xué)生按照教師的要求完成學(xué)習(xí)任務(wù),達到教師規(guī)定的學(xué)習(xí)目標。這種教學(xué)方式?jīng)]有考慮學(xué)生個體的差異,把大家視為具有同等能力和同等水平的對象進行教學(xué),從某種程度上限制了對學(xué)生潛力的挖掘和能力的培養(yǎng)。
3 基于OBE的Java程序設(shè)計課程建設(shè)
3.1 基于OBE的課程教學(xué)改革
學(xué)習(xí)Java程序設(shè)計課程的學(xué)生一般來自計算機科學(xué)與技術(shù)、電子信息工程、通信工程、物聯(lián)網(wǎng)和信息安全共5個不同的專業(yè)。不同專業(yè)學(xué)生的學(xué)習(xí)背景不同,對Java語言掌握程度的要求也不相同,即使在一個專業(yè)中,不同學(xué)生對程序設(shè)計語言的興趣和需求以及所期望達到的目標也不相同,有的學(xué)生僅僅希望對該課程有所了解,有的學(xué)生希望掌握一些基礎(chǔ)知識,有的學(xué)生則希望能夠進行深層次的學(xué)習(xí)。針對學(xué)生不同的學(xué)習(xí)目標,教師需要因地制宜地設(shè)計學(xué)習(xí)內(nèi)容,對Java程序設(shè)計的內(nèi)容進行模塊化設(shè)計,即在學(xué)生選擇學(xué)習(xí)目標后,可以給學(xué)生推薦相應(yīng)的學(xué)習(xí)模塊;在這些學(xué)習(xí)模塊中,學(xué)生在一定的指導(dǎo)下進行選擇,以達到各自的學(xué)習(xí)目標。對Java教學(xué)內(nèi)容的模塊化設(shè)計及各模塊所對應(yīng)的培養(yǎng)目標,如圖1所示。
從圖1可以看出,如果學(xué)生只是想簡單了解Java語言,則學(xué)習(xí)模塊1的內(nèi)容就足夠了,也就是說模塊1的內(nèi)容對應(yīng)培養(yǎng)目標1。如果學(xué)生想要理解Java基礎(chǔ)知識并能編寫簡單的Java代碼,則可以選擇學(xué)習(xí)模塊2、3、4和5,同時教師須給學(xué)生的選擇提供一些指導(dǎo),如建議至少選擇其中2個模塊的內(nèi)容進行學(xué)習(xí)。培養(yǎng)目標3“編寫應(yīng)用程序”,即理解Java基礎(chǔ)知識,能編寫簡單的Java代碼,該培養(yǎng)目標的實現(xiàn)對應(yīng)學(xué)習(xí)模塊6—11,教師須提供如下的學(xué)習(xí)指導(dǎo):此處每個學(xué)習(xí)模塊分別介紹不同的功能,學(xué)生可以根據(jù)自身的能力情況進行選擇,建議學(xué)習(xí)全部模塊。培養(yǎng)目標4“沖刺Java高手”,也是該課程所能達到的最高目標,要求學(xué)生對Java應(yīng)用有更深入的理解,能夠?qū)λ鶎W(xué)知識進行擴展應(yīng)用并為后續(xù)Java項目實踐奠定基礎(chǔ),該培養(yǎng)目標的實現(xiàn)對應(yīng)學(xué)習(xí)模塊12、13和14,教師須提供的學(xué)習(xí)指導(dǎo)如下:每章內(nèi)容各有側(cè)重,請根據(jù)自身情況進行選擇,建議學(xué)習(xí)全部模塊。
每個班級中學(xué)生學(xué)習(xí)能力參差不齊,水平有高有低。教師如果要求每個學(xué)生都達到很高的Java學(xué)習(xí)水準,這是不現(xiàn)實的。根據(jù)每個學(xué)生的個性發(fā)展和學(xué)習(xí)能力的差異,確定不同的學(xué)習(xí)目標,劃分不同的學(xué)習(xí)結(jié)果,讓每個學(xué)生都能夠?qū)W有所成,這才是基于OBE的Java課程教學(xué)核心理念。
3.2 基于OBE的實踐教學(xué)環(huán)節(jié)改革
Java教學(xué)長期以來都偏重理論知識的教學(xué),實踐方面的鍛煉非常有限,學(xué)生在學(xué)習(xí)Java語言的過程中,實踐能力的培養(yǎng)嚴重匱乏。大部分高校的Java教學(xué)實踐環(huán)節(jié)主要是以簡單的實驗為主,學(xué)生通過實驗指導(dǎo)書即可大致完成實驗操作和相關(guān)代碼的編寫,順利通過考核。然而,這種實踐環(huán)節(jié)與軟件企業(yè)對Java程序員的基本技能要求嚴重脫軌,學(xué)生一旦離開指導(dǎo)書或參考書籍,很難獨立完成復(fù)雜程序或者項目的編寫,更談不上對實踐技能的培養(yǎng)[5]。教師應(yīng)以產(chǎn)出導(dǎo)向作為教學(xué)成果評估的依據(jù)并以此促進專業(yè)領(lǐng)域內(nèi)培養(yǎng)目標的實現(xiàn),確保學(xué)生達到畢業(yè)要求。這種評價模式就是指高校在學(xué)生“輸出”中,把他們對專業(yè)領(lǐng)域內(nèi)技術(shù)創(chuàng)新的職業(yè)勝任作為高校教育的培養(yǎng)目標[6]。
若對學(xué)生的學(xué)習(xí)成果作統(tǒng)一要求,則實驗計劃的制訂存在一定難度。因為在實驗過程中,簡單的實驗對于能力強的學(xué)生沒有挑戰(zhàn)性,很難吸引他們的注意,挑起他們的斗志;而能力較差的學(xué)生在面對復(fù)雜實驗時,往往會產(chǎn)生畏難心理,逐漸喪失學(xué)習(xí)Java的興趣。因此,根據(jù)學(xué)生學(xué)習(xí)目標和預(yù)定學(xué)習(xí)成果的不同,因人而異開展實踐教學(xué)環(huán)節(jié)的教學(xué),可以提升學(xué)生的學(xué)習(xí)激情,提高學(xué)習(xí)結(jié)果的完成度。
教師可根據(jù)圖1中的培養(yǎng)目標,設(shè)計相應(yīng)的實驗并確定實驗?zāi)繕?、實驗任?wù)和需要解決的重難點問題。Java程序設(shè)計課程的學(xué)習(xí)重點之一是培養(yǎng)學(xué)生實際動手解決問題的能力,如果學(xué)生在學(xué)習(xí)過程中能帶著具體問題和具體任務(wù),那么學(xué)生的學(xué)習(xí)目的就很明確,知識點的應(yīng)用場景就能得到實際操練[7]。以“GUI和事件處理”這一模塊的實踐環(huán)節(jié)為例,選擇培養(yǎng)目標為“簡單了解”和“理解基礎(chǔ)知識”的學(xué)生,可以不進行此實踐環(huán)節(jié)的訓(xùn)練。選擇培養(yǎng)目標為“編寫應(yīng)用程序”或“沖刺Java高手”的學(xué)生,在進行此模塊實踐環(huán)節(jié)訓(xùn)練時,首先須根據(jù)各自能力的不同選擇不同的難度:A表示難度最高、B表示較高、C表示一般、D表示容易;選擇難度之后,將選擇同一難度的學(xué)生分為一個大組,在大組里,大家自由搭檔并分為若干個小組,小組中每個學(xué)生的實際能力是不相同的,學(xué)習(xí)能力強的學(xué)生在擴展學(xué)習(xí)的同時也能夠帶動其他學(xué)生的學(xué)習(xí),學(xué)習(xí)能力較弱的學(xué)生在滿足自身學(xué)習(xí)目標時又能夠向深層次的學(xué)習(xí)模塊拓展。
每個實驗都是一個小的項目,需要各小組的學(xué)生齊心協(xié)力,協(xié)作完成,這樣一方面可以鍛煉學(xué)生的實踐能力,另一方面也能鍛煉他們的協(xié)作意識和協(xié)作能力。每組須定期向教師匯報項目進展,如對項目的功能、需求、已完成內(nèi)容和待完成內(nèi)容進行詳細匯報。通過定期匯報,教師能夠很好地監(jiān)督學(xué)生的學(xué)習(xí)進度,同時充分模擬項目實戰(zhàn)中階段性驗收的情形?;贠BE的Java實踐教學(xué)不僅要培養(yǎng)學(xué)生的實踐動手能力,還要鍛煉學(xué)生的表達能力。在實踐教學(xué)的最后一個環(huán)節(jié)中,老師須安排每組學(xué)生對各組完成的項目進行綜合性的匯報展示,各組的匯報人須對本組的項目分工、項目內(nèi)容和解決的問題作出充分的陳述,教師根據(jù)項目的匯報情況和實現(xiàn)效果,對每個學(xué)生的能力進行評價,同時其他組也會對其進行評分,各組的評分最終以權(quán)值的方式計入每位學(xué)生的課程綜合成績。
這種類似于比賽形式的實踐考核,可以充分調(diào)動學(xué)生的積極性。首先,學(xué)生想要偷懶或者借鑒別人的代碼是行不通的,因為每個人都需要在大組內(nèi)進行匯報;其次,需要按照規(guī)定的進度進行,不能刻意延緩進度;最后,個人的不努力或者退出將導(dǎo)致整個小組的失敗,這也迫使所有學(xué)生都要有所擔(dān)當(dāng),也可促進小組各成員之間的互助。同時,這也能激發(fā)學(xué)生自身的責(zé)任感,令學(xué)生充分認識自己的優(yōu)點和缺點,為以后進行Java實際項目的開發(fā)打下堅實的基礎(chǔ)。
3.3 基于OBE的考核和評價方式改革
Java程序課程注重多元化的考核機制,從多個方面考核學(xué)生,著重考核學(xué)生的實際工作能力、團隊合作能力和創(chuàng)新意識,考核方式與培養(yǎng)目標相結(jié)合,主要評價在相應(yīng)的培養(yǎng)目標下學(xué)生的學(xué)習(xí)達成度情況。基于OBE的Java程序設(shè)計課程的考核和評價由以下幾個部分組成,見表1。
(1)平時表現(xiàn)情況,占10%。根據(jù)學(xué)生的課堂出勤情況、課堂表現(xiàn)、課堂任務(wù)完成情況等進行評分。
(2)平時作業(yè),占20%。針對平時布置的作業(yè),對學(xué)生的完成情況進行評價。
(3)項目實踐,占20%。實驗前把《實驗指導(dǎo)書》分發(fā)給學(xué)生,要求學(xué)生提前閱讀,做好充分準備;實驗驗收時,逐人過招;實驗報告須按照要求認真撰寫,重點描述自己遇到的問題和采用的解決方法。根據(jù)項目驗收情況、代碼的完善情況、個人項目總結(jié)及小組內(nèi)其他成員的評價進行評分,分為優(yōu)秀、良好、中等、及格和不及格5個不同的等級。
(4)擴展能力考核,占10%。主要考核在相應(yīng)的培養(yǎng)目標下,除了課堂教學(xué)內(nèi)容外學(xué)生所掌握的可擴展性知識,以對其擴展性學(xué)習(xí)能力進行評價,主要根據(jù)擴展學(xué)習(xí)知識量的多少、掌握程度等進行評分。
(5)期末考試,占40%。根據(jù)培養(yǎng)目標的不同,設(shè)計不同的考卷,并根據(jù)最終考試成績進行評分。
可以看出,基于OBE的Java程序設(shè)計課程的考核主要分為兩個部分,一部分是統(tǒng)一評價,平時表現(xiàn)情況為統(tǒng)一評價部分的內(nèi)容;另一部分則根據(jù)培養(yǎng)目標的不同分別進行評價,如平時作業(yè)、項目實踐、擴展能力考核和期末考試。該課程考核和評價方式在2016年合肥工業(yè)大學(xué)10個班級的Java程序設(shè)計課程的教學(xué)中實施,達到了預(yù)期效果,不僅對學(xué)生的學(xué)習(xí)情況進行了客觀評價,還提高了學(xué)生的學(xué)習(xí)積極性,從整體上提高了教學(xué)效果。
4 結(jié) 語
OBE作為一種新型教育模式,是對傳統(tǒng)教育模式的革新,對教學(xué)內(nèi)容優(yōu)化、教學(xué)方法更新以及評價體系的合理設(shè)置有重要而又現(xiàn)實的指導(dǎo)意義。我們在Java程序設(shè)計課程中引入OBE理念,基于OBE教育模式改革Java程序設(shè)計課程的課堂教學(xué)內(nèi)容、實踐教學(xué)環(huán)節(jié)、考核和評價方式,以學(xué)生學(xué)習(xí)結(jié)果為導(dǎo)向建設(shè)該課程,使得學(xué)生真正成為了課程的最大受益者。當(dāng)然,基于OBE的Java課程教學(xué)大大增加了教師的工作量,不僅每個模塊的課程教學(xué)工作都要進行,而且在實踐、考核和評價環(huán)節(jié)中還需要針對不同培養(yǎng)目標的學(xué)生,制訂不同的方案,采取不同的措施。高校教學(xué)應(yīng)以學(xué)生的能力培養(yǎng)為主要追求目標,在OBE教育理念的引導(dǎo)下,不斷優(yōu)化課程教學(xué)和實踐教學(xué)環(huán)節(jié)的設(shè)計,優(yōu)化考核和評價指標,這也是課題組長期追求的目標。
參考文獻:
[1] 姜波. OBE: 以結(jié)果為基礎(chǔ)的教育[J]. 外國教育研究, 2003, 30(3): 35-37.
[2] 顧佩華. 基于“學(xué)習(xí)產(chǎn)出”(OBE)的工程教育模式[J]. 高等工程教育研究, 2014(1): 27-28.
[3] TIOBE Index for April 2017[EB/OL]. [2016-11-30]. http://www.tiobe.com/tiobe-index/.
[4] 姜大志. 基于CDIO的主動式項目驅(qū)動學(xué)習(xí)方法研究[J]. 高等工程教育研究, 2012(4): 159-160.
[5] 姚明, 彭志平, 李啟銳, 等. Java課內(nèi)實踐教學(xué)改革[J]. 計算機教育, 2016(6): 151-154.
[6] 楊毅剛. 基于OBE模式的技術(shù)創(chuàng)新能力培養(yǎng)[J]. 高等工程教育研究, 2015(6): 25-26.
[7] 孫麗, 張利鋒, 岳峻. 項目驅(qū)動的Java課程研究性教學(xué)實踐[J]. 計算機教育, 2014(8): 105-118.
(編輯: 宋文婷 )