摘要:針對目前本科的Java語言課程實踐教學中存在的不足,提出改革實踐教學的內容、開放式實驗室建設、考核制度的轉變等措施。同時還闡述了課程組教師自主研發的Java語言上機實驗平臺,它在改善Java語言的實踐教學,激發學生學習興趣,適應創新人才培養需要等方面發揮了良好作用。
關鍵詞:Java語言;實踐教學;激發教育;開放式實驗室
Java語言課程是計算機科學與技術專業必修的一門專業課,我們的教學目標是培養學生的軟件開發能力,教學思路是由淺入深、理論與實踐相結合,激發學生的學習興趣,培養學生的分析能力、實際動手能力、創新能力和社會競爭力。Java語言的教學不同于數學和自然科學學科,它更強調動手和實踐,更強調解決工程問題,實踐課程應突出基本技能和動手能力的訓練、團隊合作能力訓練。因此,改革Java語言的實踐教學勢在必行。
1改革實踐教學內容
實踐教學是Java語言課程必不可少的環節,是培養學生上機動手操作能力、知識綜合運用能力的必需環節。實踐教學的質量直接影響學生的工程實踐能力和就業機會,有足夠理由讓教師精心設計實踐教學的內容,改進實踐教學。我校從2002年開始,在本科教學中開設Java語言課程,多年來一直在探索實踐教學改革,并取得了一些成果,我們主要從以下幾個方面進行實踐教學內容改革。
1.1調整理論教學內容
Java語言課程[1]一般包括Java程序設計語言基礎、Java高級程序設計兩個部分。該課程的重點是Java語言的面向對象中語言基礎、類與對象、繼承與多態、多線程、文件、數據庫編程,課程的難點在于線程程序設計、數據庫訪問程序設計和網絡編程。在教學過程中,先導課“C++程序設計”中基本語法結構、面向對象的一般概念和原理與本課程的學習進行對比,加深教學效果,節省學時,主要以案例的方式進行教學。通過與C++課程的對比,來展示Java語言的特性和基本語法格式,使學生體會到學習Java語言的必要性,激發學習興趣。對于Java語言中的GUI圖像用戶界面部分的知識以項目教學方式進行,不作為教學的主要內容,因為實際開發中,多數編寫的是基于B/S結構的Web應用程序。
Java語言課程學時調整前后如表1所示,在總學時不變的情況下,適當增加實驗課時。同時理論教師在程序代碼講授方式上,有三種方式:幻燈片講解、課堂上打開開發工具一邊編寫代碼一邊講解、將編好的代碼導入開發工具講解。這三種方式有各自的優缺點,在教學中為了激發學生的興趣,盡量將要解決的問題現場編寫代碼,讓學生體會理論的實現過程;如果處理的問題較復雜,教師在課前用幾個小時編寫好代碼,課堂上邊講解邊演示運行過程,將關鍵的知識點總結,盡量用實例解決實際問題。
1.2構建實踐教學體系
Java語言教學實踐必須形成體系[2],學生能力的培養是漸進的。從2006年開始,我們對培養應用型本科計算機專業人才培養方案進行了調整,以Java語言為例,對實踐教學體系進行改革,其中實踐教學內容是構建實踐教學體系的一個方面,實驗題目的選擇非常關鍵,我們選擇具有實際意義的題目,而不是簡單的輸入輸出處理,從工程的角度,讓學生解決實際的問題,題目主要來源于教師的科研項目。實驗教學內容如表2所示。
近年來,實踐教學體系的構建也日漸成熟,我們結合學校的實際情況結合區域經濟和發展前景,以及社會對計算機人才的需求,以培養學生的“創新能力”、“實踐動手能力”、“團隊合作能力”為出發點,將實驗課程分為三個階段:驗證性實驗階段、設計性實驗階段和綜合性實驗階段,使三者相互聯系、緊密結合,在安排上由淺入深,逐步與實際應用接軌[3],如圖1所示。我們從2007年開始,為學生提供更好的實驗環境,學院開始進行開放式實驗室建設,使學生有更多的動手機會,激發其強烈的求知欲,給學生足夠的探索空間和創造能力。
1) 驗證性實驗。
驗證性實驗是教師編寫實驗指導書,按照應學習的知識點,有步驟的實驗,學生負責驗證實驗結果或者填寫簡單的語句將程序調試通過。例如,學會安裝使用JDK環境和MyEclipse開發環境、編寫簡單類及對象、IP地址的讀取與轉換、文件的讀寫操作等,通過此階段的實驗,讓學生了解基本的原理、概念、知識點,培養學生的基本實驗能力,以強化基本知識。Java語言課程的實驗課24學時,驗證性實驗占用4~6學時為宜,如果時間不夠,讓學生在課外實驗中完成。
2) 設計性實驗。
設計性實驗是由教師給定項目的題目和需求,學生根據學習的理論知識來設計算法、編寫代碼、測試、編寫實驗報告的過程。學生對項目的需求進一步分析,建立需求模型,編寫算法,最后編寫Java程序實現,培養學生的動手能力,知識的綜合能力,嚴謹的治學作風。在整個實驗過程中分組進行,學生以每組5~6人,分模塊完成,培養學生的團隊合作精神。另外,我校每年組織學生除參加ACM大賽外,還可以讓學生以團隊合作的方式積極參加每年一次的學校組織的“大學生挑戰杯程序設計大賽”及全國的“大學生挑戰杯”課外學術科技作品競賽等。在學時安排方面,設計性實驗10學時,要求教師給出用到的理論及技術難點的解決方案。
3) 綜合性實驗。
綜合性試驗是教師給定項目的可選題目,這些題目主要來源于教師的科研項目和前沿的領域技術,解決目前急需解決的問題,并且以Java語言為開發語言,綜合運用與本課程相關的課程知識,比如:數據結構、數據庫原理、算法設計與分析、軟件工程及人工智能等相關學科的知識,來解決問題。培養學生的軟件工程能力,獨立進行需求獲取、需求分析、規格說明、編寫代碼及測試,并編寫相應的文檔。通過綜合性試驗再結合我校的開放式實驗室題目,讓學生體會到軟件公司中開發項目的流程,這對教師的要求較高,較難的模塊要給學生攻關性的指導,幫助學生進行需求的可行性分析等。綜合性試驗10學時,再根據項目的規模增加學時,也可以結合后續的課程設計,完成最終的成果。
4) 課程設計。
本課程的課程設計為2周,教師針對性的選取5~8個項目,以分組的方式,獨立完成。在綜合性實驗階段的大型項目可以在課程設計階段繼續完成,并結合開放式實驗室開發項目,在教師的指導下,學生以團隊的方式獨立完成整個項目的需求分析、系統設計、詳細設計、編碼、測試、編寫文檔的過程,即按軟件工程的要求,完成課程設計的目的。最后,一天各組演示開發的系統并制作答辯短片或幻燈片,根據打分情況排名。
1.3建立項目案例庫
國內很多教師在計算機專業課程的教學中提出“案例教學和項目教學”,關于案例庫的建立常被忽略,如何建立案例庫這一教學中非常重要的資源,我們將Roger Schank提出“基于案例推理技術(CBR技術)”應用在教學中。在實踐教學中,我們開發的項目案例庫軟件系統,本系統的主要功能是將Java語言課程實踐中的項目存儲在案例庫中,定期對案例庫維護包括修改項目案例、增加新的案例、刪除陳舊的案例。將公司中的真實項目有選擇地存入案例庫,學生開發的案例、教師的科研項目等都存入案例庫,以此來豐富教學資源,這非常有助于實踐教學,實踐證明,案例庫的開發提高了實踐教學的質量和效率。
2開放式實驗室建設
隨著國家對高等教育投入的增加,我校結合自身的情況,加大對計算機專業設備的投入力度,從2007年開始,信息技術學院新增了網絡實驗室、程序設計基礎實驗室、硬件實驗室,學院為了提高學生的動手能力,相繼開放了上述的實驗室,各門課程的教師根據課程需要向院里提出申請,統一安排實驗室的開放計劃。Java課程組的教師根據實踐課程的情況,成功的編寫了一套實驗室開放計劃并得到院里的認可,我們主要從實驗室開放管理模式、開放式實驗題目的選擇、對教師的要求幾個方面深入研究,提出合理的實踐教學方案,并取得較好的效果。
2.1開放實驗室管理模式
針對實踐教學的具體情況,開放式實驗室的管理模式采用半開放或全開放實驗教學形式的多元化管理。對于驗證性試驗采用規定開放時間,設計性實驗和綜合性試驗采用全開放式實驗時間,有組織、有計劃的讓學生獨立、自主、團隊的方式進行實驗,課程組教師輪流值班的形式,跟蹤實驗的全程,而不是學生放任自流,是讓學生在相對寬松的環境下工作,激發學生自主學習的能力,培養創造能力、團隊合作能力和創新能力。
2.2開放式實驗題目設計
開放式實驗題目的選擇是多元的,我院規定每學期帶課程設計的教師必須給出5~10個實踐教學題目,結合教師的科研和案例庫中的題目,在Java語言實踐教學中,將多方面來源的題目作為學生的開放式實驗題目,學生可以自由組合、自由選題,當然主講教師還要最終把關,如題目的重復率、難度、分組的合理性等方面做細微的調整。
我校作為農業院校,交叉學科的體現更加明顯,農業專家系統的開發應用到農學等其他專業,這也為計算機專業學生提供更多的機會幫助其他專業開發應用軟件,并且跨專業的學生團隊合作也非常多,學生的專業能力明顯提高。
2.3實驗平臺的開發
作為Java語言課程教師,深深體會到學生軟件開發能力的培養的重要性,為此,開發了“基于B/S結構的Java語言上機實驗平臺”的功能圖,如圖2所示。本課程實踐教學平臺的搭建可以輔助教學,為實驗室運行服務提供高效、嚴格的管理,還可以全面提升實驗室教學功能和開發程度,為其他課程的實驗教學提供參考。
3改革考核制度
Java語言是實踐性很強的課程,原來的考核方式為:課程成績=理論考試(占總分70%)+實驗成績(占總分30%)。
其中,實驗成績包括平時出勤10%、實驗完成質量10%、課堂表現5%和課后作業5%。很明顯,重理論輕實踐,這使學生對實踐環節不夠重視,因此應加大實踐考核的比重,激勵學生的學習熱情,培養學生的動手能力。對課程成績評定如下方式:
課程成績=理論考試(占總分40%)+平時實驗成績 (占總分30%)+上機考試(占總分30%)。
其中,平時實驗成績包括驗證性實驗5%、設計性實驗10%和綜合性實驗成績15%;上機考試要求時間為2小時,獨立完成教師給定的題目,根據學生的算法設計的科學性、創新性、代碼的質量、測試數據的驗證、軟件文檔編寫等方面綜合給出評價。
改革后的考核方式更強調實踐的重要性,采用以實踐為導向的考核方式[4],激發學生的學習興趣,培養其動手能力,對本課程的學習重點更加突出。
4結語
在Java語言的教學中,我們雖然取得初步的成果,但還要不斷地實踐,探索建設產學研相結合的教學模式,激發學生的學習興趣,考慮Java課程群的建設,以適應IT企業對Java工程師的要求。教師還要在教學中積極思考與探索,使教學與科研相結合,深入企業,了解計算機學科的前沿領域。
參考文獻:
[1]