李小智 劉偉 丁長(zhǎng)松



摘? 要: 針對(duì)目前Java程序設(shè)計(jì)課程本科教學(xué)存在的普遍問(wèn)題,提出以能力為導(dǎo)向的教學(xué)模式。進(jìn)一步明確課程的能力培養(yǎng)目標(biāo),構(gòu)建課程多層次能力模型,細(xì)化教學(xué)內(nèi)容和能力培養(yǎng)的對(duì)應(yīng)關(guān)系,采取多種教學(xué)措施,并介紹實(shí)施過(guò)程,說(shuō)明教學(xué)效果。
關(guān)鍵詞: Java程序設(shè)計(jì); 教學(xué)模式; 培養(yǎng)目標(biāo); 能力模型
中圖分類號(hào):G642? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ?文章編號(hào):1006-8228(2020)04-81-04
Teaching practice of Java programming course for multi-level ability cultivation
Li Xiaozhi, Liu Wei, Ding Changsong
(Hunan University of Chinese Medicine School of Informatics, Hunan, Changsha 410208, China)
Abstract: Aiming at the common problems in the undergraduate teaching of Java programming course, this paper proposes a ability oriented teaching mode to further clarify the ability training objective of the course, build a multi-level ability model of the course, refine the corresponding relationship between teaching content and ability training, and take a variety of teaching measures. It introduces the implementation process and shows the teaching effect.
Key words: Java programming; teaching mode; training objective; ability model
0 引言
隨著大數(shù)據(jù)、云計(jì)算、人工智能、移動(dòng)互聯(lián)網(wǎng)等新信息技術(shù)的不斷發(fā)展,計(jì)算機(jī)應(yīng)用型人才的社會(huì)需求量逐年增加。應(yīng)用型高校作為培養(yǎng)計(jì)算機(jī)應(yīng)用型人才的主陣地,以新工科建設(shè)為契機(jī),注重社會(huì)需求導(dǎo)向作用,積極采取各種措施推動(dòng)教學(xué)改革,提高人才培養(yǎng)的質(zhì)量和速度。程序設(shè)計(jì)能力是計(jì)算機(jī)應(yīng)用型人才的基本能力之一,如何提高程序設(shè)計(jì)課程的教學(xué)質(zhì)量是各高校計(jì)算機(jī)專業(yè)進(jìn)行教學(xué)改革的重點(diǎn)內(nèi)容。
Java程序設(shè)計(jì)是計(jì)算機(jī)類專業(yè)基礎(chǔ)核心課程,教學(xué)目標(biāo)主要有三個(gè):知識(shí)目標(biāo)、思維目標(biāo)、能力目標(biāo)[1]。目前,該課程的本科教學(xué)存在普遍問(wèn)題,重視知識(shí)目標(biāo),而思維目標(biāo)和能力目標(biāo)由于缺乏有效評(píng)價(jià)機(jī)制,并沒(méi)有受到足夠重視。教學(xué)以教師為主,以課堂為中心,采用“理論+實(shí)驗(yàn)”方式,教學(xué)模式陳舊,教學(xué)效率不高。教學(xué)過(guò)程中學(xué)生主體作用沒(méi)有得到充分體現(xiàn),學(xué)生只是按照要求完成學(xué)習(xí)任務(wù),自主學(xué)習(xí)能力較弱,創(chuàng)新能力極度缺乏[2]。因此,Java程序設(shè)計(jì)課程教學(xué)需擺脫以知識(shí)傳授為主的教學(xué)慣性,實(shí)施以能力為導(dǎo)向的課程教學(xué),采用靈活多樣的教學(xué)方式,培養(yǎng)學(xué)生包括編程能力在內(nèi)的多層次能力,來(lái)與新工科建設(shè)人才培養(yǎng)目標(biāo)高度契合。
1 能力培養(yǎng)目標(biāo)
1.1 學(xué)習(xí)能力
受傳統(tǒng)學(xué)習(xí)模式影響,大學(xué)生早已習(xí)慣了所學(xué)知識(shí)來(lái)源于教材、課堂和教師[3],學(xué)習(xí)的目的大都是為了完成老師布置的作業(yè)和通過(guò)考試,是一種他主學(xué)習(xí)行為,對(duì)課程知識(shí)的探究并沒(méi)有真正成為學(xué)習(xí)內(nèi)在驅(qū)動(dòng)力,不能滿足Java語(yǔ)言學(xué)習(xí)的要求。Java知識(shí)點(diǎn)多,版本更新快,特別是第三方組件豐富,要求學(xué)生要有很強(qiáng)的自主學(xué)習(xí)能力。因此,教師在教學(xué)過(guò)程中,不僅要研究“如何教”,更重要的是積極引導(dǎo)學(xué)生“如何學(xué)”,要充分調(diào)動(dòng)學(xué)生的主觀能動(dòng)性,引導(dǎo)學(xué)生發(fā)現(xiàn)問(wèn)題、探索問(wèn)題、解決問(wèn)題,有利于在知識(shí)的廣度上拓展和深度上挖掘,來(lái)彌補(bǔ)課堂傳授知識(shí)的局限性。培養(yǎng)自主學(xué)習(xí)能力,增強(qiáng)終身學(xué)習(xí)意識(shí),是能力培養(yǎng)最根本目標(biāo)。特別是在畢業(yè)后走上開(kāi)發(fā)類崗位,面對(duì)新技術(shù)的出現(xiàn)和新工具的使用,要能勝任工作,不斷學(xué)習(xí)和適應(yīng)發(fā)展的能力尤為重要。
1.2 計(jì)算思維能力
計(jì)算思維是以計(jì)算機(jī)科學(xué)的基礎(chǔ)概念充分運(yùn)用為基礎(chǔ),通過(guò)將問(wèn)題和解決方法抽象處理而實(shí)現(xiàn)問(wèn)題解決的思維過(guò)程[4]。計(jì)算思維是對(duì)客觀問(wèn)題的另一種描述,把現(xiàn)實(shí)世界問(wèn)題轉(zhuǎn)化為計(jì)算機(jī)領(lǐng)域問(wèn)題,其核心就是解決問(wèn)題。在傳統(tǒng)Java教學(xué)過(guò)程中,由于受到各種教學(xué)因素的制約,主要偏重Java語(yǔ)言本身知識(shí)講授,將語(yǔ)言的應(yīng)用交給其他課程以及學(xué)生本身,而相關(guān)課程交叉融合不夠,學(xué)生缺乏對(duì)計(jì)算思維的訓(xùn)練,導(dǎo)致在解決實(shí)際問(wèn)題時(shí)顯得力不從心。計(jì)算思維主要從抽象、算法、歸納、分解、評(píng)價(jià)這五個(gè)方面來(lái)體現(xiàn)和實(shí)現(xiàn),因此在教學(xué)活動(dòng)中,教師根據(jù)不同階段的教學(xué)要求,創(chuàng)設(shè)相應(yīng)的問(wèn)題情境,分步遞進(jìn)式引導(dǎo),學(xué)生在解決問(wèn)題過(guò)程中完成抽象建模、算法設(shè)計(jì)、編碼實(shí)現(xiàn)、系統(tǒng)測(cè)試等一系列過(guò)程,達(dá)到計(jì)算思維能力培養(yǎng)的目標(biāo)。
1.3 工程實(shí)踐能力
培養(yǎng)學(xué)生的工程實(shí)踐能力為滿足軟件行業(yè)發(fā)展對(duì)應(yīng)用型和技能型人才的需要,工程實(shí)踐能力不僅是能熟練寫(xiě)出代碼,還包括編碼的規(guī)范、軟件設(shè)計(jì)模式的應(yīng)用、各種主流技術(shù)框架和開(kāi)發(fā)工具的使用以及項(xiàng)目文檔撰寫(xiě)能力等。提升學(xué)生工程實(shí)踐能力,有效解決高校教學(xué)與企業(yè)需求脫節(jié)的問(wèn)題,有利于企業(yè)降低用人成本。
1.4 團(tuán)隊(duì)協(xié)作能力
一個(gè)軟件項(xiàng)目開(kāi)發(fā)團(tuán)隊(duì)由多人組成,其中個(gè)人能力不盡相同,成員之間相互尊重,平等交流,互補(bǔ)互助,才能形成合力,最大程度地提高工作效率。團(tuán)隊(duì)要?jiǎng)?chuàng)造條件讓每位成員能在合作中充分展現(xiàn)各自的長(zhǎng)處,體現(xiàn)自我價(jià)值,這樣才能有存在感和獲得感。優(yōu)秀的表達(dá)溝通能力在團(tuán)隊(duì)中非常重要,如遇到技術(shù)及各種管理問(wèn)題,需要成員之間、師生之間有效的表達(dá)與溝通。
1.5 創(chuàng)新能力
創(chuàng)新能力是一種高級(jí)別能力,在解決具體問(wèn)題時(shí),不固守已有的方法或模式,敢于突破常規(guī)或者另辟蹊徑。Java編程解決具體問(wèn)題,核心是設(shè)計(jì)算法,學(xué)生上機(jī)實(shí)驗(yàn)、完成作業(yè)、課程設(shè)計(jì),可以通過(guò)師生交流、相互討論、上網(wǎng)查詢等各種途徑獲取大量信息和參考資料,學(xué)習(xí)過(guò)程中不能被已有的算法限制了思維,要能分析對(duì)比、深入思考,要能敢于提出自己的見(jiàn)解。這種學(xué)習(xí)上的創(chuàng)新,會(huì)延伸到工作上的創(chuàng)新,在“互聯(lián)網(wǎng)+”背景下,信息技術(shù)在各行業(yè)的應(yīng)用,只有具備了創(chuàng)新能力才能創(chuàng)造出更大的價(jià)值。
Java語(yǔ)言教學(xué)培養(yǎng)的各方面能力,學(xué)習(xí)能力是基礎(chǔ)能力,是培養(yǎng)其他各方面能力的基本條件,編程能力、計(jì)算思維能力、工程實(shí)踐能力是專業(yè)能力,是課程教學(xué)能力培養(yǎng)的重點(diǎn),創(chuàng)新能力是具備創(chuàng)新意識(shí)的前提下,在實(shí)踐過(guò)程獲得的高層次能力,團(tuán)隊(duì)協(xié)作能力是一個(gè)軟件項(xiàng)目有序進(jìn)行的保障。課程培養(yǎng)各能力層次模型如圖1所示。
Java課程內(nèi)容(部分)與能力培養(yǎng)目標(biāo)關(guān)系如表1所示。不同的學(xué)習(xí)內(nèi)容和學(xué)習(xí)階段,能力培養(yǎng)并沒(méi)有明顯界限,只是側(cè)重點(diǎn)有所不同。
2 教學(xué)措施
2.1 調(diào)整培養(yǎng)方案,增加實(shí)踐課時(shí)
以筆者所在學(xué)院的計(jì)算機(jī)與科學(xué)技術(shù)專業(yè)為例,原有的培養(yǎng)方案基于課程內(nèi)容多,知識(shí)點(diǎn)繁雜考慮,理論課時(shí)相對(duì)偏多,總課時(shí)54課時(shí),理論課36課時(shí),占比為66.7%,實(shí)踐課18課時(shí),占比僅為33.3%。修改后的培養(yǎng)方案總課時(shí)64課時(shí),理論課36課時(shí),占比為56.2%,實(shí)踐課28課時(shí),占比為43.8%。實(shí)踐課時(shí)的增加更符合工程實(shí)踐類課程的教學(xué)需求,教師能安排更多實(shí)驗(yàn)內(nèi)容,更能準(zhǔn)確掌握學(xué)生的學(xué)習(xí)情況,同時(shí)學(xué)生能得到更多老師親臨指導(dǎo)的機(jī)會(huì)。運(yùn)用“做中學(xué)”的教學(xué)理念[5],將部分理論知識(shí)結(jié)合上機(jī)實(shí)驗(yàn)進(jìn)行講解,采用理論與實(shí)踐相結(jié)合的方式,較好地解決了課時(shí)不夠問(wèn)題。
2.2 設(shè)問(wèn)探究,強(qiáng)化自學(xué)能力
適當(dāng)引導(dǎo),合理設(shè)問(wèn),可以充分激發(fā)學(xué)生的求知欲和學(xué)習(xí)的主動(dòng)性,學(xué)生在問(wèn)題求解過(guò)程中,查閱各種資料,利用網(wǎng)絡(luò)資源,如在線視頻、技術(shù)博客、技術(shù)論壇等獲取大量信息,對(duì)這些信息進(jìn)行分析比較、歸納總結(jié),有利于提升學(xué)生的自主學(xué)習(xí)能力。如講數(shù)組時(shí),提出問(wèn)題:如何利用數(shù)組編程解決約瑟夫問(wèn)題,除了數(shù)組以外還有哪些解決方法?又如,C語(yǔ)言作為Java語(yǔ)言的前置課程,兩種語(yǔ)言基本語(yǔ)法有很大的相似性,講授Java基本語(yǔ)法知識(shí)時(shí)采用了翻轉(zhuǎn)課堂開(kāi)展教學(xué)[6],課前提出問(wèn)題:兩種語(yǔ)言基本語(yǔ)法異同比較,要求學(xué)生分組討論制作PPT,課中學(xué)生匯報(bào)學(xué)習(xí)成果,師生互動(dòng)答疑,課后總結(jié)。
2.3 項(xiàng)目驅(qū)動(dòng),提升動(dòng)手能力
上機(jī)實(shí)驗(yàn)是為掌握課程知識(shí)點(diǎn)而設(shè)計(jì)的驗(yàn)證型或探究型實(shí)驗(yàn),是培養(yǎng)學(xué)生編程能力的主要教學(xué)手段之一。但是各實(shí)驗(yàn)內(nèi)容相對(duì)獨(dú)立,缺乏整體性和系統(tǒng)性,結(jié)果呈現(xiàn)并不直觀。課程設(shè)計(jì)以項(xiàng)目驅(qū)動(dòng)方式進(jìn)行,要求學(xué)生分組完成某一軟件系統(tǒng)的開(kāi)發(fā),考核重點(diǎn)是運(yùn)用所學(xué)知識(shí),完成系統(tǒng)功能編碼。在講解完Swing組件使用后,發(fā)布四個(gè)項(xiàng)目:圖書(shū)管理系統(tǒng)、坦克大戰(zhàn)、連連看、網(wǎng)絡(luò)五子棋,提供項(xiàng)目需求文檔,引導(dǎo)學(xué)生自愿組隊(duì),自由選題,利用課余時(shí)間開(kāi)發(fā)。開(kāi)發(fā)與后續(xù)日常教學(xué)同步進(jìn)行,每個(gè)小組每周提交開(kāi)發(fā)進(jìn)度表,教師及時(shí)掌握各組開(kāi)發(fā)情況。期末進(jìn)行項(xiàng)目答辯,每組派出一名成員匯報(bào)演示,演示完畢后,其他組的同學(xué)和老師進(jìn)行提問(wèn),每組選一名代表和老師共同組成評(píng)委團(tuán),評(píng)委根據(jù)現(xiàn)場(chǎng)答辯和項(xiàng)目演示,結(jié)合平時(shí)開(kāi)發(fā)情況進(jìn)行打分。
2.4 校企合作、協(xié)同育人
高校專職教師不是一線開(kāi)發(fā)人員,對(duì)行業(yè)的技術(shù)發(fā)展和市場(chǎng)對(duì)人才的需求并不是十分了解,教學(xué)與市場(chǎng)需求存在脫節(jié)問(wèn)題,校企合作能較好地解決這一問(wèn)題。合作企業(yè)全程參與工程實(shí)訓(xùn)環(huán)節(jié),包括實(shí)訓(xùn)內(nèi)容的安排,實(shí)訓(xùn)計(jì)劃制定,實(shí)訓(xùn)結(jié)果的考核等,企業(yè)派出有經(jīng)驗(yàn)的軟件工程師負(fù)責(zé)工程實(shí)訓(xùn)的具體實(shí)施,實(shí)訓(xùn)內(nèi)容為實(shí)際項(xiàng)目的開(kāi)發(fā),使用當(dāng)前主流的開(kāi)發(fā)工具和軟件技術(shù),過(guò)程管理完全按照軟件工程規(guī)范進(jìn)行。為了不占用常規(guī)教學(xué)時(shí)間,安排在期末考試后的一周時(shí)間,進(jìn)行全天封閉式集訓(xùn),讓學(xué)生提前感受工作氛圍,培養(yǎng)團(tuán)隊(duì)協(xié)作能力,鍛煉溝通表達(dá)等軟技能。
2.5 改變考核方式,注重過(guò)程性評(píng)價(jià)
Java程序設(shè)計(jì)課程的核心目標(biāo)是培養(yǎng)學(xué)生的計(jì)算思維能力,以Java語(yǔ)言為工具編寫(xiě)程序解決實(shí)際問(wèn)題。動(dòng)手實(shí)踐能力是考核的重點(diǎn),注重平時(shí)作業(yè)、上機(jī)實(shí)驗(yàn)、課程設(shè)計(jì)等過(guò)程性評(píng)價(jià)。教改前課程綜合成績(jī)由期末卷面成績(jī)、課后作業(yè)、上機(jī)實(shí)驗(yàn)三部分構(gòu)成,比例分別為:70%、15%、15%,教改后增加課程設(shè)計(jì)評(píng)分環(huán)節(jié),綜合成績(jī)由期末卷面成績(jī)、平時(shí)成績(jī)(課后作業(yè)和上機(jī)實(shí)驗(yàn))、課程設(shè)計(jì)三部分構(gòu)成,比例分別為50%,20%,30%??己朔绞降恼{(diào)整改變了期末臨時(shí)突擊復(fù)習(xí)就可通過(guò)考核的情況,避免了“高分低能”。
3 教學(xué)效果
培養(yǎng)目標(biāo)的進(jìn)一步強(qiáng)化,教學(xué)和考核方式的調(diào)整,這些都得到了學(xué)生的認(rèn)可。從學(xué)校教務(wù)系統(tǒng)網(wǎng)上評(píng)教的結(jié)果看,滿意率在95%以上,學(xué)生普遍反映要拿學(xué)分“更難了”,同時(shí)也認(rèn)為編程能力有了很大進(jìn)步。期末結(jié)束,通過(guò)自己的努力看到正常運(yùn)行的程序,心理上增添了一份專業(yè)自信。期末考試卷面成績(jī)的合格率、優(yōu)秀率較以往還有提高。在課程設(shè)計(jì)環(huán)節(jié),所有小組都完成了基本功能的開(kāi)發(fā),其中不乏亮點(diǎn),選擇“坦克大戰(zhàn)”桌面游戲的一個(gè)小組,功能上做得更豐富,擴(kuò)展了地圖功能,實(shí)現(xiàn)了自定義地圖的圖形化操作,界面如圖2。選擇“網(wǎng)絡(luò)五子棋”的小組,自學(xué)套接字編程實(shí)現(xiàn)網(wǎng)絡(luò)通信功能,界面如圖3。
工程實(shí)訓(xùn)考核結(jié)果優(yōu)秀率將近30%,學(xué)生參加各類比賽積極性更高,2019年學(xué)院在讀大二、大三年級(jí)學(xué)生組隊(duì)參加各類比賽,獲國(guó)家級(jí)獎(jiǎng)項(xiàng)4項(xiàng),省級(jí)獎(jiǎng)項(xiàng)6項(xiàng)。以能力培養(yǎng)為導(dǎo)向的Java程序設(shè)計(jì)教學(xué)改革,學(xué)生的綜合實(shí)踐能力得到很大的提升。
4 結(jié)束語(yǔ)
面向多層次能力培養(yǎng)的Java程序設(shè)計(jì)課程教學(xué)模式符合工程實(shí)踐類課程本身特點(diǎn),針對(duì)不同的教學(xué)內(nèi)容和教學(xué)階段,運(yùn)用不同的教學(xué)手段,達(dá)到不同的能力培養(yǎng)要求,體現(xiàn)了“寬基礎(chǔ)、重實(shí)踐、高素質(zhì)、強(qiáng)能力”的人才培養(yǎng)理念。良好的教學(xué)效果堅(jiān)定了教學(xué)改革的方向,教學(xué)措施在具體實(shí)施過(guò)程中還需要不斷細(xì)化和調(diào)整。改革對(duì)授課教師、學(xué)生和教學(xué)軟硬件環(huán)境提出了更高的要求。接下來(lái)將在以下幾方面進(jìn)一步探索:本課程與其他相關(guān)課程滲透融合,教師掌控多樣化教學(xué)方式的能力提升,校企深度合作等。
參考文獻(xiàn)(References):
[1] 諶衛(wèi)軍.Java程序設(shè)計(jì)課程教學(xué)實(shí)踐[J].計(jì)算機(jī)教育,2019.7:23-28
[2] 任馨,張群燕.基于案例驅(qū)動(dòng)模式的程序設(shè)計(jì)基礎(chǔ)教學(xué)改革[J].計(jì)算機(jī)時(shí)代,2017.8:73-76
[3] 蔡美玲,張錦,張麗霞.焦聚能力培養(yǎng)的程序設(shè)計(jì)基礎(chǔ)課程教學(xué)改革[J].計(jì)算機(jī)教育,2019.8:59-63
[4] 張勇,董俊慶,徐秋月.多維度編程思維訓(xùn)練研究[J]:忻州師范學(xué)院學(xué)報(bào),2018.34(5):103-106
[5] 張錦,蔡美玲,楊曉春等.基于課程群的項(xiàng)目式軟件工程課程教學(xué)模式[J].計(jì)算機(jī)教育,2019.8:45-50
[6] 壽周翔,王李冬,李文娟等.翻轉(zhuǎn)課堂教學(xué)模式在Java程序設(shè)計(jì)課中的應(yīng)用研究[J].計(jì)算機(jī)時(shí)代,2016.10:83-86