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