周軍強
寧波職業(yè)技術(shù)學院 浙江 寧波 315000
《Java程序設計》課程是計算機應用技術(shù)專業(yè)的必修課之一,同時也是該專業(yè)平臺基礎課程之一,課程培養(yǎng)的利用主流軟件(Java平臺)進行編程的能力是該專業(yè)獨立崗位能力之一,同時是其他崗位能力形成的基礎[1]。通過本課程的學習可以讓學生具備以下能力:能夠使用IDE進行Java程序調(diào)試,能夠使用AWT進行圖形界面開發(fā),能夠設計算法并編程序解決實際問題。而且該課程為后續(xù)的課程如《移動APP應用初級開發(fā)》、《JSP動態(tài)網(wǎng)站開發(fā)》的學習需要打下基礎,所以如何設計好課程,如何讓課堂有效及其非常關鍵。
該課程開設在大一第二學期,大部分學生的理論知識水平還可以,在第一學期已經(jīng)學習了英語、C語言和應用數(shù)學,為本課程的學習打下了良好的基礎。通過C語言的學習,學生對程序設計已經(jīng)有了一定的概念。
大部分學生對于Java程序設計還是有比較感興趣的,尤其是對圖形界面設計與實現(xiàn)比較感興趣,但是對于多態(tài)、重載、接口等面向?qū)ο蟮木幊趟枷刖秃苌儆型瑢W感興趣、不愿意深入去思考這些問題。其中25%的學生對編程非常感興趣,70%的學生表示愿意認真地去學習這門課程。教學過程中難度提升部分的練習,很多同學不愿意去嘗試,更多的只愿意跟著老師做。學生缺乏自主學習的意識,獨立思考的能力不強,遇到難懂的知識和難做的項目,容易產(chǎn)生放棄的心理,缺少吃苦耐勞及鉆研精神。行為的控制力普遍不強、專注力不夠持久,易于受外界因素干擾,學習習慣也不好。按之前C語言課程上的表現(xiàn)看,部分學生完成作業(yè)的自主性不強[2]。
針對學生實際操作能力較弱的問題,應對措施是在課堂上多讓學生操作,這樣也正符合“做中學、學中做”的教學模式,課后多布置一些操作性任務,讓學生課外也能夠多加練習[3]。針對學生對多態(tài)、重載、接口等面向?qū)ο蟮木幊趟枷氩惶信d趣的問題,應對措施是在項目實施過程中遇到問題后再引入這些較難懂的知識點,讓學生體會到這些東西是很有用的。針對學生意志力薄弱的問題,應對措施一個是經(jīng)常在課堂上鼓勵學生,增加學生的自信心,另外一個是在項目實施過程難度要慢慢提升,讓學生熟練掌握低難度技能后再提升難度。針對行為的控制力普遍不強、專注力不夠持久的問題,應對措施是在課堂上增加互動環(huán)節(jié),例如點名讓學生回答問題,讓學生來點評別人的程序[4]。
本課程的所有任務都是來源于實際學習工作中的典型應用開發(fā)任務,以工作任務為載體設計教學過程和教學情境。將學生的角色設定為爪娃軟件股份有限公司的軟件開發(fā)工程師實習員工,將教師設定為Java開發(fā)組組長,在實習的過程中經(jīng)歷的兩個項目為主線開展教學。這兩個項目分別是:售樓輔助軟件設計與開發(fā)、仙劍奇?zhèn)b傳游戲設計與開發(fā)[5]。本課程采用任務驅(qū)動式教學法,通過不同的情境設置,用提出需求、思考解決方案、編寫代碼、改進代碼等學習方式完成教學內(nèi)容,掌握知識點,提高Java編程能力。整個教學全過程中,我們將貫徹“做中學、學中做”的方法理念,讓學生多動手多思考。
本課程的任務情景設計分為兩個部分,第一個是開發(fā)一套售樓輔助軟件:美的房地產(chǎn)有限公司委托嘉禾銷售有限公司銷售美的蝴蝶海三期樓盤,嘉禾銷售有限公司為了提高銷售人員的工作效率,現(xiàn)委托爪娃軟件股份有限開發(fā)一套售樓輔助軟件,該輔助軟件的功能有房貸計算、稅費計算和開盤搖號。因為再過二個月就要開盤,嘉禾銷售有限公司要求嘉禾銷售有限公司在一個半月內(nèi)完成開發(fā)任務。由于爪娃軟件股份有限大部分員工手頭上都有其他項目正在開發(fā),所以公司要求你來完成這個項目的設計與實現(xiàn)。
第二個任務情境設計是一款游戲:最近絕地求生游戲非?;鸨ν捃浖煞萦邢薰疽矞蕚溥M軍游戲產(chǎn)業(yè),為了能夠設計出優(yōu)秀的游戲,公司重金聘請了知名游戲設計師設計了一款名為仙劍奇?zhèn)b傳的游戲。因為公司里的老員工對游戲開發(fā)也沒有什么經(jīng)驗并且他們手頭上都有其他項目在跟進,所以公司決定找你來開發(fā)這款游戲。
通過以上兩個項目情境的設計,讓java的知識點讓學生在項目中去自然學習和應用,讓學生通過項目,即讓學生有整體軟件設計思路,又掌握了java面向?qū)ο蟮拈_發(fā)方法。
對于第一個售樓輔助軟件設計與開發(fā)項目,主要任務包括:房貸計算模塊的設計與開發(fā),稅費計算模塊的設計與開發(fā),開盤搖號模塊的設計與開發(fā),售樓輔助軟件管理模塊的設計與開發(fā)。
對于第二個仙劍奇?zhèn)b傳游戲的設計與開發(fā),主要任務包括:游戲初始場景李家村的設計與開發(fā),游戲配角的設計與開發(fā),游戲主角的設計與開發(fā),游戲角色間對話功能的設計與開發(fā),游戲場景切換功能的設計與開發(fā),游戲障礙物躲避功能的設計與開發(fā),游戲狀態(tài)保存功能的設計與開發(fā),聯(lián)機版仙劍奇?zhèn)b傳的設計與開發(fā)。
本課程的教學與專業(yè)緊密結(jié)合,所有的教學內(nèi)容都圍繞專業(yè)知識與技能展開,為后續(xù)的專業(yè)課程學習服務。在教法上,以任務為載體,教師在課堂之初,首先利用少量時間,結(jié)合上次課任務和課后練習任務,對上節(jié)課的重要知識點進行回顧,再引入本次課的任務是什么。然后發(fā)放本次課的任務書,讓學生閱讀并開始本次課的任務編程工作,在這一個環(huán)節(jié)中,教師要實時把控巡視,有問題的同學,學過的知識要給予指點。當大部分同學,在任務完成過程中,因為需要用新的知識技能來解決問題,而不會時。教師要及時開始給大家給予講解分析知識點,這一過程也不能干講,而是要用一個簡單的例子,邊演示邊講,從而完成知識點的傳授過程。然后,再讓學生開始完成任務的剩余部分,在這一過程中,老師要不斷提示學生新的知識技能,巡視查看。在第二階段,老師對其中一名同學的任務完成情況,進行點評。分析其代碼的利弊之處。然后,學生開始完成該任務的第二部分(這次任務是之前任務的加強和提升,性能更加提升,功能更加強大,突出代碼和特殊語法的要求,督促學生查閱網(wǎng)絡平臺資料和書籍)(15min),老師在這一過程中,加強巡視和指導。然后就通常的一些問題,統(tǒng)一分析講解(5min)。然后,再讓學生開始完成任務的剩余部分,并提交model平臺。老師對學生的任務進行點評和分析,總結(jié)本次課的知識和技能要素。
在學法上,學生作為主體,教師起到主導作用,讓學生在做項目中學習,引導學生學并不僅僅局限于學課堂中的Java程序設計與開發(fā)技能,而是要引導學生掌握方法、技巧,靈活運用Java編程語言解決今后在軟件開發(fā)中遇到的工作任務。學生在工作體驗中學習,在任務的完成中學會Java程序設計與開發(fā)技能。借助寧職院Moddle平臺課前自主學習教師布置的任務,記錄遇到的問題帶到課堂與教師、其他同學一起討論共同解決,課后借助平臺復習進一步深化掌握課堂上技能。借助寧職院HustOJ平臺,學生課后可以自主練習Java編程技術(shù),平臺會自動反饋提交的代碼是否正確。學生共同參與提出問題、思考問題、討論問題、解決問題等動態(tài)化的學習方式完成教學內(nèi)容,掌握知識點,提高Java程序設計與開發(fā)技能。
以前的Java程序設計教學一般使用傳統(tǒng)的單個小代碼程序片段教學,每個程序例子之間沒有關聯(lián),學生寫的代碼都較短小,對于大的完整實用的程序沒有編寫能力,也沒有整體設計的思路,而且由于教學形式單一,學生學習主動性不高,編程能力無法提高,經(jīng)過對該課程的整體設計,學生對學習中的項目很感興趣,學習主動性提高顯著,并主動完成期末的課程設計與平時作業(yè),編程能力也提高很快。希望該課程設計對于同類型的課程能予以參考和借鑒。