區(qū)鐵毅
摘要:任務驅動教學法是以任務為載體,把知識點融入任務中的一種教學方法。應用任務驅動教學法,在課程實訓中令學生依照實訓任務實現(xiàn)現(xiàn)實項目中可以用到的技術,在課堂管理引導之下,可有效地提高多數(shù)學生對學習編程的熱情。采用任務驅動教學法,結合Java應用開發(fā)課程實踐,講授Java封裝、繼成、多態(tài)、接口、異常、文件系統(tǒng)操作和線程等知識點,能獲得較好的教學效果。
關鍵詞:Java應用開發(fā);任務驅動教學法
1. 任務驅動教學法
任務驅動教學法是以任務為載體,把知識點融入任務中的一種教學方法。學生通過對任務進行分析、合作和討論,遵循一定的規(guī)律完成任務。學生通過完成任務了解和掌握知識,并將所學知識進行歸納抽象乃至內(nèi)化。設計任務要充分考慮學生個體學習能力的差異、學生現(xiàn)有知識水平等因素,設計層次遞進的任務。任務難度要適合學生的認知發(fā)展規(guī)律,應需要學生付出一定的努力才能完成。任務應緊緊圍繞教學目標進行設計。要根據(jù)人才培養(yǎng)方案和課程標準設計難易適中的任務。任務要與課程內(nèi)容密切相關。運用任務驅動教學法的目的是使學生在完成任務過程中盡可能以較高參與度來掌握知識。
應用任務驅動教學法,在課程實訓中令學生依照實訓任務實現(xiàn)現(xiàn)實項目中可以用到的技術,在課堂管理引導之下,可有效地提高多數(shù)學生對學習編程的熱情。教師依據(jù)每個教學知識點設計案例任務,在教學過程展開之前需要精心地準備相應的教學知識點,將教學內(nèi)容融入到一個個小而精的案例任務中,由項目需求出發(fā),為實現(xiàn)滿足需求的功能引出教學內(nèi)容,讓學生帶著好奇心去學習,堅持以學生為主體的教學理念,激發(fā)學生的學習積極性。學生帶著項目的功能需求為依據(jù)來學習,在學習過程中理解所學的知識點可以去解決哪一類型的工程問題,相對更能代入未來的職業(yè)角色。新時代學生接觸電子設備通常較早,而傳統(tǒng)而純粹的案例教學法較難足夠引起學生的學習興趣。
2. 課程與任務驅動教學法的聯(lián)系
在Java應用開發(fā)課程中,關鍵的概念便是面向對象的封裝、繼承與多態(tài)。封裝主要以方法、類和包三個層次進行可見性限定,而可見性共有四種,自廣而微分別為public(包)、protected(保護)、包可見和private(私有)。在講授的過程中,適度引入對軟件工程“高內(nèi)聚、低耦合”目標的概要介紹。在實踐課以任務的形式,給出以Java方法、二維數(shù)組和可見性為主要應用涉及的知識點的實訓任務,布置封裝一個能類表示三階行列式的類,并在該類中實現(xiàn)一個以對角線展開法解三階行列式的值的方法。其中,二維數(shù)組不應讓外界輕易修改,故應設置為私有并利用IDE中的代碼生成器生成公有的setter和getter,并應在setter中作數(shù)據(jù)輸入的合規(guī)校驗,而getter中可進行訪問權限的檢查,必要禁止訪問是可返回null或拋出異常。并布置學生課后以利用求代數(shù)余子式和的方式封裝一個方法用于求解三階行列式值的問題。
在有關輸入輸出和文件系統(tǒng)讀寫的方面,結合阿里巴巴出品的fastjson包以配置文件寫入作為任務令學生完成。在實訓過程中,學生除了要認識經(jīng)典的字節(jié)流和字符流的概念,同時也可以結合數(shù)組的靈活運用作出能作為實際工程項目的組件。
將需求給到學生,學生依據(jù)課堂所講知識進行詳細設計和編碼調(diào)試程序,測試模塊功能。在這個過程中多數(shù)學生的參與度較高,尤其是有關多線程的知識點的學習過程中同時可回顧面向對象多態(tài)的特性,亦可了解對Thread類進行實例化和利用Runnable接口實現(xiàn)多個線程。在此過程中學生除了習得線程相關的知識,還能溫習到接口的作用,是對學過的內(nèi)容的有機整合,是能讓學生對昔日學過的知識點靈活運用的活動。
在異常處理相關的知識點相關的任務設計上,該任務首先表明了異常本身也是一種類。其次,在可能有異常拋出的語句上,應當至少以try-catch結構進行包裹,或在方法簽名處標明throws Exception。并且在任務中對拋出異常和將異常向上層拋出特別說明“throw”和“throws”關鍵字的區(qū)別。
在網(wǎng)絡編程有關的知識點方面設計的項目任務可以結合多線程進行練習。同一個程序在分別作為服務端和客戶端時,可分別監(jiān)聽和連接一對或多對端口以進行消息傳輸,并且在講解項目任務的過程中帶入計算機網(wǎng)絡基礎中有關OSI/RM和TCP/IP協(xié)議棧的基礎知識點,并穿插講授InetAddress類的實例化對象的使用場景。進而帶入基于Socket類和ServerSocket類的TCP通信和基于DatagramSocket類和DatagramPacket類的UDP通信的知識點,并進行對比。并在實訓機房中讓學生在同一個子網(wǎng)中兩兩結對進行消息相互傳送,該次實訓任務實施之課堂多數(shù)學生能享受實現(xiàn)可相互傳輸消息的應用之成果之樂趣。
在“云計算技術與應用”開設“Java程序開發(fā)項目實訓”實踐課上,則在基于多線程和網(wǎng)絡編程相關知識為基礎,結合實現(xiàn)基于Swing的GUI作為期末大作業(yè),令學生完成圖形化的局域網(wǎng)消息傳遞工具軟件。多數(shù)學生能較好地完成該實訓任務,完成過程中給出充分的參考資料,包括DevDocs API Documentation(https://devdocs.io/)中所含關于Swing各組件的說明,一定程度上亦鍛煉學生查找資料的能力。
結語:
在Java應用開發(fā)課程中應用任務驅動教學法,對比案例講授法確能一定程度上切實地提高學生對課程內(nèi)容的興趣和參與度。在應用該教學法的過程需要應對學生的具體學習情況有針對性地設計項目任務,并應盡可能使各任務難度形成梯度,并在課程中后期的任務中盡可能融合課程前期的知識點,并應讓學生適時歸納總結,課程后期的課程項目任務應盡可能覆蓋較多知識點并應有一定的現(xiàn)實意義和有基本的工程應用價值,最好能形成學生簡歷上的實際項目經(jīng)驗。
參考文獻:
[1]任務驅動教學法在通用技術課程教學中的運用,王金藤
[2]單機版記憶游戲的設計與實現(xiàn)——Java語言任務驅動教學法應用案例,周敏
[3]任務驅動教學法在商務英語專業(yè)課程教學中的運用——以綜合英語課程為例,杜麗紅