迪麗努爾·克依木
(新疆師范大學,新疆烏魯木齊 83005)
Java已經(jīng)成為全球最受歡迎的一種編程語言。由于其通用性表現(xiàn)優(yōu)異,并且?guī)в懈咝浴踩?、健壯性、平臺移植性、多線程、分布式以及面向對象等特點,所以在個人PC、游戲控制臺、數(shù)據(jù)中心、移動電話和互聯(lián)網(wǎng)中被普遍運用,并且掌握的開發(fā)者專業(yè)社群在全球規(guī)模最大。在全球的商務應用技術、企業(yè)級應用程序、電子消費產(chǎn)品和嵌入式設備都發(fā)揮著重要作用,Java程序設計語言也因此成為軟件開發(fā)領域中主流軟件開發(fā)平臺[2]。信息技術發(fā)展勢頭十分強勁,例如云計算以及大數(shù)據(jù)等,所以許多行業(yè)借助大數(shù)據(jù)和云計算并發(fā)現(xiàn)其中大數(shù)據(jù)開發(fā)的潛在優(yōu)勢。大數(shù)據(jù)分析、挖掘以及運用等需求不斷遞增,在人才市場中,大數(shù)據(jù)技術方面占據(jù)優(yōu)勢的高校畢業(yè)生較少,當前大數(shù)據(jù)領域的崗位主要集中在開發(fā)、分析、運維三大領域,其中大數(shù)據(jù)開發(fā)對于Java程序設計語言的依賴程度相對比較高,最重要的是,目前最主流并成熟的大數(shù)據(jù)處理框架Hadoop(能夠對大量數(shù)據(jù)進行分布式處理的框架)本身就是用Java語言開發(fā)的系統(tǒng)。因此學習Hadoop的一個首要條件就是必須掌握一定的Java編程基礎。各類高校為了順應市場的人才需求,圍繞著Java語言程序設計系列知識,特地開設一系列的后續(xù)課程為此服務。包括Java Web程序設計、Android程序設計、JSP網(wǎng)站開發(fā)等。鑒于此,針對大數(shù)據(jù)、通信技術、計算機科學相關課程體系建設與改革的研究顯得尤為重要。
現(xiàn)如今Java課程教學存在一定的缺陷,在這一背景下,運用建構主義學習理論發(fā)揮其在課堂教學中的實踐意義。重視學生學習的主動建構性、社會互動性和情境模擬性,幫助學生深化基礎理論知識,避免基礎理論知識講授時的消極怠慢情緒[3],并通過類型不同的實踐項目幫助學生實現(xiàn)理論與實踐的緊密結合,培養(yǎng)學生發(fā)現(xiàn)問題并動手解決問題的能力,以促進學生更好地學習Java程序設計的教學內(nèi)容,從而促進學生的有效學習。
《Java程序設計》課程多以Java SE平臺作為主要教學內(nèi)容,包括基本的Java語法、Java面向對象編程方法、異常處理、Java界面及事件編程、Java多線程、Java I/O流、Java數(shù)據(jù)庫連接、基于Socket的網(wǎng)絡編程等內(nèi)容,這些內(nèi)容都是Java的核心基礎知識,但在實際應用上這些內(nèi)容尚不能適應社會的各種需求。課堂上,教師只按照教材和教學大綱指定的內(nèi)容進行授課,教學內(nèi)容陳舊,很少引入項目應用案例,因總學時的限制,課堂上很少講解課外知識。由于計算機學科是發(fā)展很快的學科,新舊技術更新周期較短,而Java語言為和應用領域的發(fā)展相互適應,研發(fā)了新的技術標準,舊知識逐漸退出應用市場[4]。學生難以跟上軟件技術的最新發(fā)展與進步速度,如:Applet、AWT等還作為教學內(nèi)容和教學重點,而在實際開發(fā)中常被使用的集合、反射、注解等卻被忽略或講解不夠深入,導致學生學習得不扎實、不夠深入、不能學以致用。
現(xiàn)有授課方式更加注重理解基礎知識點和掌握基本編程語言。為實現(xiàn)這一目標,專業(yè)課老師會花費大量時間講授基礎編程知識,并且由于課時緊張,經(jīng)常忽略《Java課程設計》中的拓展內(nèi)容,例如JavaSwing、多線程和網(wǎng)絡編程的知識點。有限的學習時間導致Java基礎課程授課進度較快、每一課時內(nèi)容較為緊湊、課堂缺乏真實的個案探討。由于難以應用于實踐。導致降低了學生對本課程的學習興趣,最終出現(xiàn)Java課程教學質(zhì)量大幅降低的現(xiàn)象。此外,由于學生缺乏對課本新知識的預習習慣,導致專業(yè)課老師在進行理論知識授課時形成了老師講、學生聽的課堂教學模式,學生知識框架準備不足,教學課堂變得枯燥無味。此次課程改革著眼于這一問題,從豐富Java課程教學內(nèi)容的角度出發(fā),改變原有的授課方式深化學生建構新知識的能力,促進學生產(chǎn)生橫向思維,聯(lián)系各學科知識以幫助學生獲得更多知識。
課堂上的實踐操作環(huán)節(jié)較少,實踐效果不夠理想。實踐課程主要是根據(jù)教學大綱開展,簡單的模擬實驗不能夠滿足學生通過學習該課程適應畢業(yè)后的發(fā)展需求。簡單模擬實驗主要是開展驗證性實驗,沒有注重培養(yǎng)學生獨立分析并解決問題的能力,學生因此缺乏創(chuàng)造力實踐操作以及專業(yè)性實踐操作能力。Java程序設計課程相對困難,知識點豐富,前后關聯(lián)復雜[5]。
此外,由于部分學生對程序設計類課程缺乏興趣,基礎知識薄弱,導致學生基礎水平參差不齊,有些同學雖然聽得懂理論部分,但寫不出實際的程序代碼,不能夠完成老師布置的上機作業(yè),還有一部分學生對于本課程具有濃厚的興趣,自學過一些最新的技術知識,前期學習基礎也很扎實,在這種情況下如果老師采用統(tǒng)一的授課內(nèi)容和授課方式,會出現(xiàn)部分學生知識吃不透、消化不良,另一部分學生出現(xiàn)吃不飽的現(xiàn)象。因此,Java課程需要開展分層次的教學模式。
現(xiàn)階段的Java課程教學中很多教師重理論輕實踐,整個課堂上的教學內(nèi)容、教學資源都是由老師安排,學生作為知識的傾聽者,老師作為傳統(tǒng)的講解者,將理論知識灌輸給學生,教師和學生之間缺少互動,難以調(diào)動學生的學習興趣,忽視了學生的自主性,缺少團隊合作以及探討。
Java課程傳統(tǒng)的考核方式主要采用閉卷筆答的方式,人為將編程語言設計課程轉變?yōu)槲淖钟洃浶哉n程,忽略了編程思維能力的培育,不利于培育專業(yè)人才。評價指標主要參照的是考試結果,忽略了過程性評價,很難全方位合理地對教學成效組織評估[2]。
根據(jù)用人單位需求,學校應靈活調(diào)整Java課程體系結構和教學內(nèi)容。增加總學時的同時,課程內(nèi)容需要分為初級和高級兩部分,初級部分要注重Java基本知識的掌握和修煉,高級部分主要是集合、反射、注解、泛型、多線程、Socket和JDBC等編程技術的教學。此外,高級部分還應包括大數(shù)據(jù)對數(shù)據(jù)的處理模式及典型框架部分。因此,課程體系和教學內(nèi)容要相結合,教學方式需要具有針對性、合理性,要能夠經(jīng)得起用人單位的需求考驗。
從創(chuàng)新教學內(nèi)容的角度出發(fā),變革教學方式也是教學過程中的關鍵構成部分。在Java課程的教學中,科學地利用項目驅動式教學法,借助完備的項目或幾個獨立的項目覆蓋教學的各個環(huán)節(jié),注重工作過程,利用軟件工程方法向學生展示教學內(nèi)容,獲取的教學成效更為顯著。在此種教學模式中所用到的教學案例來自真實的項目,并且教學項目需要具備較廣的覆蓋面[6]。Java知識點主要有類加載原理及類加載器、數(shù)組、靜態(tài)變量、繼承和多態(tài)、封裝、接口、集合、反射機制、事件處理機制、棧、堆、I/O流、多線程、垃圾回收算法等。因此在增添教學實踐項目過程中,需要結合相關專業(yè)知識點,讓學生學以致用。同時,授課前老師需要提前準備與本專業(yè)相關的、學生較熟悉的、功能較完整的業(yè)務項目,準備邏輯簡單、涵蓋本章節(jié)重要知識點且可體現(xiàn)計算思維的幾個小型項目(比如學生管理系統(tǒng)、教學管理系統(tǒng)),然后把這些項目細化成幾個任務。對項目構建“需求分析-概要設計-詳細設計-代碼實現(xiàn)”學習模式,各個環(huán)節(jié)都需要指明相應的要求,促使學生能夠有效地認識系統(tǒng)的整體設計。此外,要求學生課外多學習“Java案例教程”“Java項目開發(fā)教程”以及“Java畢業(yè)設計教程”等應用性較強的書籍。
學生實施教學項目主要通過團隊合作來實現(xiàn)。項目實施前通過項目設計有效幫助每位團隊成員明確自身在團隊中的分工以及相互合作的形式,結合明確的工作流程以及環(huán)節(jié)等完成項目任務。項目完成以后,團隊成員可以自查,也可以互查對項目的進度組織評判。教師在這一過程中要了解學生能力,加以引導,促使學生能夠自主實踐、探索。
Java程序設計一般是從大二開始學習,在此之前經(jīng)過大一學習的C語言已經(jīng)掌握了初步的編程能力。在Java程序設計教學過程中,添加實踐項目可以幫助學生提高實際操作能力,促進學生更好地學習。
(1)豐富課堂內(nèi)容
在開設Java課程前期,學生通過學習C語言已經(jīng)掌握程序設計的基本思想。鑒于此,教師在講授Java課程時應該避免以自身為主的滿堂灌教學模式,應該把計算思維作為引導,梳理理論內(nèi)容的重點與易錯點,結合項目實踐的深入驅動模式教學,逐漸幫助學生搭建Java程序設計課程的知識框架[6],提升學生知識分類能力以及學習效率。
在課程重點知識點梳理時,課前,教師要布置一些預習任務,并按照預習內(nèi)容鼓勵學生編寫一些簡單的程序。課堂上教師可以故意編寫錯誤代碼,要求學生找出問題所在并要求糾正方法以提高學生的解決問題能力。此外,教師應采用啟發(fā)式教學方法,讓學生協(xié)作分析問題及錯誤出現(xiàn)原因,尋找解決問題的合適方法。教師為給予學生足夠的自主學習和思維發(fā)展空間,可以在項目驅動深入研究時,幫助學生掌握Java的設計模式,并積極引入結合相關理論知識的實踐項目,啟發(fā)學生運用已知知識點對現(xiàn)有項目進行邏輯功能的細化和問題分解。
(2)添加實踐項目
《Java程序設計》課程可以幫助學生較為系統(tǒng)地掌握Java語言的基本理論知識。這期間需要通過結合基礎性的實踐項目幫助學生深化理論知識,并鍛煉學生基礎的實際操作能力。同時添加基礎性實踐項目,避免學生因學習《Java程序設計》理論知識而產(chǎn)生枯燥、厭倦情緒和懈怠心理。將基礎性實踐項目和初級階段的理論知識相結合,打破傳統(tǒng)教學模式,能夠激發(fā)學生的學習興趣以及提高學生的動手能力。但是在選擇基礎實踐項目的同時,需要將基礎項目實踐同Java程序設計初級階段理論知識的重點、難點、關鍵點等密切聯(lián)系,例如,如表1所示,“高校閑置物品交易平臺”這一基礎實踐項目事例,將Java課程的有關知識點和實際應用場景密切關聯(lián)起來,協(xié)助學生認識并了解軟件開發(fā)設計中包含的理論,刺激學生自主參與教學活動,幫助重構理論知識框架。
表1 高校閑置物品交易平臺
授課模式不能局限于原來的播放演示PPT和講授理論知識,而是根據(jù)學生能力結構和課程進度的不同,選擇真實且合理的實踐項目進行舉例分析。教師在授課前,需要先系統(tǒng)詳細地對所舉實踐項目進行分析,找出和課本中對應的知識點,并結合軟件工程的設計原則,具體研究個案,分析個案的最終目標,并根據(jù)要求設計算法并逐步編寫程序。課程改革的授課模式需要學生和老師的同時配合。
(3)構建網(wǎng)上學習資源、全面考核評價體系
教師可以開展內(nèi)容精湛、即學即用的微課教學來彌補Java課程實踐學習時不足的問題。教師結合課程需要,整理教材內(nèi)容,制作微課并上傳到網(wǎng)絡平臺上。學生根據(jù)自己不擅長的領域選擇要學習的微課內(nèi)容,自主提高自己的技術水平,微課教學能夠實現(xiàn)教學創(chuàng)新,深受學生的喜愛。
創(chuàng)新考核標準,了解學生真實水平?;陧椖框寗幽J降腏ava程序設計改革后的課程內(nèi)容以及實踐項目不再是通過專業(yè)課老師單一授課以及簡單模擬來實現(xiàn)。還需要通過真正的實踐項目來完成。教師需要創(chuàng)新考核評比標準,結合學生對個案的思考分析能力、是否具備初步的編程能力以及實踐項目完成的創(chuàng)新性、實用性、專業(yè)性進行考核和評比。用以體現(xiàn)不同學生個體的Java課程知識掌握的真實水平。
本文就現(xiàn)階段高校Java程序設計的教學現(xiàn)狀,提出基于項目驅動式教學改革與實踐,分別從課程內(nèi)容、授課模式以及課程考核標準出發(fā)進行改革實踐,通過豐富課程內(nèi)容,幫助學生能最大化地深化建構Java課程理論知識、添加實踐項目提高學生實際操作,通過創(chuàng)新考核方式有效開發(fā)學生創(chuàng)新力。通過以上途徑可以有效幫助學生顯著提高自身競爭力。