摘要:隨著計算機(jī)行業(yè)的迅速發(fā)展,市場對人才的需求不斷增加,如何提高大學(xué)生的綜合能力成為高校教育改革的核心問題?!癑ava程序設(shè)計”既是高職理工科專業(yè)的必修專業(yè)課,又是后續(xù)專業(yè)課程的前置課程。對高職院校Java課程教學(xué)現(xiàn)狀進(jìn)行分析,從課程目標(biāo)、教學(xué)方法、教學(xué)內(nèi)容、課程思政、考核方式五方面提出了教學(xué)改革措施,以期打造優(yōu)質(zhì)課堂,提升教學(xué)質(zhì)量,對高職程序設(shè)計類課程的“課堂革命”具有一定的借鑒意義。
關(guān)鍵詞:Java程序設(shè)計;職業(yè)教育;教學(xué)改革
一、前言
“Java程序設(shè)計”是軟件技術(shù)、移動應(yīng)用開發(fā)、計算機(jī)應(yīng)用技術(shù)等高職計算機(jī)類相關(guān)專業(yè)開設(shè)的一門專業(yè)核心課。以軟件技術(shù)專業(yè)為例,該課程在整個專業(yè)人才培養(yǎng)方案中起著地基式作用,是后續(xù)課程Java設(shè)計模式、JSP動態(tài)網(wǎng)站開發(fā)、Java框架技術(shù)、Android應(yīng)用開發(fā)等課程的前置課程,學(xué)生對該門課程掌握的情況將直接決定后續(xù)課程的學(xué)習(xí)效果。Java語言是一種面向?qū)ο笳Z言,語法規(guī)則復(fù)雜,內(nèi)容抽象,高職學(xué)生普遍基礎(chǔ)弱、自制力差,學(xué)習(xí)此課程動力不足。因此,激發(fā)學(xué)生學(xué)習(xí)興趣,提升課程教學(xué)效果,教學(xué)改革勢在必行。
二、課程教學(xué)存在的問題
(一)教學(xué)目標(biāo)不明確
高職院校的培養(yǎng)目標(biāo)是將學(xué)生培養(yǎng)成高素質(zhì)應(yīng)用型人才,一些高職院校忽略了學(xué)生的學(xué)情和職業(yè)教育的特點,以通過程序設(shè)計類的考證為教學(xué)目標(biāo),教學(xué)重心偏向數(shù)據(jù)結(jié)構(gòu)與算法等理論知識,導(dǎo)致學(xué)生學(xué)不懂、不想學(xué)。此外,學(xué)生不知道學(xué)習(xí)這門課的意義是什么,學(xué)完這門課能做什么,畢業(yè)后從事什么樣的工作,普遍對課程認(rèn)識不足,沒有建立整體的專業(yè)思想,缺乏學(xué)習(xí)動力和職業(yè)規(guī)劃。
(二)教師為主體,實踐教學(xué)存弊端
教師在教學(xué)中占主體地位,課堂以講授理論知識為主,案例多為驗證語法規(guī)則,知識點之間缺乏邏輯連貫性以及與現(xiàn)實生活的聯(lián)系。學(xué)生上機(jī)操作基本上是把教師剛剛講過的例題“抄”一遍,運行出結(jié)果便認(rèn)為已經(jīng)掌握了該知識點,如果將例題稍加修改或者獨立完成課后編程題,便困難重重。教師在實踐教學(xué)過程中沒有注重培養(yǎng)學(xué)生獨立思考和解決實際問題的能力,缺乏對學(xué)生進(jìn)行真正的軟件項目開發(fā)訓(xùn)練[1]。
(三)教學(xué)內(nèi)容重點不突出,缺乏合適的實踐項目
部分教師照本宣科,按照教材順序力求每個知識點都講到、練到,造成教學(xué)任務(wù)完不成,學(xué)生學(xué)習(xí)興趣不高。許多院校在開設(shè)此門課程之前已開設(shè)過“C語言程序設(shè)計”,基礎(chǔ)部分內(nèi)容相似,部分教師仍花大量時間講解語法規(guī)則和三大結(jié)構(gòu),沒做到教學(xué)內(nèi)容突出重點,本門課的重點是“面向?qū)ο蟆?。許多高職院校課堂采用項目驅(qū)動教學(xué)法,但實際效果并不理想,普遍缺乏合適的實踐項目,主要存在以下幾個問題:項目脫離實際、規(guī)模過于龐大、知識點覆蓋不到位等。
(四)課程思政沒落實
近幾年各高校積極進(jìn)行課程思政教學(xué)改革,但仍處于起步階段,課程思政落實情況存在一些問題。部分教師對課程思政認(rèn)識不足,不愿花過多時間研究這門學(xué)問,仍專注于專業(yè)課教學(xué)。部分教師自身水平能力有限,對課程思政理解不深,認(rèn)為每堂課都要有思政,或者教學(xué)設(shè)計中涉及的思政元素與知識點存在兩張皮的現(xiàn)象,并沒有真正起到在講授專業(yè)知識過程中同時有效進(jìn)行思想政治教育[2]。
(五)課程考核不合理
雖然大部分院校已經(jīng)不采用傳統(tǒng)的紙質(zhì)考卷考試,而是以平時成績和上機(jī)考試對學(xué)生進(jìn)行考查。部分教師對平時成績的評定存在很大的主觀性,缺少量化考核標(biāo)準(zhǔn)。上機(jī)考試與全國計算機(jī)等級考試二級“Java語言程序設(shè)計”題型類似,包含選擇題和編程題。編程題是在給定的程序基礎(chǔ)上進(jìn)行代碼補(bǔ)全、改錯、方法編寫,或者出一些經(jīng)典的算法編程題考查學(xué)生編程水平。這種考查其實是對知識點理論知識的考核,不符合課程的培養(yǎng)目標(biāo),學(xué)生學(xué)習(xí)動力不足,缺乏自主思考和編寫程序?qū)崿F(xiàn)特定功能的能力,更談不上滿足企業(yè)的要求。
三、課程教學(xué)改革的措施
(一)正確認(rèn)識課程目標(biāo),上好第一次課
學(xué)生通常在第一次課時態(tài)度端正,注意力集中,教師上好第一次課十分重要。教師要精心設(shè)計第一次課,在第一次課上讓學(xué)生正確認(rèn)識課程目標(biāo),明白學(xué)習(xí)這門課的意義是什么、學(xué)完這門課能做什么、今后能從事什么樣的工作,讓學(xué)生建立整體專業(yè)思想,明晰專業(yè)學(xué)習(xí)路線。第一次課不必固定按照教材順序講解Java語言概述,應(yīng)向?qū)W生呈現(xiàn)整體的專業(yè)人才培養(yǎng)課程體系。以軟件技術(shù)專業(yè)為例,課程學(xué)習(xí)路線均圍繞Java技術(shù),呈遞進(jìn)式,“Java程序設(shè)計”“面向?qū)ο蟪绦蛟O(shè)計”“JSP動態(tài)網(wǎng)站開發(fā)”“Android應(yīng)用開發(fā)”“Java框架技術(shù)”以及不同等級的1+X JavaWeb應(yīng)用開發(fā)職業(yè)技能等級證書等,“Java程序設(shè)計”在整個課程體系中屬于核心專業(yè)課、基礎(chǔ)課,其學(xué)習(xí)效果直接影響后續(xù)課程的學(xué)習(xí),讓學(xué)生在學(xué)期初就明確課程定位與重要性。課程目標(biāo)是能夠讓學(xué)生完成簡單應(yīng)用程序的設(shè)計,至少能在現(xiàn)有程序的基礎(chǔ)上加以改造和創(chuàng)新。學(xué)生在學(xué)習(xí)此門課之前已經(jīng)學(xué)過“C語言程序設(shè)計”,具備了面向過程的編程思維模式,本門課的核心是面向?qū)ο?,向?qū)W生強(qiáng)調(diào)需要轉(zhuǎn)變編程思維模式。第一次課可以向?qū)W生展示高年級學(xué)生使用Java語言編寫出來的各種應(yīng)用程序、參加技能競賽的作品,或上網(wǎng)查找Java語言相關(guān)的崗位信息,讓學(xué)生直觀感受Java語言能做什么,有什么具體應(yīng)用場景,讓學(xué)生清晰自己的職業(yè)規(guī)劃和增強(qiáng)學(xué)習(xí)動力。第一次課以鼓勵學(xué)生為主,告訴他們學(xué)習(xí)過程中雖然會遇到許多困難,但是當(dāng)程序運行通過必定會產(chǎn)生巨大的滿足感和自信心。
(二)啟發(fā)式教學(xué)增興趣,創(chuàng)設(shè)生活化情境促理解
教師在教學(xué)過程中,要以學(xué)生為中心,進(jìn)行啟發(fā)式教學(xué),以培養(yǎng)學(xué)生的編程思想,營造主動學(xué)習(xí)氛圍。例如,教師在講解“面向?qū)ο蟆惻c對象—類的聲明”這個知識點時,可以重點強(qiáng)調(diào)類的聲明包括成員變量、構(gòu)造方法以及成員方法,然后給出具體的編程題目(最好聯(lián)系生活日常):“定義一個學(xué)生類,并創(chuàng)建學(xué)生對象,對象信息是你們自己哦!”讓學(xué)生動手編程。學(xué)生進(jìn)行了課前預(yù)習(xí),擁有十到十五分鐘時間嘗試編程。教師在巡查過程中,會發(fā)現(xiàn)有少數(shù)學(xué)得好的學(xué)生可以獨立完成任務(wù),而多數(shù)學(xué)生感到吃力,此時需要教師引導(dǎo)和啟發(fā)。教師給出部分程序,學(xué)生模仿已有程序完成整個程序。
學(xué)生類的部分程序如下:
public class Student {
private String name;
//添加代碼,聲明成員變量age
public Student(String name, int age) {
this.name = name;
//添加代碼,使用形式參數(shù)age對成員變量age進(jìn)行初始化
}
public void study(){
System.out.println(name+“愛學(xué)習(xí)!”);
}
public void introduce(){
//添加代碼,在控制臺輸出“我是X,今年X歲啦!”
}
}
在上述程序中,教師給出了如何定義成員變量“姓名”,啟發(fā)學(xué)生完成定義成員變量“年齡”。在有參構(gòu)造函數(shù)中,教師給出了使用形式參數(shù)name對成員變量name進(jìn)行初始化,啟發(fā)學(xué)生完成使用形式參數(shù)age對成員變量age進(jìn)行初始化。在成員方法中,教師給出了如何定義“學(xué)習(xí)”方法,啟發(fā)學(xué)生完成“自我介紹”方法的定義。在教師的一步步啟發(fā)引導(dǎo)下,學(xué)生完成了整個程序。
定義完學(xué)生類,教師講解如何在測試類中創(chuàng)建學(xué)生對象,并調(diào)用對象的成員方法。測試代碼如下:
public class TestStudent {
public static void main(String[] args) {
Student s1 = new Student(“周密”, 34);
s1.introduce();
}
}
學(xué)生依照教師給出的測試代碼測試學(xué)生類并創(chuàng)建自我對象、調(diào)用“自我介紹”方法,看是否成功輸出自我信息。每個人創(chuàng)建的對象不同,而創(chuàng)建對象的類卻是相同的,很好地說明了類與對象的關(guān)系,即類是模板,對象是模板創(chuàng)建出來的具體實例。教師繼續(xù)讓學(xué)生編寫生活中的類,比如車子、動物等,舉一反三,讓學(xué)生積極思考,自主完成代碼的編寫。加強(qiáng)學(xué)生“從無到有,由淺入深”的學(xué)習(xí)體驗,增強(qiáng)學(xué)生的編程信心,提高學(xué)生的編程能力[3]。
(三)重構(gòu)教學(xué)內(nèi)容,真正做到項目化驅(qū)動
教師不必按照教材順序講授課程內(nèi)容,應(yīng)合理編排和裁剪教學(xué)內(nèi)容,使其更符合高職院校學(xué)生的學(xué)習(xí)規(guī)律[4]。教師可以略講Java編程基礎(chǔ)部分,如基本語法、變量、運算符、三大結(jié)構(gòu)以及數(shù)組等內(nèi)容,重點講解與C語言不同的部分,將整個學(xué)期的教學(xué)重點放在“面向?qū)ο蟆边@一塊。傳統(tǒng)的Java課程教學(xué)是講完三大結(jié)構(gòu)再講解函數(shù),學(xué)生在超三分之一學(xué)期的時間里在主函數(shù)中進(jìn)行控制臺的輸入輸出,這不利于培養(yǎng)學(xué)生的編程習(xí)慣和思想。教師應(yīng)該將“函數(shù)”章節(jié)提前并重點講解,因為它是面向?qū)ο蟮幕A(chǔ),側(cè)重講解函數(shù)的定義、調(diào)用、參數(shù)和返回值,讓學(xué)生牢牢掌握函數(shù)這個工具,建立“封裝和復(fù)用”的編程思想,在以后的教學(xué)中要有意識地將函數(shù)的應(yīng)用貫穿始終,不斷加深學(xué)生印象。
教師應(yīng)對教學(xué)內(nèi)容進(jìn)行重構(gòu),真正做到項目化驅(qū)動。項目的選取內(nèi)容要兼具趣味性和實用性,可引入企業(yè)真實案例,或者各類職業(yè)技能大賽的樣題,再根據(jù)實際情況進(jìn)行適當(dāng)裁剪。以完整項目為載體,將課程內(nèi)容重構(gòu),分解為若干個子項目,子項目可再細(xì)分為若干個任務(wù)。例如,以“基于Java Swing的商品管理系統(tǒng)”項目貫穿教學(xué)全過程,將項目分解為五個子項目,本文以“項目二—商品管理”中的“任務(wù)一—商品添加”為例,該任務(wù)包含的知識點與教學(xué)內(nèi)容見表1。
通過子項目的一步步完成,逐步遞進(jìn)和融合知識結(jié)構(gòu),通過整合項目模塊,讓學(xué)生了解實戰(zhàn)內(nèi)容和步驟,提升程序設(shè)計開發(fā)能力[5]。
(四)強(qiáng)化育人意識,確保課程思政建設(shè)落地落實
教師要充分認(rèn)識到只注重技能傳授而忽視職業(yè)素養(yǎng)培養(yǎng),會阻礙學(xué)生成長與發(fā)展。在專業(yè)課教學(xué)中恰當(dāng)?shù)厝谌胨颊兀芗ぐl(fā)學(xué)生學(xué)好專業(yè)知識、專業(yè)技能的熱情。工科類學(xué)科抽象難懂的知識點通過引入思政元素會變得通俗易懂,這些積極的因素促進(jìn)提高人才培養(yǎng)質(zhì)量。教師要做到思想與行動相統(tǒng)一,積極投身于“課程思政”研究之中,積極參加學(xué)?;蚱渌脚_開展課程思政方面的專題培訓(xùn),學(xué)習(xí)同行課程思政建設(shè)先進(jìn)經(jīng)驗與做法,專業(yè)教研室集體備課討論和建設(shè)“思政元素庫”,建立資源共享機(jī)制?!陡叩葘W(xué)校課程思政建設(shè)指導(dǎo)綱要》指出,工學(xué)類專業(yè)課程要注重強(qiáng)化學(xué)生工程倫理教育,培養(yǎng)學(xué)生精益求精的大國工匠精神,激發(fā)學(xué)生科技報國的家國情懷和使命擔(dān)當(dāng),教師要以綱要為指導(dǎo),充分挖掘所屬學(xué)科的思政元素,軟件技術(shù)教研室對“Java程序設(shè)計”課程進(jìn)行了思政教學(xué)設(shè)計,部分內(nèi)容見表2。
(五)采用多元化考核方式,注重對學(xué)生實踐能力的考核
考核要全面客觀地反映學(xué)生真實水平,將課程評價貫穿于整個教學(xué)過程中,淡化期末考試成績,加大學(xué)生過程性考核的力度,能有效提高學(xué)生的學(xué)習(xí)興趣和學(xué)習(xí)參與度[6]。教師制定考核標(biāo)準(zhǔn),考核指標(biāo)均可量化,開學(xué)之初讓學(xué)生知曉,學(xué)生一開始就知道自己這門課的成績由哪些部分組成,壓力與動力并存。本門課的考核平時占比60%、期末占比40%,側(cè)重于實踐能力考核。平時成績包括課前預(yù)習(xí),如線上瀏覽視頻、主題討論、知識點自測,平臺記錄學(xué)習(xí)情況的數(shù)據(jù);課中的出勤率、課堂參與度;課后的作業(yè)、章節(jié)小案例完成情況等。期末引入真實企業(yè)項目,由小組協(xié)作完成,要求學(xué)生模擬企業(yè)實際工作流程,分工合作完成項目需求分析、概要設(shè)計、詳細(xì)設(shè)計、編碼、測試和部署,以學(xué)生項目答辯的形式進(jìn)行成績評定。此過程提升了學(xué)生團(tuán)隊合作、交流溝通、語言表達(dá)等方面的能力,讓每個學(xué)生都參與進(jìn)來,以學(xué)生帶動學(xué)生,讓每個人都有緊迫感,都去主動學(xué),營造良好的學(xué)習(xí)氛圍。
四、結(jié)語
本文針對“Java程序設(shè)計”課程教學(xué)存在的問題,提出了“正確認(rèn)識課程目標(biāo),上好第一次課、啟發(fā)式教學(xué)增興趣,創(chuàng)設(shè)生活化情境促理解、重構(gòu)教學(xué)內(nèi)容,真正做到項目化驅(qū)動、強(qiáng)化育人意識,確保課程思政建設(shè)落地落實、采用多元化考核方式,注重對學(xué)生實踐能力的考核”等方面的課程教學(xué)改革措施,為未來更完善的課程設(shè)計與改革提供了一定的參考依據(jù)。
參考文獻(xiàn)
[1]彭兵.高職“Java程序設(shè)計”課程教學(xué)的問題分析及對策建議[J].電腦知識與技術(shù),2019,15(16):78-79.
[2]蘇秀芝,匡林愛,劉群.“課程思政”視域下高職“Java程序設(shè)計基礎(chǔ)”教育教學(xué)策略研究[J].電腦與信息技術(shù),2022,30(05):91-93.
[3]歐陽桂秀.提高高職學(xué)生Java語言編程能力的探索和實踐[J].產(chǎn)業(yè)與科技論壇,2019,18(23):200-201.
[4]周密.高職“C語言程序設(shè)計”教學(xué)改革初探[J].科教導(dǎo)刊,2024(14):99-101.
[5]宋錦華.高職院校Java程序設(shè)計課程改革研究[J].科技視界,2022(20):133-135.
[6]張冠蘭.“互聯(lián)網(wǎng)+”背景下高職院校Java實踐課教學(xué)模式的思考[J].職業(yè),2020(35):78-79.
作者單位:長江職業(yè)學(xué)院
責(zé)任編輯:王穎振、楊惠娟