張峰 劉迪 仇麗青 趙衛東

摘? 要:高?!禞ava程序設計》課程教學的核心目標是提高學生使用Java和面向對象編程技術開發應用軟件的實踐能力,因此教學中需要相應的教學資源的支撐。本文介紹了圍繞提升學生軟件開發實踐能力開展的Java課程教學資源建設方面的改革,提出了“MOOC+案例驅動式教材+信息化輔助教學平臺+企業級案例庫”的教學資源建設模式。首先,為配合基于“MOOC+翻轉課堂”的教學模式,建設包含知識點視頻和案例講解視頻的MOOC視頻資源,并將其作為配套資源,撰寫了案例驅動的《Java程序設計》教材;其次,引入了程序設計類實驗輔助教學平臺(PTA),豐富了教學的習題庫;最后,通過校企合作,建設了適用于教學實踐和實訓的企業級項目資源案例庫。
關鍵詞:Java教學資源;軟件開發實踐能力;教材;題庫;案例庫
中圖分類號:TP311.5? ? ?文獻標識碼:A
Abstract:The teaching of Java programming in universities aims at improving a students practical capability of developing application software using Java and object-oriented programming technique.Therefore,corresponding teaching resources are needed in teaching.In this paper,we introduce the reform of java course teaching resource construction,aiming at improving students' practical capability of software development.Specifically,we put forward the teaching resource construction mode of MOOC + Case driven textbook + informational assisted teaching platform + enterprise application cases.First,we construct MOOC video resources,including videos explaining knowledge points and videos explaining application cases.Moreover,we use these MOOC videos as supporting resources to compile the application cases driven Java programming textbook,in order to meet the needs of the teaching mode based on MOOC + flipped classroom.Second,we introduce the Programming Teaching Assistant (PTA) platform to enrich the teaching exercise library.Finally,we construct a cases library containing enterprise project cases for teaching practice and training through the cooperation between schools and enterprises.
Keywords:Java teaching resource;practical ability of software development;textbook;teaching questions bank;
teaching cases library
1? ?引言(Introduction)
Java是軟件開發領域最為重要的編程技術之一[1,2]。近年來,隨著云計算、移動互聯網和大數據等各種新技術的發展,Java技術也具有了更多的用武之地。在當前的高等教育和職業教育中,Java相關課程是程序設計類課程中必不可少的內容。在掌握Java主要技術后,學生的軟件開發能力、就業能力都能夠得以提高。因此,當前大多數計算機和軟件工程相關專業的培養方案中都包含了Java技術的相關課程。
Java技術體系龐大,包含了大量的技術要點,而所有的內容都是以Java語言為基礎的。因此,講授Java語言基礎的《Java程序設計》是所有Java技術相關課程的基礎,該課程的學習效果將直接影響到學生Java軟件開發的能力。
課程教學需要有教學資源的支撐?!禞ava程序設計》課程教學的目標是提高學生的Java軟件開發能力,其教學過程中所需的教學資源需要圍繞該目標來建設。面向高等院校計算機和軟件工程等相關專業,本文提出了以提升軟件開發實踐能力為目標的《Java程序設計》教學資源建設方案,通過MOOC、案例式《Java程序設計》教材、程序設計類實驗輔助教學平臺(Programming Teaching Assistant,PTA)題庫,以及基于校企合作的企業級案例庫四類教學資源的建設,為《Java程序設計》的教學提供教學資源的支持。
2 《Java程序設計》教學資源知識點概述(Knowledge point of Java Programming teaching resources)
作為當前企業級軟件開發最為主流和熱門的編程語言,在當前高等學校的計算機或軟件工程等相關專業的技術類課程中,Java技術相關的課程涉及Web應用開發、基于Android的移動應用開發,以及各種實習、實訓實踐課程。而所有這些課程的基礎和前導課程都是以JavaSE為核心的《Java程序設計》。不論該課程的性質是專業必修課還是專業選修課,以及學時安排的多少,該課程最為核心知識的基礎知識點是相對固定的。教學團隊主要圍繞以下知識點建設《Java程序設計》的課程教學資源。
(1)Java語言概述。主要包括:①Java語言的起源、發展、特點以及技術體系,突出Java語言的與眾不同之處,特別是Java與C和C++這兩種語言的區別;②Java語言中的基礎概念,包括Java虛擬機JVM、Java運行環境JRE,以及Java程序實現跨平臺的技術基礎;③Java開發工具JDK的下載、安裝、環境變量配置和主要的集成開發環境,以及Java程序的開發流程。
(2)Java基礎語法。主要包括Java的數據類型、流程控制等語法基礎。
(3)Java面向對象基礎。該部分是JavaSE基礎中最為重要的內容,包括Java類、對象、內存分配、package、繼承、多態和接口。
(4)Java常用類。主要包括String、StringBuffer、StringBuilder、包裝器類、Scanner,以及Date與Calendar等日期時間相關類。
(5)Java容器類。主要包括:Collection、List、Set、Map等基礎容器。
(6)Java異常。主要包括異常的分類、捕獲和處理。
(7)IO流。主要包括IO流的分類,以及節點流、處理流等各種IO相關類的使用。
(8)其他基礎知識點。該部分內容是在上述基礎知識點的基礎上,根據課程性質及其學習安排,動態確定的基礎知識,如GUI(Graphic User Interface)、JDBC(Java Data Base Connectivity)與多線程等。
3? 《Java程序設計》教學資源建設現狀(Current situation of Java Programming teaching resources construction)
當前大多數高校《Java程序設計》的課堂教學和實踐教學都圍繞上述知識點來組織,主要教學資源包括常規的介紹上述基礎知識點的教材,以及用于實踐練習的基礎編程題。近年來,隨著MOOC[3,4]和OJ(Online Judge)[5]等信息化平臺的應用,很多學校又引入了MOOC視頻、在線自動評測編程題等教學資源。
然而,受限于課程性質和授課學時,當前《Java程序設計》課程的內容普遍深度不夠。大部分學生在課程結束后,仍然只是能夠做一些簡單的OJ編程題,開發一些功能簡單的命令行或GUI程序,學生使用Java面向對象編程技術開發較為大型的軟件的實踐能力還無法滿足企業級應用開發的需要。
從課程教學資源建設方面來看,存在上述問題的主要原因是:第一,從MOOC資源和教材來看,當前《Java程序設計》相關課程的MOOC視頻、教材都以介紹知識點內容為主,缺少對于知識點的應用,特別是結合開發實際的小型的知識點案例,從而使學生無法靈活運動基礎知識點來對實際問題進行編碼。第二,從作業、實驗等環節來看,傳統的紙質作業、實驗報告提交代碼的形式顯然無法滿足學生軟件開發實踐能力的提高。雖然很多高校引入了OJ等信息化平臺,使學生的作業、實驗可以在線提交并實現了自動的評測,然而,目前諸如OJ的平臺中題目的題型非常單一,只能評測一些適用于自動評測的編程題;同時,學生只需保證提交的代碼能夠通過OJ系統的測試用例就可判斷為正確,無法保證評測學生的代碼質量和編碼規范等。第三,從學生課程結束后的軟件開發實踐能力來看,大部分學生還不具備初步的軟件開發能力,缺少企業級軟件開發的基本實踐和基本能力。
綜上,當前《Java程序設計》教學中的教學資源還不夠完善,已有教學資源涉及的內容較為簡單,在教學過程中也難以激發學生的學習興趣,不少學生感覺只是在C和C++的基礎上又學習了一門編程語言,其使用Java語言和面向對象編程技術開發較為大型的應用軟件的能力仍需要進一步提高。
4 《Java程序設計》教學資源建設(Java Programming teaching resources construction)
為了能夠通過《Java程序設計》課程的教學切實提高學生的軟件開發實踐能力,圍繞課程資源建設,教學團隊開展了如圖1所示的四個方面的教學資源建設工作:①Java MOOC視頻資源建設;②Java教材建設;③信息化平臺題庫建設;④企業級案例庫建設。
首先,團隊建立了Java基礎知識點教學資源,主要建設了Java MOOC視頻資源,自編了Java教材。這兩類教學資源是學生學習Java語言基礎知識點的主要教學資源。在課程的教學過程中,學生通過MOOC視頻和教材課下自學課程知識點內容,課堂通過翻轉課堂教學加深學生對基礎知識點的掌握。
其次,為了提高學生點基礎知識點的實踐能力,使學生能夠靈活運用Java基礎知識點,團隊基于現有的信息化平臺構建了信息化平臺題庫,將其作為學生實踐的基礎平臺。教師通過平臺題庫中題目發布作業題、實驗題和考試題,在線完成教學過程中作業、實驗和考試等多個環節。
最后,為了能夠使學生具備使用Java面向對象編程技術進行企業級應用軟件開發的初步能力,建立了綜合實踐教學資源,構建了企業級案例庫,以支撐學生的實踐和實訓。
4.1? ?MOOC資源建設
為了能夠適應MOOC、SPOC結合翻轉課程的教學方法,也為了讓學生充分利用個人時間學習,團隊首先根據上述的《Java程序設計》基礎知識點,錄制了覆蓋核心知識點的MOOC視頻。同時,圍繞與生活實際結合緊密的小型編程案例,錄制了部分視頻。通過知識點視頻和小型編程案例視頻,使學生在線下通過自學可以掌握基礎核心知識點,并能夠有一定的靈活運用知識點的能力。
4.2? ?案例式教材建設
在學生的學習過程中,教材是與MOOC視頻同等重要的教學資源。當前關于《Java程序設計》的國內外教材非常多[6,7],學生往往容易迷失在大量可選的教材中。為了滿足教學中學生學習的實際需求,我們結合MOOC視頻,編寫了與MOOC視頻配套的《Java程序設計》教材。在教材的建設過程中,我們側重Java基礎知識點的實際應用。為此,我們在教學過程中積累了部分貼近生活或來源于實際應用的小型編程案例;同時,與其他專業課相融合,積累了部分與其他專業課知識點相關的小型編程案例。通過兩類案例,一方面可以使學生在實現案例的過程中熟練Java的基礎知識點,另一方面也提高了學生靈活運用這些基礎知識點解決實際問題的能力。
4.3? ?基于PTA的題庫建設
為了提高學生的實踐動手能力,團隊在之前的教學實踐中引入了Online Judge平臺。然而,當前Online Judge平臺還主要是提供編程題,無法滿足平時作業、實驗、考試對多種類型練習題目的要求。為此,教學團隊引入了PTA平臺。該平臺可支持單選、多選、程序填空、函數題、編程題、主觀題等多種類型的題目,可以支撐數據結構、操作系統等計算機專業核心課程,以及C、C++、Java、Python等多種編程語言課程。同時,該平臺采用了SaaS模式[8],包括了全國500多所高校的3000多位老師出的題目,題庫十分豐富。基于PTA平臺,教學團隊構建了適合于本校學生教學實踐的題庫。此外,教學團隊也從lintcode、leetcode等平臺中引入了部分習題,豐富了基于PTA的題庫。
4.4? ?基于校企合作的企業級軟件開發案例庫建設
《Java程序設計》的一個主要課程目標是培養學生使用Java進行面向對象的應用軟件開發的能力,能夠為學生畢業后在企業中從事應用軟件的開發打下基礎。上述三類教學資源的建設主要是為了使學生打下面向對象程序設計的基礎,而學生能夠具備企業級軟件開發的初步能力,還需要有一定的企業級軟件開發案例的支撐。為了實現該目標,團隊通過校企合作的方式,由企業選擇部分應用軟件開發案例,通過企業工程師和團隊教師的合作,適當對案例進行裁剪,為學校的教學定制了部分適用于學生實習實訓的企業級軟件開發案例。在課程的實踐和實習環節,通過分組與小組合作的方式,從需求分析、系統分析與設計、編碼、測試的軟件開發全生命周期角度進行實訓,提高學生使用Java語言進行面向對象的應用軟件開發的能力。
5? ?教學資源應用效果(Application effect of teaching resources)
本團隊建設的上述四類《Java程序設計》的教學資源已經在團隊所在學校的軟件工程、計算機科學與技術、物聯網、信息安全等專業本科生的教學得以應用。通過上述教學資源的應用,學生的Java編程能力較以往有了較大提高。
首先,從教學的整體效果來看,學生整體上使用Java語言進行面向對象程序設計和應用軟件開發的能力有了較大提高。分析學生的就業數據可知,每年畢業生在JavaEE、Android等方向就業的學生數在不斷增加,就業的層次和質量也在不斷提高,而這些方向都是以上述JavaSE知識點為基礎的。
第二,從學生參加各類算法、軟件設計等競賽的成績來看,近幾年來,學生參加國家級、省級、市區級各類軟件和算法類大賽,如中國軟件杯、藍橋杯等競賽,參賽人數有了較大增加,獲獎的人數和層次也在逐年增加。在這些競賽的參賽過程中,越來越多的學生選擇使用Java相關技術進行算法及系統實現,也從側面說明了學生Java軟件開發實踐能力的水平有了較大提高。
6? ?結論(Conclusion)
Java是當前軟件開發領域最為熱門的編程語言之一,提高學生基于Java面向對象編程技術的軟件開發實踐能力,是《Java程序設計》課程教學最基本的目標。隨著MOOC、SPOC和OJ等在線平臺的廣泛應用,《Java程序設計》的教學資源的建設應該更加多樣化,通過多種類型的題目和案例豐富學生的實踐環節,切實提高學生的軟件開發實踐能力。同時,教學資源中的各種案例應該更加貼近實際應用,使學生能夠靈活運用所學知識點。
針對《Java程序設計》的教學資源建設,本文探索了“MOOC+案例驅動式教材+信息化輔助教學平臺+企業級案例庫”的教學資源建設模式,該模式對于計算機相關專業的其他專業課程的教學資源建設也具有借鑒意義。
參考文獻(References)
[1] Sawant A A,Robbes R,Bacchelli A.On the reaction to deprecation of clients of 4+1 popular Java APIs and the JDK[J]. Empirical Software Engineering,2017.
[2] Nate B.Nicolai Parlog on Java 9 Modules[J].IEEE Software, 2018,35(3):101-104.
[3] 丁振凡,范萍,喻佳,等. MOOC與課堂教學融合在Java教學中應用[J].實驗技術與管理,2016(9):147-150;154.
[4] 李勇軍,劉鳳華.面向不同層次需求的Java課程MOOC建設[J].計算機教育,2016(5):97-99.
[5] Wasik S,Antczak M,Badura,et al.A Survey on Online Judge Systems and Their Applications[J].ACM Computing Surveys, 2018,51(1):1-34.
[6] 王勇,方娟,毛國君.Java 語言程序設計實例教材建設[J].計算機教育,2008(21):135-136.
[7] 楊曉燕.基于應用的 Java 面向對象程序設計課程研究與教材建設[J].計算機教育,2012(3):42-45.
[8] Tsai W,Bai X,Huang Y.Software-as-a-service(SaaS): perspectives and challenges[J].Science China Information Sciences,2014,57(5):1-15.
作者簡介:
張? 峰(1981-),男,博士,講師.研究領域:軟件工程,教育數據挖掘.
劉? ?迪(1994-),男,碩士生.研究領域:教育數據挖掘.
仇麗青(1978-),女,博士,副教授.研究領域:社交網絡分析.
趙衛東(1967-),男,博士,教授.研究領域:軟件工程.