陳清雨
(廣州東華職業(yè)學(xué)院信息工程學(xué)院 廣東廣州 510540)
摘要:模塊化就是把人才培養(yǎng)方案,專業(yè),課程,課堂都看成模塊,世界萬(wàn)物都是模塊,學(xué)生也是模塊,大模塊分成小模塊,小模塊做好了,大模塊也就做好了,《Java 程序設(shè)計(jì)》是職業(yè)學(xué)院軟件技術(shù)專業(yè)必修課,學(xué)習(xí)目前世界上優(yōu)秀的編程語(yǔ)言, 對(duì)提高學(xué)生就業(yè)能力有重要意義。然而,由于 Java 語(yǔ)言具有較高的抽象性、復(fù)雜性和嚴(yán)謹(jǐn)性,學(xué)生普遍感到學(xué)習(xí)難度較大;加之受傳統(tǒng)教學(xué)模式的制約,學(xué)生往往感覺(jué)抽象、枯燥,學(xué)習(xí)興趣不高,接受程度有限。為改變這一現(xiàn)狀,我們將項(xiàng)目任務(wù)驅(qū)動(dòng)法引入教學(xué),對(duì)課程體系進(jìn)行優(yōu)化,對(duì)實(shí)訓(xùn)內(nèi)容進(jìn)行重新設(shè)計(jì),以此激發(fā)學(xué)生學(xué)習(xí)熱情、改善教學(xué)效果、提高教學(xué)效率,從而更好地滿足職業(yè)院校培養(yǎng)實(shí)用型技能人才的要求。
關(guān)鍵詞:Java程序設(shè)計(jì);項(xiàng)目任務(wù)驅(qū)動(dòng);項(xiàng)目實(shí)訓(xùn) 。
Java 語(yǔ)言作為一種純面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言, 是目前世界上優(yōu)秀的編程語(yǔ)言之一, Java平臺(tái)以其移動(dòng)性、安全性和開(kāi)放性受到歡迎,在企業(yè)中得到廣泛應(yīng)用,尤其是近年來(lái)基于 Android 系統(tǒng)的Java 手機(jī)軟件發(fā)展十分迅速,在形成一個(gè)新興產(chǎn)業(yè)。Java 程序員的就業(yè)前景廣闊,可以從事 Java 桌面軟件開(kāi)發(fā)、Java手機(jī)軟件開(kāi)發(fā)、Jsp網(wǎng)站開(kāi)發(fā)以及其他與 Java 語(yǔ)言編程相關(guān)的工作。 《Java 程序設(shè)計(jì)》作為我院軟件技術(shù)專業(yè)的專業(yè)必修課,力求使學(xué)生掌握 Java 面向?qū)ο蟪绦蛟O(shè)計(jì)能力,具備從事 Java 編程工作的基礎(chǔ),提高軟件技術(shù)專業(yè)學(xué)生的就業(yè)能力。 對(duì)《Java 程序設(shè)計(jì)》教學(xué)進(jìn)行深入改革、提高教學(xué)質(zhì)量,有利于抓住當(dāng)前 Java 技術(shù)廣泛應(yīng)用,社會(huì)對(duì) Java 程序設(shè)計(jì)人才需求量大的有利時(shí)機(jī),提高軟件技術(shù)專業(yè)學(xué)生的就業(yè)率,提升軟件技術(shù)專業(yè)的影響力。
一、《Java 程序設(shè)計(jì)》課程的教學(xué)現(xiàn)狀
(一)課程地位和特點(diǎn) 計(jì)算機(jī)軟件技術(shù)專業(yè)的培養(yǎng)目標(biāo)是:培養(yǎng)德、智、體全面發(fā)展的學(xué)生,能掌握計(jì)算機(jī)系統(tǒng)基礎(chǔ)知識(shí)和基本原理,熟悉計(jì)算機(jī)系統(tǒng)常用(軟硬件)工具,具有一定的硬件操作和較強(qiáng)的軟件開(kāi)發(fā)能力。學(xué)生畢業(yè)后,既有大專層次的理論知識(shí),又具有本專業(yè)較熟悉的實(shí)際操作技能適應(yīng)在企事業(yè)單位計(jì)算機(jī)應(yīng)用一線上直接參與管理或工作;適應(yīng)在計(jì)算機(jī)軟件企業(yè)從事專業(yè)的軟件開(kāi)發(fā)工作。 安排在第二學(xué)期,為培養(yǎng)學(xué)生“從 事軟件開(kāi)發(fā)工作”而開(kāi)設(shè)。教學(xué)目標(biāo)是讓學(xué)生掌握 Java 面向?qū)ο蟪绦蛟O(shè)計(jì)能力,具備從事 Java 編程工作的基礎(chǔ)。前導(dǎo)課程是《C語(yǔ)言程序設(shè)計(jì)》,掌握基本的編程能力基礎(chǔ);后續(xù)課程是《Java Web 開(kāi)發(fā)技術(shù)》,學(xué)習(xí)實(shí)用的編程技術(shù)。 《Java 程序設(shè)計(jì)》是一門(mén)典型的程序設(shè)計(jì)類課程,由于程序設(shè)計(jì)本身具有的抽象性、 Java語(yǔ)言的復(fù)雜性和嚴(yán)謹(jǐn)性及傳統(tǒng)教學(xué)模式的影響,學(xué)生普遍感到學(xué)習(xí)難度大,學(xué)習(xí)興趣不高, 接受程度有限。
(二)難點(diǎn)和不足 由于程序設(shè)計(jì)工作本身具有的抽象性,對(duì)學(xué)生的邏輯思維能力要求較高;而 Java 語(yǔ)言的復(fù)雜性和嚴(yán)謹(jǐn)性,又使學(xué)生普遍感到 Java 語(yǔ)言學(xué)習(xí)難度大;加之傳統(tǒng)教學(xué)采用的“先講解后演示再練習(xí)”的方法,往往讓學(xué)生感覺(jué)到過(guò)于枯燥和抽象;而當(dāng)前《Java 程序設(shè)計(jì)》的課程體系更使之難以適應(yīng)高職院校培養(yǎng)高技能人才的要求,其主要問(wèn)題有: 1. 課程體系設(shè)計(jì)不合理。當(dāng)前《Java 程序設(shè)計(jì)》的授課模式以理論講授和演示為主,理論內(nèi)容占主導(dǎo)地位,而實(shí)訓(xùn)環(huán)節(jié)處于從屬地位。 由于當(dāng)前的《Java 程序設(shè)計(jì)》高職課程體系很大程度上仍然是本科課程體系的簡(jiǎn)化版,是從本科課程體系中刪除較難理論內(nèi)容并增加實(shí)踐內(nèi)容而形成的,并沒(méi)有完全擺脫本科模式的影響。然而,高職教育的培養(yǎng)目標(biāo)是不同的。 高職教育更強(qiáng)調(diào)培養(yǎng)熟練的動(dòng)手實(shí)踐能力。因此,高職課程和本科課程在課程體系的設(shè)計(jì)應(yīng)該是完全不同的,不僅僅是理論與實(shí)踐的比例問(wèn)題,而應(yīng)該重新設(shè)計(jì)課程體系,使理論內(nèi)容為實(shí)踐內(nèi)容服務(wù),才能真正實(shí)現(xiàn)以培養(yǎng)動(dòng)手實(shí)踐能力為主導(dǎo)。 2. 實(shí)訓(xùn)內(nèi)容設(shè)計(jì)不合理。當(dāng)前《Java 程序設(shè)計(jì)》的實(shí)訓(xùn)內(nèi)容大多屬于驗(yàn)證性實(shí)訓(xùn),與真實(shí)開(kāi)發(fā)項(xiàng)目存在很大差距,學(xué)生難以適應(yīng)實(shí)戰(zhàn)項(xiàng)目實(shí)踐,對(duì)培養(yǎng)崗位職業(yè)能力的作用非常有限。課程現(xiàn)有實(shí)訓(xùn)內(nèi)容是根據(jù)理論內(nèi)容設(shè)計(jì)的,是為了驗(yàn)證理論內(nèi)容而實(shí)踐,從而導(dǎo)致實(shí)訓(xùn)內(nèi)容強(qiáng)調(diào)緊扣理論內(nèi)容,而忽略了真實(shí)的崗位情境,造成實(shí)訓(xùn)情境過(guò)分理想化。這樣即使學(xué)生能掌握一些實(shí)踐技能,但是這些技能在真實(shí)的崗位情境中卻難以應(yīng)用。因此,必須設(shè)計(jì)好實(shí)訓(xùn)內(nèi)容,突出 Java 語(yǔ)言的實(shí)用性、針對(duì)性,才能引導(dǎo)學(xué)生“在做中學(xué)”。 針對(duì)上述問(wèn)題,我們引入項(xiàng)目任務(wù)驅(qū)動(dòng)式教學(xué)法,對(duì)《Java 程序設(shè)計(jì)》課程教學(xué)進(jìn)行改革。
二、《Java 程序設(shè)計(jì)》課程的項(xiàng)目任務(wù)驅(qū)動(dòng)式教學(xué)改革
(一) 項(xiàng)目驅(qū)動(dòng)是一種教學(xué)理論基礎(chǔ)上的教學(xué)法
在教學(xué)過(guò)程中,把具體的、學(xué)生感興趣的、有意義的具體任務(wù)作為線索,將知識(shí)點(diǎn)巧妙地隱含在每個(gè)任務(wù)之中;學(xué)生在預(yù)定情境下,經(jīng)過(guò)思考并借助教師的引導(dǎo)解決問(wèn)題,通過(guò)自主建構(gòu)的方式獲得知識(shí)、 培養(yǎng)職業(yè)能力。 與傳統(tǒng)教學(xué) “教師講、學(xué)生聽(tīng)”,教師處于主動(dòng)傳輸知識(shí)的地位,學(xué)生處于被動(dòng)接受知識(shí)的 地位的模式相比,項(xiàng)目驅(qū)動(dòng)法強(qiáng)調(diào)的是 “以學(xué)生為主體、以教師為主導(dǎo)、以任務(wù)為主線”。在 任務(wù)驅(qū)動(dòng)法教學(xué)過(guò)程中,學(xué)生能充分發(fā)揮主觀能動(dòng)性,圍繞任務(wù)要求開(kāi)展實(shí)踐探索,教師不再是課堂的中心,單方面地向?qū)W生灌輸知識(shí),而是在學(xué)生完成任務(wù)的過(guò)程中起到組織、引導(dǎo)、督促、 協(xié)助、評(píng)價(jià)的作用。采用這種教學(xué)方法,可以解決傳統(tǒng)教學(xué)存在的無(wú)法充分調(diào)動(dòng)學(xué)生的積極性和創(chuàng)造性,項(xiàng)目驅(qū)動(dòng)式教學(xué)改革符合高職教育發(fā)展方向,符合國(guó)家教育部《關(guān)于全面提高高等職業(yè)教育教學(xué)質(zhì)量的若干意見(jiàn)》 提出的高職教育的教學(xué)過(guò)程要突出實(shí)踐性和職業(yè)性的要求。
(二)《Java 程序設(shè)計(jì)》課程的項(xiàng)目驅(qū)動(dòng)式教學(xué)
1. 概述
為了更好地實(shí)施教學(xué),切合高職教育人才培養(yǎng)的要求,培養(yǎng)適應(yīng)行業(yè)需求的程序設(shè)計(jì)人才, 我們?cè)凇禞ava 程序設(shè)計(jì)》課程中引入任務(wù)驅(qū)動(dòng)教學(xué)法,以行業(yè)流行的my Eclipse 作為開(kāi)發(fā)平臺(tái),對(duì) 《Java 程序設(shè)計(jì)》課程教學(xué)進(jìn)行改革。我們緊扣 教學(xué)大綱,重新梳理《Java 程序設(shè)計(jì)》課程的知識(shí)體系,設(shè)計(jì)一系列具有實(shí)用性和趣味性的任務(wù)案例,并將所有知識(shí)點(diǎn)融入到各項(xiàng)目案例中。建立一套任務(wù)驅(qū)動(dòng)式課程體系。我們以培養(yǎng)崗位職業(yè)能力為主線,用典型任務(wù)序化知識(shí),并將知識(shí)融入任務(wù)情景之中。按“教師提出任務(wù)->學(xué)生分析任務(wù)->學(xué)生解決任務(wù)->學(xué)生提交任務(wù)完成報(bào)告->學(xué)生相互評(píng)價(jià)->教師總結(jié)與評(píng)價(jià)”的結(jié)構(gòu)組 織每一個(gè)任務(wù)。任務(wù)驅(qū)動(dòng)的整個(gè)流程按照實(shí)際需要進(jìn)行安排,如果不能在一個(gè)教學(xué)時(shí)間單元中完成整個(gè)流程,則可以分段進(jìn)行,比如把學(xué)生解決任務(wù)這個(gè)模塊放到課余時(shí)間進(jìn)行,讓學(xué)生自主學(xué)習(xí)與挖掘新知識(shí),加深對(duì)知識(shí)的理解。
2. 課程體系的優(yōu)化設(shè)計(jì)
《Java 程序設(shè)計(jì)》課程的內(nèi)容由三大部分構(gòu) 成:Java 基本語(yǔ)法、Java 面向?qū)ο髾C(jī)制、應(yīng)用編程。其中 Java 面向?qū)ο髾C(jī)制部分具有較強(qiáng)的理論性和抽象性,應(yīng)用編程部分則更多偏向?qū)嵺`性。 由于該課程的知識(shí)點(diǎn)覆蓋面廣,內(nèi)容之間聯(lián)系緊密、互相滲透,我們根據(jù)教學(xué)目標(biāo)重新梳理知識(shí)點(diǎn)之間的聯(lián)系,按照任務(wù)驅(qū)動(dòng)的模式將知識(shí)體系劃分為 14 個(gè)模塊,每個(gè)模塊又包括三個(gè)小任務(wù)即啟發(fā)式模塊、知識(shí)點(diǎn)任務(wù)和實(shí)踐鞏固任務(wù),14 個(gè)大的模塊如下所示: (1)Java 開(kāi)發(fā)環(huán)境的搭建和使用。Java 特 點(diǎn);Java 實(shí)現(xiàn)機(jī)制;Java 的體系結(jié)構(gòu);集成環(huán)境 myEclipse 。 (2)Java 基本語(yǔ)法。Java 應(yīng)用程序結(jié)構(gòu); Java 程序編寫(xiě)及運(yùn)行過(guò)程。Java 語(yǔ)言標(biāo)識(shí)符和關(guān)鍵字;Java 語(yǔ)言數(shù)據(jù)類型;Java 語(yǔ)言運(yùn)算符與表 達(dá)式;分支控制結(jié)構(gòu);循環(huán)控制結(jié)構(gòu) (3)類和對(duì)象。類與對(duì)象概念與特征、屬性和方法;類與對(duì)象的關(guān)系;定義類的語(yǔ)法;創(chuàng) 建類的對(duì)象;使用對(duì)象的步驟;類的方法組成部 分;定義和使用類的方法。變量作用域;定義包和導(dǎo)入包的關(guān)鍵字;Javadoc 注釋。 (4)封裝和重載。封裝的作用;對(duì)屬性封裝;用構(gòu)造方法實(shí)現(xiàn)對(duì)象成員的初始化。方法重載;Java 中的構(gòu)造方法與實(shí)例方法區(qū)別;對(duì)構(gòu)造方法進(jìn)行重載。 (5)繼承和多態(tài)。繼承的概念;繼承關(guān)鍵 字;父類與子類之間的關(guān)系,super 關(guān)鍵字。多態(tài) 的概念;靜態(tài)多態(tài),動(dòng)態(tài)多態(tài);多態(tài)的實(shí)現(xiàn)。 終類和抽象類。 (6)接口。接口的概念,接口編程的實(shí) 現(xiàn); (7)數(shù)組。聲明和創(chuàng)建數(shù)組;數(shù)組的初始化;數(shù)組元素的使用。 (8)字符串。定義、初始化字符串;字符 串常見(jiàn)操作及方法;StringBuffer 類的定義和方 法。 (9)異常處理。異常的概念;異常處理結(jié) 構(gòu);拋出異常;聲明異常;自定義異常。 (10)GUI 編程。Java GUI 界面的基本原 理;常用的 AWT 和 Swing 組件;布局管理器;菜 單;Java 事件組成;委托事件處理機(jī)制;常用事件類; (11)數(shù)據(jù)庫(kù)編程。JDBC 的概念;JDBC 框 架結(jié)構(gòu);JDBC 驅(qū)動(dòng)程序 JDBC 驅(qū)動(dòng)程序編程的基本步驟。 (12)文件 I/O 編程。Java 的文件管理; Java 目錄管理;文件的創(chuàng)建;文件類的方法;順序文本文件;流的操作步驟;隨機(jī)文本文件;文件的追加。 (13)多線程編程。Thread 類;Calendar 類;SimpleDateFormat 類;線程的狀態(tài);線程的優(yōu)先級(jí);線程的通信。 (14)網(wǎng)絡(luò)編程。TCP/IP 協(xié)議;Socket 類; ServerSocket 類;UDP 協(xié)議;發(fā)送數(shù)據(jù)包;接收數(shù)據(jù)包。 本文提出的課程體系將教學(xué)重點(diǎn)放在實(shí)踐 較強(qiáng)的應(yīng)用編程部分,涵蓋了GUI 編程、數(shù)據(jù)庫(kù)編程、文件 I/O 編程、多線程編程、網(wǎng)絡(luò)編程等 技術(shù),而對(duì)理論性、抽象性較強(qiáng)的 Java 面向?qū)ο髾C(jī)制,不再深入分析其內(nèi)在機(jī)理,只要求學(xué)生掌握基本的概念、原理和語(yǔ)法,為后面的應(yīng)用編程提供基礎(chǔ)。
3. 實(shí)訓(xùn)內(nèi)容的優(yōu)化設(shè)計(jì)
Java 程序設(shè)計(jì)具有很強(qiáng)的實(shí)踐性,但其理論知識(shí)卻很抽象,學(xué)生僅理解理論知識(shí)點(diǎn)是遠(yuǎn)遠(yuǎn)不 夠的。傳統(tǒng)的“先講解理論知識(shí)點(diǎn),再展示演示案例幫助學(xué)生理解,后再進(jìn)行實(shí)踐練習(xí)”的做法是以教師為主導(dǎo),學(xué)生被動(dòng)學(xué)習(xí)的灌輸式教學(xué)法,這樣導(dǎo)致學(xué)生學(xué)習(xí)興趣不高、接受程度有限,導(dǎo)致演示案例和實(shí)踐練習(xí)的效果大打折扣。 對(duì)此我們重新設(shè)計(jì)教學(xué)流程,摒棄這種以教師為主導(dǎo)的做法,突出學(xué)生在學(xué)習(xí)中的中心地位。首先在每個(gè)單元中精心設(shè)計(jì)一個(gè)有趣、具有啟發(fā)性的演示案例,先讓學(xué)生看到程序運(yùn)行效果,激發(fā)其學(xué)習(xí)興趣和積極性;然后從案例中引出該知識(shí)點(diǎn)的任務(wù),讓學(xué)生分組討論該任務(wù),分析該任 如何完成;接著限定任務(wù)的完成時(shí)間,讓學(xué)生在該時(shí)間內(nèi)完成任務(wù)并提交任務(wù)完成報(bào)告,在任務(wù)完成后學(xué)生們要進(jìn)行小組互評(píng);后教師再根據(jù)學(xué)生完成任 務(wù)的情況進(jìn)行總結(jié)和評(píng)價(jià),包括對(duì)學(xué)生任務(wù)完成 程度的評(píng)價(jià),對(duì)任務(wù)背后的知識(shí)點(diǎn)的解釋,對(duì)學(xué)生還沒(méi)熟悉的重難點(diǎn)進(jìn)行總結(jié)。至此,學(xué)生通過(guò)完成任務(wù),不但對(duì)相關(guān)知識(shí)點(diǎn)有了一定感性認(rèn)識(shí),而且通過(guò)任務(wù)評(píng)價(jià)和總結(jié),能夠更好地理解和消化理論,提升為自己的理性認(rèn)識(shí);后根據(jù)需要再設(shè)計(jì) 1-2 個(gè)案例作為實(shí)訓(xùn)練習(xí),由淺入深、由簡(jiǎn)單到復(fù)雜地鞏固知識(shí)點(diǎn)和技能。很明顯,這是一種 “從實(shí)踐到理論,再?gòu)睦碚摰綄?shí)踐”的做法,符合人類認(rèn)識(shí)客觀世界的規(guī)律。由于該任務(wù)貼近學(xué)生學(xué)習(xí)的真實(shí)情境,學(xué)生感到親切、容易理解其次,由啟發(fā)式案例提出本節(jié)要完成的任務(wù)。這里任務(wù)比啟發(fā)式案例要求稍高,有利于在學(xué)生現(xiàn)有的基礎(chǔ)上挖掘自己的潛力,更深的理解知識(shí)。學(xué)生在接到任務(wù)后當(dāng)堂討論并分工,這樣有利于培養(yǎng)他們的團(tuán)隊(duì)合作精神,學(xué)生完成任務(wù)的過(guò)程可以放在課后進(jìn)行。在任務(wù)完成后需保留源代碼,對(duì)程序運(yùn)行結(jié)果保留截圖并用 ppt 演示任務(wù)完成流程和填寫(xiě)任務(wù)完成情況表;回到課堂上后學(xué)生將任務(wù)結(jié)果進(jìn)行展示并對(duì)其他小組評(píng)分,教師進(jìn)行評(píng)價(jià)并補(bǔ)充講解重難點(diǎn),包括程序結(jié)構(gòu)、定義變量、數(shù)據(jù)類型、運(yùn)算符和表達(dá) 式、分支控制結(jié)構(gòu)、循環(huán)控制結(jié)構(gòu)等。教師對(duì)知識(shí)點(diǎn)和關(guān)鍵技術(shù)步驟進(jìn)行總結(jié),對(duì)實(shí)踐練習(xí)中出 現(xiàn)的問(wèn)題進(jìn)行分析,可以幫助學(xué)生構(gòu)建一個(gè) 晰、完整的知識(shí)結(jié)構(gòu)后,進(jìn)行實(shí)踐鞏固練習(xí)。,以任務(wù)為驅(qū)動(dòng),教師只是起到引導(dǎo)的作 用,這樣學(xué)生掌握的知識(shí)才是真正屬于自己的知識(shí)。
三、結(jié)語(yǔ)
如上所述,項(xiàng)目任務(wù)驅(qū)動(dòng)式教學(xué)的關(guān)鍵是合理設(shè)計(jì)項(xiàng)目任務(wù),將知識(shí)點(diǎn)巧妙地隱藏到任務(wù)中,讓任務(wù)本身具有趣味性并盡可能地貼近真實(shí)情境,使學(xué)生在完成任務(wù)的過(guò)程中不僅獲取相關(guān)知識(shí),而且發(fā)展實(shí)踐能力。理論知識(shí)點(diǎn)不再是案例的主導(dǎo), 而是作為演示案例的抽象推廣。實(shí)踐證明,對(duì)于《Java 程序設(shè)計(jì)》這門(mén)理論性和實(shí)踐性都很強(qiáng)的課程,通過(guò)引入項(xiàng)目任務(wù)驅(qū)動(dòng)教學(xué)法,進(jìn)行項(xiàng)目實(shí)訓(xùn),使理論和實(shí)踐互相滲透,確實(shí)能夠,激發(fā)學(xué)生的學(xué)習(xí)熱情,改善教學(xué)效果,提高學(xué)生的動(dòng)手實(shí)踐能力,能更好地滿足高職院校培養(yǎng)實(shí)用型技能人才的要求。
參考文獻(xiàn):
《瘋狂JAVA講義》 電子工業(yè)出版社,李剛編著。
《JAVA開(kāi)發(fā)實(shí)戰(zhàn)經(jīng)典》清華大學(xué)出版社,李興華編著。