劉慧琳
摘要:Java程序設(shè)計對計算機(jī)相關(guān)專業(yè)的學(xué)生來說是一門非常重要且實踐性很強(qiáng)的課程,文章針對傳統(tǒng)授課方式的弊端,根據(jù)該課程的特點,結(jié)合成都師范學(xué)院相關(guān)專業(yè)學(xué)生的學(xué)習(xí)情況,對課程的教學(xué)內(nèi)容、教學(xué)模式、實驗實訓(xùn)和考核評價等方面進(jìn)行了探討,提出了以任務(wù)驅(qū)動為導(dǎo)向的教學(xué)模式,以此來激發(fā)學(xué)生的學(xué)習(xí)興趣,促進(jìn)學(xué)生對課程知識點的理解和掌握。文章提出的教學(xué)模式,以培養(yǎng)學(xué)生的編程和解決實際問題的能力為教學(xué)目標(biāo),通過一個個任務(wù)推動課程教學(xué)。
關(guān)鍵詞:Java程序設(shè)計;任務(wù)驅(qū)動;教學(xué)模式
中圖分類號:G642? ? ? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2022)16-0147-03
1 引言
1.1 Java的應(yīng)用前景
Java語言作為一門應(yīng)用廣泛的編程語言,有非常廣泛的應(yīng)用前景,它的生態(tài)系統(tǒng)幾乎涵蓋了目前市面上所有的軟硬件。它常用于網(wǎng)站開發(fā)、游戲開發(fā)、桌面程序設(shè)計、移動終端應(yīng)用,以及其他應(yīng)用軟件的開發(fā),廣泛應(yīng)用于移動、銀行、保險、物流、醫(yī)療等各大行業(yè),其對Web應(yīng)用以及電子商務(wù)的迅速發(fā)展做出了巨大的貢獻(xiàn)。它在當(dāng)前熱門的云計算、大數(shù)據(jù)、物聯(lián)網(wǎng)、人工智能和區(qū)塊鏈等技術(shù)領(lǐng)域也有著廣闊的應(yīng)用前景。
1.2 課程教學(xué)現(xiàn)狀
大部分計算機(jī)及相關(guān)專業(yè)普遍開設(shè)程序設(shè)計類課程,目前這類課程在很多學(xué)校采用以教師講授為主的“填鴨式”教學(xué)方式,這種教學(xué)方式以教師為中心,以教師對知識的講解為主體,而學(xué)生在這一教學(xué)過程中被動接受,教學(xué)效果不理想。近年來針對Java程序設(shè)計的課程改革研究得到了高校廣泛的重視[1-3],大部分研究是以項目驅(qū)動模式進(jìn)行探討的[1-3]。成都師范學(xué)院計算機(jī)科學(xué)學(xué)院從2016年開始招收數(shù)字媒體技術(shù)專業(yè)本科生,該專業(yè)文理兼收,一部分學(xué)生具有較強(qiáng)的理工科思維,一部分學(xué)生在文科方面比較擅長。根據(jù)數(shù)字媒體產(chǎn)業(yè)對人才需求的調(diào)研制定了該專業(yè)人才培養(yǎng)方案并設(shè)置了相關(guān)課程教學(xué)體系。Java程序設(shè)計已成為計算機(jī)科學(xué)與技術(shù)、數(shù)字媒體技術(shù)等本科計算機(jī)相關(guān)專業(yè)的一門重要的專業(yè)選修課程, 在教學(xué)計劃中占有重要地位。為了適應(yīng)時代和行業(yè)的新要求, 該課程打破基于學(xué)科邏輯的計算機(jī)理論教學(xué)方式, 嘗試以任務(wù)驅(qū)動為導(dǎo)向, 著力培養(yǎng)學(xué)生實踐和創(chuàng)新能力[4],提升學(xué)生就業(yè)能力。
1.3 目前教學(xué)存在的問題
近十幾年,各高校陸續(xù)開設(shè)了Java程序設(shè)計課程,目前該課程的教學(xué)主要存在以下幾個問題:
1)傳統(tǒng)式講授,學(xué)生接受較差
傳統(tǒng)教學(xué)方式通常是老師對各個知識點采用“理論講解+案例演示”,學(xué)生被動接受。這種教學(xué)方式以理論教學(xué)為主,有部分實踐操作也僅局限于課堂案例或者相關(guān)練習(xí)的驗證性實驗操作,課堂氣氛不夠活躍,很難激發(fā)學(xué)生學(xué)習(xí)的主動性和積極性,教學(xué)效果不佳。
2)學(xué)習(xí)熱情常常是先高后低[3]
學(xué)生剛開始學(xué)習(xí)階段的學(xué)習(xí)興趣較高,大部分學(xué)生愿意參與到理論和實踐教學(xué)中來。但是,隨著課程知識點的復(fù)雜度和程序代碼量的增加,部分學(xué)生開始跟不上教學(xué)進(jìn)度,體現(xiàn)在:課堂上學(xué)生不愿意參與討論和互動;不能靈活應(yīng)用所學(xué)知識;實驗作業(yè)僅能完成講過的案例,對稍微變化或拓展的練習(xí)就無法下手。
3)學(xué)生的綜合實踐能力較差
學(xué)習(xí)過程是單一的知識點和相關(guān)簡單案例結(jié)合講解,雖然能讓學(xué)生理解單個知識點,但所學(xué)知識點比較孤立,各個知識點之間缺乏有機(jī)的融合,學(xué)生很難掌握章節(jié)之間和課程之間的關(guān)聯(lián)。并且前后所學(xué)的知識點不能很好地銜接,涉及多知識點的綜合應(yīng)用就無從下手。
4)學(xué)習(xí)成就感較差
學(xué)生學(xué)完整門課程后,沒有綜合實踐能力,體會不到學(xué)習(xí)Java語言的作用,感覺只是多學(xué)了一門編程語言,成就感較差,也在一定程度上影響就業(yè)。
5)以項目驅(qū)動教學(xué)模式的局限性
項目驅(qū)動教學(xué)模式是以項目為主體的教學(xué)方式。該方式是讓學(xué)生參加真實的項目設(shè)計,在完成項目的過程中完成教學(xué)任務(wù)[5]。這種方式雖然能夠避免傳統(tǒng)農(nóng)教學(xué)模式的一些弊端,激發(fā)學(xué)生的學(xué)習(xí)興趣,提升實踐能力,但是也有一定的局限性。項目往往不能包含全部的知識點,項目的分割和各個教學(xué)知識點不一定很好地銜接。
面向任務(wù)驅(qū)動的教學(xué)模式更加注重理論到實踐的運用,有助于改善理論與實踐之間的關(guān)系, 以項目為主線,以任務(wù)為紐帶密切聯(lián)系知識點,通過實踐訓(xùn)練提高理論水平,以理論知識指導(dǎo)實踐運用,提升整體學(xué)習(xí)效果。
2 任務(wù)驅(qū)動教學(xué)模式
任務(wù)驅(qū)動教學(xué)模式是以項目和任務(wù)為核心,在教學(xué)過程中以具體項目為主線展開,把相關(guān)的知識點融入各個教學(xué)環(huán)節(jié)中。在實際教學(xué)中,教師通過提出問題、分析問題,明確問題所涉及的各個知識點,指導(dǎo)和督促學(xué)生進(jìn)行學(xué)習(xí)。把項目分解為一個個獨立的任務(wù)(按知識點分解,任務(wù)盡量以難易程度適中、容易實施來確定),以完成具體任務(wù)為目標(biāo)的教學(xué)過程。
任務(wù)驅(qū)動教學(xué)方式把學(xué)生按大的項目分成若干小組,按文理科學(xué)生搭配,編程基礎(chǔ)好和基礎(chǔ)差的學(xué)生組合的方式分組,每個小組完成獨立的一個項目。教師將項目劃分為一個個任務(wù)(任務(wù)對應(yīng)理論知識點),每個小組的學(xué)生根據(jù)自身的特長合理分配任務(wù),學(xué)生根據(jù)任務(wù)的需求來學(xué)習(xí)對應(yīng)的技能,由被動學(xué)習(xí)轉(zhuǎn)變?yōu)橹鲃訉W(xué)習(xí),從而調(diào)動學(xué)習(xí)的興趣,發(fā)揮學(xué)習(xí)的積極性。在任務(wù)完成的過程中,既鍛煉了學(xué)生的自學(xué)能力,又培養(yǎng)了他們的動手能力,還增強(qiáng)了大家的團(tuán)隊協(xié)作精神。
3 項目設(shè)計和任務(wù)劃分的原則[6]
采用任務(wù)驅(qū)動的教學(xué)方式時,項目的設(shè)計和任務(wù)的劃分非常重要。一個好的項目設(shè)計需要涵蓋本課程的各個知識點,每個知識點設(shè)置為一個任務(wù),任務(wù)要難易結(jié)合,各個任務(wù)相互聯(lián)系又相對獨立,并且重點突出。任務(wù)把知識點串聯(lián)起來,能構(gòu)成整個課程的學(xué)習(xí)內(nèi)容,組成一個項目[6]。教師在組織和劃分任務(wù)的先后順序時需要考慮學(xué)生的理論基礎(chǔ)、動手能力和學(xué)習(xí)能力,任務(wù)應(yīng)該從簡單到復(fù)雜自然過渡,中間要注意知識銜接。另外,選擇的項目應(yīng)當(dāng)業(yè)務(wù)簡單,對復(fù)雜的業(yè)務(wù)邏輯進(jìn)行適當(dāng)拆分,形成多個業(yè)務(wù)簡單的任務(wù),便于理解;項目最好具備一定的趣味性,讓學(xué)生能在愉快的實踐過程中熟悉課程的理論知識。
4 任務(wù)驅(qū)動法的教學(xué)過程設(shè)計
任務(wù)驅(qū)動教學(xué)設(shè)計盡量與日常生活和學(xué)習(xí)相關(guān),這里以 “學(xué)生信息管理系統(tǒng)”項目為例探討具體的教學(xué)實施方案。該課程的知識體系主要分為Java基礎(chǔ)知識(包括程序的基本結(jié)構(gòu)、基礎(chǔ)語法、基礎(chǔ)編程等),流程控制和數(shù)組,面向?qū)ο蟮木幊蹋ò惡蛯ο螅?、子類和繼承性,包、訪問控制和接口),異常處理,多線程設(shè)計,輸入輸出流,GUI編程等。
每個教學(xué)階段的實踐任務(wù)如表1所示。
5 任務(wù)驅(qū)動法在教學(xué)過程中的實施
Java語言主要分為基礎(chǔ)和提高兩部分進(jìn)行教學(xué),每個部分按章節(jié)知識點進(jìn)行分類,按知識點的粒度設(shè)置為大小不同的任務(wù),將大任務(wù)進(jìn)一步拆分為適合教學(xué)的小任務(wù)。教師將每個小任務(wù)涉及的知識點進(jìn)行講解,并錄制成微課輔助學(xué)生學(xué)習(xí)。在任務(wù)的實施過程中,每個小組中編程能力強(qiáng)的學(xué)生可以幫助、帶動能力較弱的組員。學(xué)生在實踐過程中,對不熟悉的知識點可以反復(fù)觀看相應(yīng)的微課進(jìn)行學(xué)習(xí),下面對具體任務(wù)的實施進(jìn)行探討。
5.1 Java基礎(chǔ)知識部分
學(xué)習(xí)目標(biāo)是讓學(xué)生掌握J(rèn)ava語言的基本語法,包括基本數(shù)據(jù)類型、運算符和表達(dá)式,流程控制語句和數(shù)組等內(nèi)容。教學(xué)實踐是引導(dǎo)學(xué)生完成學(xué)生成績的管理任務(wù),包括搭建開發(fā)環(huán)境,編輯器的使用規(guī)范,學(xué)生成績的統(tǒng)計、排序、求平均分等實踐任務(wù)。
5.2 Java語言的提高部分
學(xué)習(xí)目標(biāo)是掌握面向?qū)ο蟮木幊?,熟悉繼承、多態(tài)、抽象類的使用,并掌握異常處理的方法以及多線程設(shè)計的思想。通過實現(xiàn)設(shè)定的任務(wù)來完成知識點的教學(xué)。面向?qū)ο蟮木幊滩糠忠匀藛T信息管理和計算多邊形周長和面積兩個任務(wù)為主線進(jìn)行教學(xué)。
1)面向?qū)ο蟮木幊滩糠?/p>
面向?qū)ο蟮闹R是教學(xué)重點,以人員信息管理任務(wù)來完成以下知識點的教學(xué):類和對象的定義,包括類的成員變量和成員方法的定義、構(gòu)造方法的定義和方法的重載、訪問控制、類的封裝性和繼承等;以計算多邊形周長和面積的任務(wù)來完成抽象類及其繼承等知識點教學(xué)。
2)異常處理
在學(xué)生成績單任務(wù)中添加對除零、數(shù)組越界、類型轉(zhuǎn)換錯誤、文件IO錯誤等情況的處理。通過幾個在實際生活中可能遇到的異常問題的處理,使學(xué)生了解異常處理的作用并掌握具體的處理方法。
3)多線程設(shè)計
設(shè)計提供多人進(jìn)行成績錄入和查詢的任務(wù),該任務(wù)使用隊列進(jìn)行成績數(shù)據(jù)緩存,采用多線程技術(shù)實現(xiàn)系統(tǒng)的并發(fā)訪問;成績隊列成為臨界訪問資源,通過隊列鎖機(jī)制解決資源爭用問題。
4)輸入輸出流
設(shè)計實踐任務(wù)有:創(chuàng)建文件夾和文件,查詢文件屬性,將學(xué)生成績寫入文件中,并從文件中讀出成績數(shù)據(jù)等。
5)GUI編程
設(shè)計成績錄入和顯示成績列表的界面,實現(xiàn)系統(tǒng)界面的布局和設(shè)計,掌握Button 、Label、TextField等常用控件的使用。
6 教師和學(xué)生在任務(wù)實施過程中扮演的角色
6.1 教師教學(xué)指導(dǎo)
教學(xué)過程中,教師的作用主要是引導(dǎo)作用,介紹項目,劃分任務(wù),講解和分析與任務(wù)相關(guān)的知識點,指導(dǎo)學(xué)生從所學(xué)的理論知識應(yīng)用到實際的任務(wù)中[7]。
6.2 學(xué)生實踐操作
學(xué)生實踐圍繞任務(wù)展開,首先是根據(jù)任務(wù)梳理需要的知識點,學(xué)習(xí)和理解相關(guān)知識,通過對任務(wù)的理解、討論,完成任務(wù)的進(jìn)一步拆分。小組內(nèi)部討論形成實操方案,各成員按計劃分工,先對單一知識點的實踐作業(yè)進(jìn)行操作演練,再逐步將子任務(wù)進(jìn)行疊加、組合,形成較大的任務(wù)模塊,最終把課程學(xué)習(xí)中組員完成的一個個小任務(wù)串接起來形成一個完整的項目。
在各個任務(wù)階段,小組內(nèi)各個成員對完成的模塊相互測試,發(fā)現(xiàn)問題,提出改進(jìn)意見。每個成員接觸到的知識局限在子任務(wù)涉及的知識點,通過相互測試和修改,完成相應(yīng)知識點的學(xué)習(xí)和補(bǔ)充,達(dá)到全面學(xué)習(xí)的目的。
在任務(wù)實施的過程中,學(xué)生需要階段性匯報,總結(jié)任務(wù)實施情況,針對遇到的問題提出解決方案,記錄小組內(nèi)討論的過程,要求每個同學(xué)參與,輪流進(jìn)行匯報。
7 考核評價
考核評價[8]主要包括四個方面:
1)單一知識點的考核
針對每個小組中的每個成員,都需要完成對應(yīng)的知識點編碼練習(xí),教師根據(jù)學(xué)生提交的實踐作業(yè),檢查任務(wù)中知識點的涵蓋情況,對知識的綜合運用能力進(jìn)行評價。
2)任務(wù)完成情況考核
根據(jù)小組的分工,對每個任務(wù)的設(shè)計文檔和實現(xiàn)過程,以及軟件運行情況進(jìn)行評價。檢查任務(wù)功能完成情況,并對源代碼進(jìn)行檢查,通過對軟件實現(xiàn)的算法思想,代碼書寫、程序注釋等編程規(guī)范性進(jìn)行評價。
3)團(tuán)隊協(xié)作能力考核
考核學(xué)生在小組任務(wù)中對相關(guān)知識點的掌握情況,了解學(xué)生在執(zhí)行任務(wù)過程的態(tài)度(積極性和認(rèn)真度)和完成質(zhì)量。結(jié)合學(xué)生對知識點、實現(xiàn)技術(shù)細(xì)節(jié)的熟悉程度推斷學(xué)生在相應(yīng)任務(wù)中的參與程度,按學(xué)生參與程度越高則團(tuán)隊協(xié)作能力越強(qiáng)進(jìn)行考核,并對小組成員間的合作和互助情況做出評價。避免出現(xiàn)小組少數(shù)同學(xué)包攬任務(wù),部分成員不參與的情況。
4)小組綜合能力考核
項目完成后進(jìn)行答辯,每個小組需要對各自的項目進(jìn)行講解、運行,對每部分功能的實現(xiàn)進(jìn)行說明,回答教師和其他小組成員的質(zhì)詢和提問,最后做出綜合能力評價;小組成員之間還要相互進(jìn)行評價。
對各個任務(wù)完成情況進(jìn)行考核的表格模板如表2所示:
8 結(jié)束語
以任務(wù)驅(qū)動為導(dǎo)向的Java程序設(shè)計課程教學(xué)對傳統(tǒng)的教學(xué)方式進(jìn)行了改革,以教師的理論講解和課帶實驗為主的教學(xué),轉(zhuǎn)變?yōu)橐匀蝿?wù)驅(qū)動為導(dǎo)向的教學(xué)方式,不僅調(diào)動了學(xué)生學(xué)習(xí)的積極性,還增強(qiáng)了學(xué)生專業(yè)素養(yǎng)、溝通能力和團(tuán)隊協(xié)作精神。當(dāng)然這種教學(xué)模式不能一成不變,還應(yīng)該根據(jù)學(xué)生的專業(yè)情況、學(xué)習(xí)能力進(jìn)行調(diào)整,在實踐過程中不斷改進(jìn),努力將學(xué)生培養(yǎng)成為適應(yīng)社會需求的高素質(zhì)技能型人才。
參考文獻(xiàn):
[1] 李丹.項目驅(qū)動教學(xué)模式下的《JAVA程序設(shè)計》課程改革探討[J].電腦與電信,2019(4):28-30.
[2] 李躍飛.基于項目驅(qū)動法的《Java程序設(shè)計》課程教學(xué)設(shè)計[J].亞太教育,2015(16):90.
[3] 徐靜.體驗項目驅(qū)動的Java程序設(shè)計課程建設(shè)思路[J].計算機(jī)時代,2014(5):64-65.
[4] 柳長安,白逸仙.以問題為導(dǎo)向的虛擬現(xiàn)實課程改革與實踐[J].華北電力大學(xué)學(xué)報(社會科學(xué)版),2017(3):126-129.
[5] 李曉玲.行為導(dǎo)向 德國職業(yè)教育教學(xué)改革的理論與實踐[J].教育發(fā)展研究,2002,22(11):109-111.
[6] 彭召意,文志強(qiáng),朱艷輝.以項目驅(qū)動的面向?qū)ο蟪绦蛟O(shè)計課程教學(xué)研究[J].計算機(jī)教育,2012(24):95-98.
[7] 劉玉文,陳春燕,翟菊葉,等.基于任務(wù)驅(qū)動的《C語言程序設(shè)計》在線教學(xué)方法[J].黃岡師范學(xué)院學(xué)報,2021,41(3):126-130.
[8] 郭銀章,王麗芳.基于項目任務(wù)驅(qū)動的C語言程序設(shè)計課程教學(xué)改革與實踐[J].計算機(jī)教育,2017(2):41-44.
【通聯(lián)編輯:王力】