岳夢楚
陜西工業職業技術學院 陜西咸陽 712000
大三的Javaee課程采用的是由人民郵電出版社出版的教材,大三上學期Javaee教材教學的中心內容是有關框架語法的學習和編寫。Javaee程序設計是整個Java語言當中難度最大、要求最高、邏輯思維最嚴謹的課程,屬于Java語言系列當中的高級部分。大三上學期,學生面臨畢業、就業、專升本,學習壓力、應考壓力、就業壓力加重,而Javaee程序設計課程教學、上機時間又極其有限,如何使學生在有限的時間內,身心愉悅地掌握Javaee框架編程思維,并能夠獨立地編寫具體的企業級項目,熟練掌握企業級項目開發的一般思維方式、流程及原理,在實際教學實踐中,本文對教學方法和模式進行了一定的創新嘗試實踐。
教學是師生的互動,是教學中的相長,只有充分掌握學生的基本情況,才能有的放矢地進行教學,完成教學任務,進入教學相長的狀態。教學前,教師通過線上向學生發倡議,開展問卷星調查,傳智播客預習模擬測試,百度貼吧發帖討論;線下與學生談心,以開學生干部座談會議等方式收集畢業班學生對于上好Java高級技術課的建議和意見。
通過以上方式實地調查并結合本校學生的學習特點,將具體學情總結如下表所示:

學情分析表
基于以上學情分析,在具體教學中,教師除了依據現有的學生認知進行教學改進外,還在課程教授過程中悉心觀察不同學生的情況。依據現實課堂的學情反饋認真做好上課記錄,寫好上課總結,為后續課程教學方法的改進奠定理論與實踐基礎,同時注意課堂授課方式的靈活調整與應對,提高效率。
我國偉大的教育家孔子曾說:“知之者不如好之者,好之者不如樂之者。”這充分說明,興趣是最好的老師。上課伊始,若抓住了學生的“心”,就為這堂課的成功奠定了基礎。因此,上課開始時教師運用各種方法激發學生興趣。以Spring框架授課為例:
(1)播放精彩紛呈的Spring動畫短片。該動畫短片旨在介紹Spring的發展歷程和每推出一個新版本時所經歷的時代背景和故事。播放完畢后,由教師在雨課堂發起提問:你能繪制Spring框架的發展時間線嗎?并使用擊鼓傳花的方式指定學生上黑板繪制時間線,如圖1所示。問題的導入,點名方式的創新,無不增加了課堂的緊張感和刺激感,提升了學生的課堂專注度。
(2)繼續播放Spring動畫短片,這一部分則著重動態展示Spring框架體系結構,由教師指導,學生自己登錄系統搭建模塊。在觀看欣賞的過程中,學生既熟悉了Spring組成體系[5],又愉悅身心、調整心態。而在學生自己搭建模塊時,又可強化自身的動手實踐能力。
(3)利用雨課堂投稿功能。經過以上課堂活動,教師將課堂主動權交給學生,由學生自己總結Spring框架的優點,并將總結點寫在練習本上拍照上傳。教師通過PPT點評每位同學的作品,這樣既鍛煉了學生歸納總結的能力,又可在過程中分析討論,提高學生學習的積極性。
(4)智趣游戲激興趣。本課程教材中附帶的光盤里的智趣游戲內容是很好地激發學習興趣的教材,教師在授課過程中可以適時的選用。比如在講完Spring的定義后,使用小游戲進行課堂練習,不僅能激發學生學習興趣,而且能活躍學生思維。
(5)任務驅動激動能。提出明確的學習任務,比如在編寫Spring快速入門案例時,教師先在編譯器上編寫運行后讓學生分組,比一比看哪組做得好、做得快,優勝組給予適當獎勵,落后組可以適時使用“懲罰”小游戲。如此,既將課本內容“化靜為動”“化抽象為具體”,又可使學生在這樣良性競爭的氛圍中提高學習效率。

圖1 Spring發展歷程線
學貴有疑,學患無疑。學習的過程就是不斷生疑、質疑、釋疑的過程。在生疑、質疑中思考、探索,在釋疑中頓悟。現行教材圖文并茂,簡明通俗,特別是在學生熟知工具的使用方法后,悉心地按照講解要領也能完成任務案例的編寫,但學生往往會對其中一些操作的道理所在卻不甚明了。為此,教師在教學中,找準設疑契機,或自己刻意設疑,或讓學生生疑,而后再告訴學生所以然,這樣一舉多得。其一,既使學生知其然,又知其所以然,讓學生“魚”與“漁”兼得。其二,不但活躍了課堂氣氛,還開發了學生思維,培養了學生積極思考的思維品質。其三,滿足學生心靈深處根深蒂固的認為自己是一個發現者、研究者、探索者的心理需求。其四,改善了師生關系,使教師更走近學生,變教學的主宰者、領導者為教學的服務者。
以Spring依賴注入[5]三種集合數據類型對象講解為例,首先剛開始并不急于講解新知識點,而是先進行知識回顧,讓學生分成三組,分別畫出三種集合數據類型的內存圖解,幫助學生復習不同的集合在計算機中的內存分配和運行機理。其次,由于學生初次接觸依賴注入的概念,在講解依賴注入時,教師要改掉以往“照本宣科”講解零碎知識點的方式,先進行角色扮演——教師扮作客戶,對工程師們——學生提出需求:從鍵盤任意輸入三種集合數據類型,控制臺分別打印輸出最終結果,并且注明,只要結果正確,不論實現的方式如何均可以。待學生思索一陣后,使用雨課堂隨機點名,被點中的學生可以向全班展示自己的成果以及實施過程。經過實際教學過程后發現,大部分同學都使用了傳統Java編程方式實現需求,而不是新掌握的Spring框架。此情此景,正好為本節重要知識點的登場做好了準備——教師打開IDEA編譯器,分別創建Java傳統項目和Spring框架項目,在各自的src目錄下只編寫前兩種數據類型的程序,期間使用的參數和設定值都是相同的,編譯運行后,兩個窗口查看結果。學生體會到傳統方式能夠實現的功能,Spring框架也能實現,傳統方式不能實現的功能,Spring框架仍舊可以實現,以此讓學生更加能夠感受到Spring框架編程的強大與便捷。兩種方式流程如圖2所示。

圖2 兩種方式流程圖
在學生練習階段,教師繼續角色扮演——更改客戶需求,修改前兩種數據類型的參數值,并使用Spring方式實現第三種集合數據類型。在整個練習過程中,有些學生因為Spring方式理解不到位而無從下手,有些同學則因為舉一反三能力較差在需求更改后無法順利編譯運行,在學生茫然無措時,教師適時點撥、引導,幫助其完成實驗結果。這期間,有不到5%的同學能較為流暢地運行出結果,但與“客戶”所提要求還有一定的差距,在學生深感費解與疑慮時,教師指出學生應在細節上予以更改,并在方法和成員變量的賦值、ApplicationContext.xml文件的配置中完善不足的地方。
課程的最后,教師使用PPT對兩種編程方式進行相似點與不同點的比對,并指出IOC和DI編程的優勢,同時說明傳統方式的思想是如何為Spring方式服務的,它們內部邏輯之間有著怎樣千絲萬縷的聯系,Spring又是如何站在“前人”的肩膀上進行優化的。
總結上述課程實施過程,不論是在內存講解模塊、Java傳統方式和Spring方式模塊,都做到了實現讓學生知其然,并知其所以然的教學目標。
教師在授課過程中發現,學生的個人興趣愛好、操作水平都有很大差異。有的學生由于個人愛好編程,大一大二的時候便開始自學Java高級部分,已能熟練操作各種編程軟件,參加各種培訓;有的學生在上機時,卻顯得略微吃力;還有一類同學因為編程課基礎過差,對編程提不起興趣,甚至出現連項目導入都成為問題。因此,上課時,若不注意因材施教,就會出現學生水平相差較大、知識掌握良莠不齊的現象。為了使操作水平參差不齊的學生都有所得,教師調查掌握各類學生的心理特點、學習狀況,針對不同學生的情況,提出了不同要求,讓他們均能在能力上有所提升。對于有天賦并且擅于學習的學生,除要求他們完成課本制作任務外,還鼓勵他們制作一些反映個人個性的作品,組織他們參加各類競賽活動;對于理解力稍微欠缺的同學,教師讓他們在課堂上與教師一同幫助“吃不了”的同學。對那些學習有困難、有畏難情緒、厭學情緒的學生,教師可以在課后為他們專門輔導,并挑選學生代表進行一對一練習。總之,在因材施教中,學生學習能力呈階梯式增長,并且樂于其中,既學知識又學做人;既掌握了新知,又加強了班級凝聚力;既培養了精益求精的品質,又養成了大國工匠的責任擔當意識。
Javaee是程序設計類課程,這類課程實踐性、操作性強。只有動手操作,反復實踐才能掌握要領,形成技能技巧。因此,編程課必須保證學生有效的上機時間,處理好講與練的關系,對此,教師進行了相應的改進和創新。首先,依據教材,但不拘泥于教材,大膽調整教材順序。如:將數據庫連接池[6]、MyBatis等有關內容與JDBC相整合,將Spring與SpringMVC銜接等。其次,分散難點,調整刪插內容。如:在數據綁定章節中,由于有的學生對于數據綁定的認知,區分復雜數據綁定和簡單數據綁定等能力都有待提高。因此,為了使學生盡快掌握如何進行各種類型的數據綁定,教師將“創建用戶注冊案例”改為制作一個“客戶管理案例”。再如,課本singleton作用域和prototype是一個重難點。因此,教師特意在講解兩者區別時,增加了使用debug進行單步調試的內容,讓學生在“步步為營”中掌握原理。再次,寓“理論講解”于“操作實踐中”。這樣,既可避免理論講解的枯燥乏味,又可相應增加上機實踐,使學生邊聽邊練,在練中學要領、識術語、悟道理。在講解各種jar包的作用時,比對之前Eclipse每次都需要手動導入,IDEA只需在pom.xml文件中導入基本包坐標即可,如圖3所示。“紙上學來終覺淺,絕知此事要躬行”,諸如此類知識點的講解,都是在具體編程實施過程中認識、理解、學會的。

圖3 pom.xml中的基本包坐標
筆者從事Java課程教學以來,發現隨著市場上技術的不斷更迭,Java系列的工具、語法、技術點也是日新月異。筆者在日后的教學過程中也會繼續探索發現新的教學模式和方法。