熊威
湖北科技職業(yè)學(xué)院 武漢 430079
關(guān)鍵字 高職院校;項目驅(qū)動教學(xué)法;Java;編程
Java 語言作為一種面向?qū)ο蟮挠嬎銠C編程語言,因其簡單易用、跨平臺、安全可靠等特點,自問世以來廣受推崇,在TIOBE(The Importance Of Being Earnest)組織發(fā)布的編程語言排行榜中,一直牢牢占據(jù)前三的位置。在互聯(lián)網(wǎng)技術(shù)高速發(fā)展的今天,Java 語言的應(yīng)用十分廣泛,從大型的企業(yè)級開發(fā)到小型的移動設(shè)備應(yīng)用開發(fā),隨處可見Java 語言的身影,各行各業(yè)對Java 語言的專業(yè)人才需求量正逐年遞增。因上述特點,Java 語言一直是各大高校計算機相關(guān)專業(yè)的必修課程。
Java 編程基礎(chǔ)課程符合高職院校培養(yǎng)高素質(zhì)的實用型人才理念,在高職院校備受關(guān)注,是眾多計算機相關(guān)專業(yè)的專業(yè)核心課程。由于高職學(xué)生基礎(chǔ)知識薄弱、學(xué)習(xí)主動性差,高職院校需要采取有針對性的教學(xué)模式和方法。但是當(dāng)前許多院校的Java教學(xué)體系都存在不完善之處,教師在課程設(shè)計、教學(xué)內(nèi)容、實訓(xùn)項目等方面都存在不足[1]。為了有效提升Java 編程基礎(chǔ)課程教學(xué)效果,筆者將結(jié)合多年的企業(yè)實踐經(jīng)驗和教學(xué)經(jīng)驗,從改善現(xiàn)有項目驅(qū)動教學(xué)法中存在的問題入手,通過設(shè)計符合學(xué)生實際情況和知識特點的項目,并依據(jù)項目制定相應(yīng)的教學(xué)設(shè)計,提升課程的教學(xué)效果。
項目驅(qū)動教學(xué)法是一種為實現(xiàn)完整項目而開展的教學(xué)活動,是指在教學(xué)過程中,根據(jù)教學(xué)內(nèi)容引入項目案例,將教學(xué)與實踐項目相結(jié)合,把枯燥課本知識轉(zhuǎn)化成可見的、易于理解和實踐的操作訓(xùn)練。項目驅(qū)動教學(xué)法的核心內(nèi)容不是將教師掌握的各項專業(yè)知識傳遞給學(xué)生,也不是簡單地要求學(xué)生根據(jù)教師安排的內(nèi)容或者講解方式獲取結(jié)果[2],而是在教師的科學(xué)引導(dǎo)下,帶領(lǐng)學(xué)生尋找結(jié)果的過程[3]。通過這個過程,增強學(xué)生學(xué)習(xí)興趣、鞏固學(xué)生知識體系,培養(yǎng)學(xué)生的創(chuàng)造力和知識轉(zhuǎn)化能力,最終達到培養(yǎng)實踐技能型人才的目的。
Java 編程基礎(chǔ)課程知識點較多,面向?qū)ο蟮闹R體系難以理解,如果按照傳統(tǒng)教學(xué)方式,學(xué)生很難接受和掌握核心知識點,更不用說靈活應(yīng)用知識點進行實踐應(yīng)用。Java 編程基礎(chǔ)本身是一門實踐性非常強的課程,因此將項目驅(qū)動教學(xué)法引入Java 編程基礎(chǔ)教學(xué)過程是非常有必要的。當(dāng)前在各高職院校,項目驅(qū)動教學(xué)法已經(jīng)廣泛應(yīng)用,但實際效果并不理想,其主要表現(xiàn)在以下幾個方面:
1)項目脫離學(xué)生的生活實踐,無法引起學(xué)生的足夠興趣;
2)項目過于復(fù)雜,學(xué)生一開始就產(chǎn)生畏難情緒;
3)項目無法完全覆蓋知識點,教學(xué)無法達到預(yù)期效果;
4)項目過于死板,無法滿足不同層次學(xué)生的學(xué)習(xí)需求。
為了解決項目驅(qū)動教學(xué)法在Java 編程基礎(chǔ)教學(xué)中遇到的問題,筆者根據(jù)教學(xué)內(nèi)容和學(xué)生的實際特點,精心設(shè)計了項目和教學(xué)方法,解決以往教學(xué)過程中存在的問題。
設(shè)計一個晚會抽獎系統(tǒng),包含抽獎開始按鈕、界面重置按鈕、抽獎類別選擇按鈕(教師和學(xué)生二選一),中獎?wù)咝畔@示界面,顯示信息包括中獎?wù)逫D(學(xué)生為學(xué)號、教師為工號)、姓名和照片信息。初始狀態(tài)或者點擊界面重置按鈕,界面顯示學(xué)校Logo 信息,點擊開始抽獎按鈕時,界面啟動抽獎流程,圖片和文字處循環(huán)滾動抽獎人員信息,一段時間后,停止?jié)L動并顯示某一個固定的圖片和其對應(yīng)的人員信息,即為中獎?wù)咝畔ⅰ.?dāng)抽獎類別選學(xué)生時,抽獎的對象為學(xué)生,當(dāng)抽獎類別選教師時,抽獎對象為教師??梢栽O(shè)置黑白名單,讓系統(tǒng)優(yōu)先顯示或者不顯示某位特定的抽獎對象。相比傳統(tǒng)的教學(xué)項目,該項目主要有如下一些特點。
1)緊貼學(xué)生日常生活實際,學(xué)校每年都會有不同形式的晚會,如元旦晚會、迎新晚會、畢業(yè)晚會等。除了常規(guī)的晚會表演節(jié)目,為了活躍氣氛,晚會經(jīng)常會設(shè)置一些抽獎環(huán)節(jié)。同時,各種家庭聚會、同學(xué)聚會也會設(shè)置一些抽獎環(huán)節(jié),學(xué)生完成項目需求后,就可以在這些場合大顯身手。
2)項目難易程度適中,該項目的基礎(chǔ)功能沒有特別復(fù)雜的算法結(jié)構(gòu),項目邏輯相對簡單清晰,總代碼量在1 000 行左右,學(xué)生能夠快速上手,不會產(chǎn)生畏難情緒。
3)項目可實現(xiàn)知識點全覆蓋,通過項目需求引出不同的知識點,讓學(xué)生對知識體系有更深的認(rèn)識,其具體的知識點覆蓋情況如表1 所示。

表1 項目需求點與知識點對應(yīng)關(guān)系
4)項目可擴展性強,可以滿足不同層次學(xué)生進一步學(xué)習(xí)的需求。項目除了基礎(chǔ)需求外,還可以通過如下擴展,提升項目難度,滿足學(xué)有余力的學(xué)生需求。如增加獲獎等級和獎品的設(shè)置與顯示、中獎對象不能重復(fù)獲獎的設(shè)置、黑白名單規(guī)則差異、界面滾動顯示規(guī)則和速度等。
在總結(jié)傳統(tǒng)項目驅(qū)動教學(xué)法存在問題的基礎(chǔ)上,根據(jù)課程知識點和項目需求間的關(guān)系,設(shè)計一套符合高職學(xué)生特點的教學(xué)方法,主要有如下特點。
1)知識點和項目兩條主線,在常規(guī)的教學(xué)設(shè)計中,教學(xué)內(nèi)容往往是以知識點為主線來串聯(lián)的,而筆者在教學(xué)設(shè)計中,同時考慮了知識點和項目需求點兩條主線,以Java 語言本身的知識體系結(jié)構(gòu),串聯(lián)起全部的知識點,同時通過項目需求分析,將整個項目拆分成多個不同的子需求點,以需求點的實現(xiàn)流程串起整個項目,同時知識點與需求點相互穿插,體現(xiàn)“在學(xué)中做,在做中學(xué)”的教學(xué)理念。
2)知識點緊密結(jié)合項目需求點,一個完整的項目,是由許多不同的需求點組合而成的,而這些需求點又與課本中的各個知識點緊密聯(lián)系,筆者在教學(xué)設(shè)計中將所有項目需求點以課堂案例和課后作業(yè)的形式融入課程知識點中,使學(xué)生完成項目需求點的同時,實現(xiàn)知識點的科學(xué)應(yīng)用,提升學(xué)習(xí)能力[4]。
3)融入軟件工程思維,在教學(xué)設(shè)計中,項目需求點的劃分不是簡單的拆分與拼湊,而是引入敏捷開發(fā)流程,讓每一個需求點都可以看到真實的運行效果,每一個需求點都能夠被度量,在多個相關(guān)需求完成的基礎(chǔ)上,進行整合與聯(lián)調(diào),形成一個更大的可以被度量的模塊,依此規(guī)則進行逐級整合,最終形成一個完整的項目需求。
4)促進學(xué)生自主探究,一個項目需求點,往往可以使用多個不同的知識點來實現(xiàn),在教學(xué)設(shè)計中讓學(xué)生通過實現(xiàn)過程和執(zhí)行效率等多方面比較不同知識點在實現(xiàn)同一個需求點時的優(yōu)缺點,從而探索出不同的知識點適合的應(yīng)用場景。
5)培養(yǎng)學(xué)生創(chuàng)新意識,在教學(xué)設(shè)計中,除了完成規(guī)定的項目功能外,還會以大作業(yè)的形式,讓學(xué)生利用所學(xué)的知識點,擴展新功能,將該項目充分地與實際生活場景相結(jié)合,充分挖掘?qū)W生的創(chuàng)新意識和靈活應(yīng)用知識點的能力。
將上述教學(xué)設(shè)計應(yīng)用于湖北科技職業(yè)學(xué)院計算機應(yīng)用技術(shù)專業(yè)20 級學(xué)生的實際教學(xué)中,與沒有使用該教學(xué)法的19 級學(xué)生進行對比。19 級和20 級學(xué)生都是從同一套題庫中選取同難度級別的三道編程題進行期末考試,對考試成績進行對比結(jié)果如下:
在考試成績分布方面,比較分?jǐn)?shù)在70 ~90 分區(qū)間的學(xué)生,20 級較19 級有將近20%的提升,并且不及格學(xué)生的百分比降至之前的一半;在平均分方面,20 級學(xué)生的平均分較19 級學(xué)生提升了5 分。
除了成績方面的變化,20 級學(xué)生更多的是在學(xué)習(xí)興趣與實踐能力方面的提升,通過實用的軟件項目,讓學(xué)生感知學(xué)習(xí)的知識能夠真實地應(yīng)用到自己的生活中,大大提升了學(xué)生學(xué)習(xí)的積極性和主動性,同時每一個知識點都能通過實際場景案例來詮釋,學(xué)生對知識點的理解更加透徹,在遇到困難時能夠靈活運用各種不同的手段來解決。大多數(shù)學(xué)生的編程能力和自主學(xué)習(xí)能力都得到了鍛煉和提升,達到了教學(xué)設(shè)計的目標(biāo)。
Java 編程基礎(chǔ)作為計算機應(yīng)用技術(shù)的一門專業(yè)核心課,在高職教學(xué)體系中非常重要。根據(jù)高職教育的培養(yǎng)目標(biāo)、學(xué)生的實際情況以及Java 語言自身的特點,采用項目驅(qū)動教學(xué)法,從提升學(xué)生的學(xué)習(xí)興趣出發(fā),以知識點為主線,以項目為載體,通過教師講授知識點,點撥知識點與項目需求點的關(guān)聯(lián)關(guān)系,讓學(xué)生自主探究項目的實現(xiàn)方式,靈活應(yīng)用各種手段解決實際問題,最終完成整個項目。在此過程中,讓學(xué)生真正理解并掌握知識點,提升編程能力、實踐動手能力以及實際解決問題的能力。