文/龐光垚
遞進式單案例教學法在Java課程中的應用
文/龐光垚
針對當前Java課程關于案例教學過程中存在的問題,結合Java課程的學習任務以及特點,本文提出了遞進式單案例教學法。該方法根據教學大綱知識點逐步深入的特點,選取學生容易理解的一個案例,對案例進行任務分解。任務分解不以功能拓展為主線,而是以模擬企業級開發項目為目標。使用新的知識點不斷對功能進行重構、優化,從而達到讓學生熟練掌握編程技術,具備企業級開發的分析思維以及掌握開發方法的目的。
Java技術;教學方法;案例教學法;遞進式教學法;教學改革
1.引言
隨著Internet的發展得以迅速流行,并占據了顯著地位,Java作為一種面向對象的程序設計語言,因為其具有通用性、高效性、平臺移植性和安全性等特點,得到了除微軟外的所有主要軟件提供商的認可[1]。隨著移動互聯網,尤其是Android陣營的急速發展,無論企業或者個人開發者都選擇了Java作為核心技術來構建他們的應用系統,由此奠定了Java作為主流開發技術的地位。
因此,目前國內許多高校對學生的技術培養主要是以Java、Jsp、SSH架構、安卓等Java體系為主,Java程序設計課程效果的好壞直接影響了后續技術學習的優劣。如何更好地發揮Java課程實踐性強的特點,使學生具備很強的動手實踐能力、掌握Java程序開發技巧、積累項目開發經驗從而勝任企業需要是當前亟待研究解決的問題[2]。
Java教學一直以來都采用理論加上機課的方式進行授課,所使用的案例多數為教材中零散的小例子。而這些例子存在幾個方面的不足:一是例子多以算法為主,學生花在算法的精力遠大于學習編程技術的精力;二是例子過于零散,課程學習完之后,學生仍然無法將各個知識點融合運用,對面企業級開發更加無從下手;三是即使使用企業級案例,仍然過于零散,無法貫穿,更無法體現知識點遞進式演進的特點。外加學生缺乏項目實訓,往往會出現理論知識和實踐脫節的情況,無法形成工程化的開發思想,開發實際項目的能力和經驗不足[3]。
針對上述問題,筆者提出了遞進式單案例教學法,并應用在了Java課程教學過程中。實踐證明,這種方法能夠有效地解決上述問題。
2.遞進式單案例教學法
項目教學法源自美國哈佛大學的課堂教學模式,以建構主義的學習理論為依據,其4大要素是情境、協助、會話和意義建構[4]。該方法中教師的教學重點在于為學生提供真實的情境,在情境中展示案例,激發學生學習興趣,促使學生充分理解問題的復雜多樣性,最終解決問題以達到教學的要求。
遞進式單案例教學指教師選取一個學生能理解的案例,并將其分解為多個子任務。每個子任務根據教學大綱逐步引入新的知識點,隨著知識點學習的不斷深入,則相應地對子任務對演進或者重構,通過該方法,學生能夠循序漸進地掌握所有知識點,同時理解項目演進的流程以及功能實現的思路以及方法。
根據心理學家布魯納的學習動機理論,教學過程要重視學生的學習動機,而動機分為內在動機和外在動機,內在動機比外在動機更重要[5]。而筆者認為,最能調動學生積極性的做法就是讓學生因為成功而產生成就感。按以往初學學生反映,理解的最大難點在于知識點掌握之后如何開發出帶界面的軟件系統。而遞進式單案例教學法就是通過案例實現的遞進演示,先讓學生實現控制臺操作的簡單系統,再慢慢引導界面實現。以此類推,再按該思路實現數據存儲等的功能,最終在課程學習完成之后,能夠掌握知識點,理解軟件實現的思路和方法,最終做出讓學生自豪的完整軟件系統。
3.遞進式單案例教學法的實施
本門課程的教學對象是大二下學期的學生,已經以Java語言學習過面向對象課程,理解Java的基本語法。但是編程能力比較弱,不懂如何運用Java知識,不理解系統實現的原理和方法。針對這些特點,案例選擇了學生經常接觸的ATM取款機作為原型,并且始終以該案例貫穿整個Java教學過程。在課堂上用代碼跟學生進行互動,讓學生以緊湊的節奏跟隨老師一起推進實現案例。
3.1遞進式單案例的設計
為了便于理解,ATM案例選擇登錄、查詢金額、存款、取款以及轉賬等常規功能。表1為筆者Java課程教學中AMT案例劃分的子任務列表。任務1以最低要求實現所有功能;任務2以面向對象的思維進行代碼重構,灌輸面向對象思維;任務3以代碼的方式,讓學生直觀地理解接口、繼承;任務4結合控制臺的輸入輸出以及常用的組件,構建出具備完善功能的ATM系統;任務5引導學生把系統控制臺處理的方式修改為界面操作方式;任務6首次提出存儲的概念,讓學生理解永久性存儲及其技術實現;任務7則以企業級開發的思維把數據持久化到數據庫;任務8則以線程的方式讓學生體會到多用戶登錄以及單點登錄高級應用;任務9、10引導學生實現CS結構的客戶端以及服務器端;而任務11則對系統代碼進行了優化,讓學生理解系統的復雜多變性。

表1 ATM案例子任務劃分
3.2案例的教學過程
ATM案例雖然功能不多,但是涉及的內容很多。而既要讓學生掌握知識點,鍛煉出較強的編程能力,又要讓學生理解系統的開發過程和學習到系統的開發思路及開發技術。為達到這個要求,我把整個Java教學過程分為3個階段:
3.2.1第一個階段,主要培養代碼規范以及編程能力。該階段要求教師把知識點講透徹,在演示代碼實現的時候簡單詳細。最主要的是讓學生動起來,所以布置的課程練習以及作業,以填空的方式,先填代碼段,再填寫方法,最后填寫整個類。
3.2.2第二個階段,主要引導學生理解功能分解、設計分析以及解決問題的能力。以界面開發為例,前期先灌輸給學生面向對象、分層等的設計思想,接著對程序結構進行分層,把業務和視圖相分離。最后在業務邏輯不變的情況之下,把控制臺的輸入輸出轉換為界面操作。讓學生理解面向對象的設計方法,以及程序實現的多樣性。
3.2.3教師在課堂上當場編寫服務器端程序以及客戶端程序。然后逐步對學生提要求,能夠把老師下發的客戶端修改配置文件登錄成功則達到了最低標準,能夠調用接口進行存錢等功能則為優秀,能夠模仿老師的寫法完成服務器端則加分。該階段讓學生理解難度激發挑戰心理,而以極低的要求則培養了學生的自信心,從而達到了由內而外的學習提升。
通過這由淺到深的三個階段,加上課程設計的功能拓展以及系統優化,可以讓學生建立起健全的Java學習體系。
4.結論
在對12級約150個學生進行教學改革實驗的過程中,課堂氣氛非常活躍,基本上所有的學生都在努力編寫代碼實現功能,能夠跟隨授課教師步驟實現功能的達80%以上,其中每次都有大概25%的學生能夠完成授課教師布置的拓展功能,課程設計的答辯場面也非常活躍,學生沉浸在自己的實現成果當中。由此可見,遞進式單案例教學法,能夠激活學生的興趣以及自主性,從而達到熟練掌握Java相關知識點、具備較高編程能力、有較強的系統分析能力和理解能力的要求。最終Java課程的教學效果得到了顯著提高。
[1]施霞萍,張歡歡,王瑾德,等.Java程序設計教程[M].北京:機械工業出版社,2006:2-3.
[2]張業男.利用貫穿案例進行JAVA教學的探索[J].農業網絡信息,2013(2):118-119.
[3]任平紅,陳矗等.貫穿案例教學法在JavaWeb程序設計教學中的應用[J].計算機教育,2014(14):67-69.
[4]張哲,陳桂生.在Java語言教學中實施“項目驅動”教學法的實踐探索[J].教育與職業,2007(18):23-25.
[5]陳琦,劉儒德.當代教育心理學[M].北京:北京師范大學出版社,2007:210-230.
龐光垚(1986.03-),男,漢族,廣西浦北縣,碩士,助理工程師,主要研究方向:軟件工程。
G
A
2095-9214(2015)03-0083-02
梧州學院信息與電子工程學院)