張虎 葉傳奇 谷志峰

摘要:在“大工科”教育理念逐步深化的教學改革過程中,案例驅(qū)動教學模式越來越受到青睞。在《Java程序設計》課程中引入案例驅(qū)動教學模式,通過講授內(nèi)容與實際應用相結合,精心設計案例用于理論和實驗的教學,不僅能夠順利完成教學內(nèi)容的講授,還能夠使學生牢固掌握所講內(nèi)容,并在掌握理論內(nèi)容的基礎上掌握應用開發(fā)技術,為今后滿足今后的編程崗位需求打下基礎。
關鍵詞:Java程序設計;案例驅(qū)動;實驗教學;教學設計;案例設計
中圖分類號:G642? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)14-0146-03
伴隨互聯(lián)網(wǎng)、信息化的進程,Java語言已融入以Android平臺為代表的移動應用、普通桌面應用、Web 應用程序、Web 服務器和應用服務器、游戲、汽車、工業(yè)自動化等各行各業(yè)。因為Java語言的開源和免費、易學易用,安全、快速、功能強大,并能夠適用于Windows、Linux 、Mac等不同的平臺,使得Java語言成為世界上最流行的編程語言之一。根據(jù)Tiobbee的統(tǒng)計,Java語言的排名始終排在計算機語言的榜首。熟練掌握、應用Java語言的軟件開發(fā)人才在人才市場中始終保持著旺盛的需求。基于Java語言的人才培養(yǎng)是各高校軟件人才的重點培養(yǎng)方向。
1 學生學習Java課程的現(xiàn)狀
各高校軟件專業(yè)的課程設置普遍為由C語言入門,而后根據(jù)專業(yè)方向的劃分開設Java、C#、PHP、Python等語言。我院的Java方向的課程設置,是在C語言的基礎上繼續(xù)開設Java課程,并以Java課程開始Java方向的系統(tǒng)學習。
《Java程序設計》是面向計算機相關專業(yè)的一門專業(yè)基礎課,涉及Java語言中面向?qū)ο缶幊獭⒍嗑€程處理、網(wǎng)絡通信等內(nèi)容,通過本課程的學習,要求學生能夠達到了解 Java 語言特征、類庫以及面向?qū)ο蟪绦蛟O計思想,學會利用 Java 語言編寫面向網(wǎng)絡應用的簡單程序。在理論教學的基礎上,實驗教學環(huán)節(jié)需明確必要的理論知識的升華與知識層面的拓展,不能局限于單純的技能訓練。以能力的培養(yǎng)為重點,以編程崗位的需求為導向,培養(yǎng)學生具備職業(yè)崗位所需的編程思維和能力,職業(yè)生涯發(fā)展所需的能力和終身學習的能力,實現(xiàn)一站式教學理念。
在Java課程之前,學生們已經(jīng)有了C語言的基礎,對于編程已經(jīng)不再陌生,但對于編程能夠做什么還只是模糊的認識,自己還沒有寫過與實際應用相關的程序,所以在學習編程時仍然是抽象的概念,只是為了學習一門課而學習,沒有真正領會到編程的思想。就往屆的學生學習狀況,在開始Java課程的學習后,學生們?nèi)匀皇莾H僅把它當作一門課而機械的學習,上課聽得懂,課下也把老師布置的作業(yè)完成了,但是沒有真正思考程序設計的過程和細節(jié),僅僅是完成了作業(yè),所以在遇到實際問題的時候還是不會用所學的知識和技術來解決問題。學、用的分離現(xiàn)象說明學生在基礎知識的學習上課程結課后通過了形式上的考試,但還沒有真正掌握,沒有應用知識的思維和能力。
基于學生學、用分離的實際,在教學過程中引入案例驅(qū)動的教學模式。
2 案例驅(qū)動模式的引入和運行
程序設計教學過程要體現(xiàn)課程之間的銜接、各門功課之間的相互作用,比如數(shù)據(jù)結構為課程提供數(shù)據(jù)組織管理和算法的支持,數(shù)據(jù)庫為項目提供數(shù)據(jù)存儲和管理的支持等等。
在實驗課程中,基于工作過程開發(fā)課程內(nèi)容,以行動為導向進行教學內(nèi)容設計,以學生為主體,以案例(項目)實訓為手段,設計出理論學習與技能掌握相融合的課程內(nèi)容體系。教學整體設計“以職業(yè)技能培養(yǎng)為目標,以案例(項目)任務實現(xiàn)為載體、理論學習與實際操作相結合”。
本課程為考試課程,期末考試采用百分制的閉考試模式,在機試或筆試的形式上可以選擇。學生的考試成績由平時成績(30%)和期末考卷試(70%)組成。命題的思路是在基本概念、原理的基礎上,融入實際應用中的問題進行題目的設定。從而要求學生在答題的過程中,能夠用基本概念、原理來指導答題,實現(xiàn)了教學與實際應用中的融合。
本課程的授課模式為:課堂授課+上機實驗,分別考核記錄成績。其中,課堂主要采用多媒體的方式進行授課,并且會通過測試題階段測試學生的掌握程度;上機實驗主要是編寫程序,要求學生動手完成指定的程序設計或驗證。
3 案例的設計不但要結合實際項目應用,還要要結合教學需要
3.1 精心編寫實驗指導
上機實驗是對理論學習的深化與拓展,是學生將課堂的理論學習轉化為自身軟件開發(fā)技能的必經(jīng)環(huán)節(jié)。上機指導是每次實驗的指導書,是指引學生訓練方向、取得收獲的工具。實驗指導書中在實驗案例的編排上要循序漸進,既要做到訓練目的的循序漸進,也要做到訓練難度的循序漸進。
3.1.1訓練目的要循序漸進
實驗題目的設置,要根據(jù)所學的知識點進行設置,在內(nèi)容分級上分為基礎驗證式實驗,綜合設計實驗。基礎驗證實驗根據(jù)上課所學習的知識點進行設置,對每一個知識點所講到的內(nèi)容進行驗證,是掌握基礎內(nèi)容的基礎案例。上課講得多,實驗內(nèi)容不可能面面俱到,但要做到以點帶面。并且,在原理講完后,在眾多的應用方法中不會全都講到,課堂上會把重要的、常用的方法講到,其余的內(nèi)容需要學生在實驗室自己查閱參考資料來進行完善、掌握。比如對于集合類中的方法,課堂上講完原理后,老師會舉例演示其應用的方法,但對應的函數(shù)有很多,課堂上不會一一演示,在實驗指導中也只是把常用的函數(shù)通過實際的案例來進行練習。沒有練習到的函數(shù)就需要學生根據(jù)課堂所學來查閱API,而后自己進行練習。這樣的訓練過程,不僅使得學生掌握了基礎內(nèi)容,還鍛煉了學生的自主學習能力,在遇到新的問題時能夠運用自己的所學,通過查閱資料獲取幫助從而解決問題。綜合案例是在基礎驗證實驗的基礎上設計的。綜合性實驗把知識點進行融合,在一個需求解決的過程中應用到多個知識點的內(nèi)容,從而體現(xiàn)其綜合性。在綜合設計型實驗的項目上要留出部分內(nèi)容讓學生自由發(fā)揮,體現(xiàn)一定的創(chuàng)新性。
3.1.2訓練難度要循序漸進
實驗內(nèi)容要把握好訓練難度,要遵循先易后難的原則。基礎驗證實驗的難度較低,體現(xiàn)所學的內(nèi)容,要求學生掌握基本方法的使用。綜合設計實驗是在基礎方法上綜合應用的、有一定難度的實驗,體現(xiàn)對多個知識點、方法綜合應用、進行融會貫通的實驗,既有難度,也有一定的靈活性。在難度的設計上不能一開始就提高難度,因為學生掌握的程度不同,對于知識、技能掌握較為薄弱的學生,起步的難度過高會使得他們失去信心,甚至放棄。要在多個實驗題目的順序上逐次排列,是學生在題目的完成過程中體驗到成就感,同時掌握方法,從而達到訓練的目的。這樣的編排,既保證了掌握程度較為薄弱學生的學習和訓練,也能夠讓學有余力的學生有發(fā)揮的空間。
3.1.3實驗題目案例的設計要精細化,要在知識點的基礎上結合實際應用來設計,做到大小結合。
實驗題目的案例,首先要體現(xiàn)所講授的知識點。比如在選擇結構中的多分支結構,可以將用戶身份證號的分析程序拿來做案例,通過身份證號的字串截取、匹配,輸出該用戶的籍貫、出生日期等信息。在集合類中,分別用ArrayList和HashSet來實現(xiàn)模擬彩票的2選5的操作,通過老師的講解,并讓學生分析、比較二者實現(xiàn)過程的差別,從而領會、掌握線性和非線性集合的原理和操作特點。
在lInkedList的學習過程中,設計用LinkedList實現(xiàn)堆棧的進、出棧操作,不僅在基本操作上進行了真悶練習,掌握了每個函數(shù)的功能、特點,還對數(shù)據(jù)結構中所學習的堆棧操作做了進一步的理解和掌握。這個實驗案例完成后,學生能夠自己選擇數(shù)據(jù)結構并自己完成堆棧操作的程序書寫。
將知識點結合具體的應用進行案例設計,實現(xiàn)了案例設計的精細化,學生通過案例的練習能充分理解知識點,并掌握其應用的方法。
案例設計還要大小結合。體現(xiàn)知識點的案例是讓學生掌握基礎內(nèi)容,掌握一個一個分散的知識點,這些是小的案例。在基礎知識點掌握后,就要通過大的案例來進行綜合練習。大的案例是諸多知識點的綜合應用,是在基礎知識掌握后的升華,是實際操作技能的訓練。大的案例要結合實際,靈活多樣,但主旨是固定的,就是要訓練學生對所講授內(nèi)容的技能應用。大的案例在實驗課上的時間是不夠的,可以布置成大作業(yè),比如每兩周一個大作業(yè)。大作業(yè)的完成時間也布置得稍長一些,可以留一周時間,在實際運行中,我們是布置本次大作業(yè)時要提交上次的大作業(yè)。這樣的完成周期,學生們不僅能夠?qū)P耐瓿身椖浚矣谐渥愕臅r間做相互交流、查閱資料,能夠高質(zhì)量地完成。而不會為了在短時間內(nèi)為了完成作業(yè)而拼湊程序來應付作業(yè)。比如在學習了集合類和GUI編程后,布置了商品管理的大作業(yè),作業(yè)參考界面如圖1所示。
這個案例不僅要求學生能夠自己選擇管理數(shù)據(jù)的數(shù)據(jù)結構,還要能夠完成數(shù)據(jù)的增刪改查,并能夠自己布局界面、書寫控件的驅(qū)動。完成了這個案例,也為后續(xù)的數(shù)據(jù)庫操作數(shù)據(jù)準備好了基礎,屆時可以套用這個界面,將原本集合類的數(shù)據(jù)管理方式替換成數(shù)據(jù)庫的管理方式就完成了一個新的作業(yè)。這樣,一個案例不僅訓練了學生對基礎知識的應用能力,還在知識的連貫性上有了充分的認識,將知識點做到充分、扎實地掌握。
3.2實驗方式要靈活起來
傳統(tǒng)的實驗教學方式是在一定的知識點教學完成之后,安排一次上機實驗。但僅依靠有限的上機實驗時間是不夠的,可以小作業(yè)和大作業(yè)相結合,線下和線上相結合。
小作業(yè)是每次實驗布置的上機內(nèi)容,大作業(yè)是將若干內(nèi)容相融合后布置的綜合性作業(yè),完成時間相對較長的作業(yè)。平時每堂課課后布置作業(yè)、上機布置的練習內(nèi)容為小作業(yè),每周或每兩周布置的綜合性案例是大作業(yè)。小作業(yè)是知識點的鞏固,大作業(yè)時思路的拓展和技術能力的訓練。上機實驗方式可以在網(wǎng)絡環(huán)境下進行靈活的擴展。首先要保證固定的上機實驗時間,在上機實驗的過程中老師可以和學生面對面的交流、答疑,對發(fā)現(xiàn)的共性問題進行及時的講解、處理,針對完成得較好的、存在問題較多的實驗作業(yè)進行點評。在實驗課結束后,可以充分利用網(wǎng)絡資源,與學生進行線上的互動,把實驗課搬到網(wǎng)上。學生在課下自習時遇到問題可以給老師留言、提交作業(yè)等,老師在網(wǎng)上與學生進行互動交流也更加方便。在開啟線上的輔導、答疑后,實驗課的時間得到充分的增加,并且不受地點的限制,雖然沒有見面課的交流直接,但作為有限的實驗科學時而言是一種極其有益、高效的補充。
4 課程實驗考核方式要與實際結合、突破傳統(tǒng)
課程理論考試可以在機試或筆試的形式上選擇進行,但在課程實驗考核過程中,不建議以傳統(tǒng)的筆試或機試的形式進行。傳統(tǒng)的考試形式對于實操性強的語言編程課來講并不適合,卷面考的內(nèi)容雖然可以以多種形式變化著考核學生對知識點的掌握程度,但很難區(qū)分學生的實際應用能力,和應用自己的所學對問題的分析、處理能力。我們建議通過大作業(yè)的形式來完成實驗課的考核。每人一個題目,在完成程序的基礎上,自己要完成項目的需求分析、設計報告,并在考核現(xiàn)場進行演示、講解。全部過程類似于課程設計,但難度和時間少于課程設計。大作業(yè)的形式不僅能夠反映學生對基礎知識的掌握和理解程度,也訓練了學生的實際應用能力,是課程學習的一個重要的功能部分。
5 結語
案例驅(qū)動教學模式的應用,在教學過程中收到了滿意的效果。學生在Java程序設計課程接收后都能能夠應用課堂的所學寫出諸如考試管理系統(tǒng)、商品管理系統(tǒng)等小程序,真正達到了課程教學目的,在編程技能訓練上也收到滿意的效果。目前,我們還在繼續(xù)探索案例驅(qū)動教學模式的運行,在案例的編排上還在繼續(xù),正在根據(jù)眾多的知識點,結合實際應用設計案例,以期后續(xù)更加滿意的教學效果。
【通聯(lián)編輯:光文玲】