汪 政
(湖南第一師范學(xué)院計(jì)算機(jī)學(xué)院,湖南 長(zhǎng)沙 410205)
計(jì)算機(jī)專(zhuān)業(yè)人才的基本能力之一就是擁有良好的技術(shù)技能。然而,僅靠這些技能通常是不夠的,還需要非技術(shù)技能(如解決問(wèn)題能力、溝通能力等)。一些研究顯示,計(jì)算機(jī)畢業(yè)生與行業(yè)期望之間在技術(shù)和可轉(zhuǎn)移技能方面存在差距。這種差距與傳統(tǒng)教學(xué)中側(cè)重于技術(shù)技能和知識(shí)有關(guān)。所以,我們迫切需要提升計(jì)算機(jī)專(zhuān)業(yè)學(xué)生的非技術(shù)關(guān)鍵能力(關(guān)鍵能力)。我們意識(shí)到關(guān)鍵能力是計(jì)算機(jī)專(zhuān)業(yè)學(xué)生在職業(yè)、工作、社會(huì)和行業(yè)所需技能,我們開(kāi)始改進(jìn)計(jì)算機(jī)科學(xué)專(zhuān)業(yè)的一些課程。通過(guò)研究以項(xiàng)目為中心的綜合教學(xué)方法,來(lái)實(shí)施Java程序設(shè)計(jì)的教學(xué)。
最近的研究解決了行業(yè)要求計(jì)算機(jī)科學(xué)畢業(yè)生具備哪些能力以及能力差距是什么樣的問(wèn)題。例如,軟件工程技能體系(SWEBOS)描述了軟件工程師須具備哪些軟技能。作者將能力分為七類(lèi):①專(zhuān)業(yè)合作能力;②溝通能力;③構(gòu)建自己工作方式的能力;④個(gè)人能力;⑤理解復(fù)雜流程、系統(tǒng)和關(guān)系的能力(問(wèn)題意識(shí));⑥將個(gè)人知識(shí)和技能應(yīng)用于具體和新情況的能力(解決方案能力);⑦其他附加能力。軟件開(kāi)發(fā)的項(xiàng)目包括需求工程、建模、編碼、測(cè)試和交付等活動(dòng),這些活動(dòng)需要密集的溝通。因此,溝通技巧等關(guān)鍵能力對(duì)項(xiàng)目結(jié)果有很大的影響。對(duì)于軟件開(kāi)發(fā)項(xiàng)目的成功而言,關(guān)鍵能力與技術(shù)技能同樣重要。
我們對(duì)多家軟件公司進(jìn)行了回訪,畢業(yè)生缺乏的技能分為以下幾類(lèi):①軟技能;②軟件工程過(guò)程;③計(jì)算機(jī)科學(xué)概念;④軟件工具。在關(guān)鍵能力(例如口頭和書(shū)面溝通、解決問(wèn)題和自我管理的能力)和技術(shù)技能(測(cè)試、工具知識(shí))方面都缺乏特定技能。總體而言,最重要的技能是溝通技巧、團(tuán)隊(duì)合作能力、解決問(wèn)題的能力、計(jì)劃和組織能力、獲取和處理信息的能力,以及分析定量數(shù)據(jù)的能力。此外,還應(yīng)該有人際交往能力、領(lǐng)導(dǎo)力、創(chuàng)造力/創(chuàng)新、動(dòng)機(jī)、職業(yè)道德和靈活性/適應(yīng)性等技能。
大學(xué)被視為IT 行業(yè)專(zhuān)家的培育基地。因此,大學(xué)的一項(xiàng)基本任務(wù)是傳授學(xué)生上述能力。學(xué)科內(nèi)容知識(shí)和能力對(duì)于解決復(fù)雜任務(wù)和專(zhuān)業(yè)工作是必不可少的,不能通過(guò)完善的關(guān)鍵能力來(lái)彌補(bǔ)。計(jì)算機(jī)專(zhuān)業(yè)教學(xué)的挑戰(zhàn)是涵蓋技術(shù)技能和關(guān)鍵能力的需求,同時(shí)需要考慮到學(xué)生學(xué)習(xí)能力的異質(zhì)性。
目前,“Java 程序設(shè)計(jì)”授課常見(jiàn)方法是介紹Java語(yǔ)言基礎(chǔ)知識(shí),剩余的技能,在實(shí)際練習(xí)中指導(dǎo)。這種方法強(qiáng)烈地展示了硬技能而不是關(guān)鍵能力。如何改變傳統(tǒng)的教學(xué)方法,研究同時(shí)涵蓋這兩個(gè)方面的教育方法,是高等教育計(jì)算機(jī)專(zhuān)業(yè)一個(gè)需要解決的重大問(wèn)題。研究目標(biāo)包括:將關(guān)鍵能力的培養(yǎng)納入課堂活動(dòng);加強(qiáng)學(xué)生合作和交流;強(qiáng)調(diào)小組工作和團(tuán)隊(duì)建設(shè)的重要性;要求合作學(xué)習(xí)和同伴教學(xué)相結(jié)合。
以項(xiàng)目為中心的Java 編程綜合教學(xué)方法(CTIRO)的目標(biāo)是解決計(jì)算機(jī)專(zhuān)業(yè)學(xué)生在學(xué)科、方法、社會(huì)和個(gè)人能力的發(fā)展問(wèn)題,是為了教授”Java 程序設(shè)計(jì)”而開(kāi)發(fā)的。CTIRO 是一種綜合教學(xué)方法,整合和結(jié)合以下五種教學(xué)方法:①基于項(xiàng)目情境教學(xué);②基于項(xiàng)目任務(wù)的學(xué)習(xí);③基于項(xiàng)目問(wèn)題的學(xué)習(xí);④基于項(xiàng)目技術(shù)研究的學(xué)習(xí);⑤混合教學(xué)。通過(guò)靈活、多樣的教學(xué)方式來(lái)提升學(xué)生技術(shù)技能和關(guān)鍵能力。
“Java程序設(shè)計(jì)”是計(jì)算機(jī)專(zhuān)業(yè)本科第二學(xué)期學(xué)生的必修課。它需要總共96個(gè)學(xué)生學(xué)習(xí)時(shí)間(48個(gè)教學(xué)時(shí)間、16 個(gè)實(shí)踐課時(shí)和32 個(gè)課程設(shè)計(jì)時(shí)間),并有5 個(gè)學(xué)分。該課程的教學(xué)包括每周進(jìn)行的授課和以實(shí)驗(yàn)室形式進(jìn)行的實(shí)踐練習(xí)。該課程預(yù)期學(xué)習(xí)成果最初僅包含學(xué)科能力:使用算法的能力(基本能力)和分析、設(shè)計(jì)和實(shí)施軟件的能力(軟件開(kāi)發(fā)能力)。CTIRO 的學(xué)習(xí)成果對(duì)關(guān)鍵能力進(jìn)行了擴(kuò)展(參考表1)。表1 中列出的預(yù)期學(xué)習(xí)成果是在2021-2022 年夏季學(xué)期開(kāi)設(shè)課程“Java程序設(shè)計(jì)”的能力目標(biāo)。

表1 在“Java程序設(shè)計(jì)”課程中指定為學(xué)習(xí)成果的能力
為了幫助學(xué)生培養(yǎng)學(xué)科和關(guān)鍵能力,“Java程序設(shè)計(jì)”課程從2021-2022 年夏季學(xué)期開(kāi)始使用CTIRO 教學(xué)方法。除了教學(xué)方法之外,CTIRO 方法還將提供App 工具,可以通過(guò)學(xué)生的自我評(píng)估調(diào)查來(lái)評(píng)估關(guān)鍵能力的發(fā)展。
CTIRO 所有五種教學(xué)方法都用于教學(xué)和學(xué)習(xí)。由于學(xué)科知識(shí)和能力發(fā)展在本課程中非常重要,因此進(jìn)行了概念演繹傳遞的混合教學(xué)。為了培養(yǎng)解決問(wèn)題和分析思維的能力,基于項(xiàng)目任務(wù)的學(xué)習(xí)包含在本課程中。為了提高社會(huì)能力,例如團(tuán)隊(duì)合作和溝通,基于項(xiàng)目問(wèn)題的學(xué)習(xí)被應(yīng)用。為了加強(qiáng)獨(dú)立工作和思考能力,應(yīng)用基于項(xiàng)目技術(shù)研究的學(xué)習(xí)。通過(guò)CTIRO實(shí)現(xiàn)以下目標(biāo):
●重點(diǎn)是基于項(xiàng)目情境的學(xué)習(xí)。學(xué)生通常對(duì)算法有直觀的理解,因?yàn)槿粘I钪芯蜁?huì)遇到算法程序,例如烹飪食譜、玩棋盤(pán)游戲。
●為了在講座中激發(fā)學(xué)生的積極性,采用小組教學(xué)方法。
●為了激勵(lì)和吸引學(xué)生參與學(xué)習(xí)編程必不可少的動(dòng)手活動(dòng)和編程體驗(yàn),在實(shí)驗(yàn)室中應(yīng)用了基于項(xiàng)目任務(wù)的學(xué)習(xí)。
●為了培養(yǎng)社會(huì)和個(gè)人能力并激勵(lì)學(xué)生學(xué)習(xí),基于項(xiàng)目問(wèn)題的學(xué)習(xí)被應(yīng)用于實(shí)驗(yàn)室和自學(xué)。
●為了培養(yǎng)獨(dú)立工作和思考的能力,向?qū)W生提供一項(xiàng)基于研究的任務(wù),要求撰寫(xiě)一份報(bào)告。
與傳統(tǒng)講課教學(xué)相反,首先通過(guò)教授日常生活中的多個(gè)典型示例、任務(wù)和觀察(基于項(xiàng)目情境的學(xué)習(xí))讓學(xué)生對(duì)主題有一個(gè)直觀的理解,通過(guò)歸納將理論知識(shí)主題概念化。這些概念將在教師授課以及學(xué)生在實(shí)驗(yàn)室期間得到驗(yàn)證。
在混合教學(xué)中,將簡(jiǎn)短的概念和理論演示與個(gè)人和小組工作相結(jié)合。例如,提出一個(gè)討論話題或給學(xué)生5 分鐘的簡(jiǎn)短任務(wù),然后在課堂立即討論結(jié)果。在每堂課結(jié)束時(shí),要求學(xué)生以線上調(diào)查問(wèn)卷形式回答以下兩個(gè)開(kāi)放性問(wèn)題:①我在課堂講座中了解到的是什么?②我在課堂講座中沒(méi)有理解的是什么?學(xué)生的反饋將作為調(diào)整授課過(guò)程的依據(jù)。
在實(shí)驗(yàn)室中,學(xué)生單獨(dú)和分組解決由老師給出的問(wèn)題(基于項(xiàng)目任務(wù)的學(xué)習(xí))。在解決問(wèn)題的活動(dòng)中,學(xué)生獲得對(duì)該主題的概念性理解,學(xué)習(xí)所需的理論,并將兩者應(yīng)用于解決具體問(wèn)題。
在學(xué)生獲得一些編程背景知識(shí)和技能后開(kāi)始基于項(xiàng)目問(wèn)題的學(xué)習(xí)(第五周),并取代之前在實(shí)驗(yàn)室練習(xí)解決問(wèn)題的活動(dòng)。學(xué)生需要以2-3人為一組解決兩個(gè)項(xiàng)目問(wèn)題。這些問(wèn)題是學(xué)生在基于項(xiàng)目任務(wù)的活動(dòng)中自己制定和解決的。學(xué)生自行組織工作組,組織的原則是確保一個(gè)具有較多編程經(jīng)驗(yàn)的人在組中,確保組中的每個(gè)人都積極參與。結(jié)對(duì)教學(xué)方法的結(jié)合對(duì)社會(huì)能力的培養(yǎng)起到積極的作用。
在基于項(xiàng)目技術(shù)研究的學(xué)習(xí)中,學(xué)生們接受一項(xiàng)無(wú)需編程的任務(wù)。在這個(gè)任務(wù)中,學(xué)生應(yīng)該研究對(duì)象管理和對(duì)象的生命周期是如何在Java中完成的。他們需要考慮對(duì)象的創(chuàng)建、對(duì)象的生命周期和放棄等問(wèn)題,并在合適的地方使用插圖和代碼示例編寫(xiě)技術(shù)文檔。
除了教學(xué)方法之外,CTIRO 方法還將提供一種評(píng)估發(fā)展關(guān)鍵能力的App。自我評(píng)估調(diào)查表App是基于學(xué)生對(duì)其自身能力的看法和評(píng)估。要求學(xué)生使用李克特5 點(diǎn)量表評(píng)估課程:“5-同意,4-傾向于同意,3-中立,2-傾向于不同意,1-不同意”。所有課程參與者都需回答問(wèn)卷。例如,問(wèn)卷“我有動(dòng)力參加這門(mén)課程”的平均得分為4.3。“我可以應(yīng)用該學(xué)科的基本理論知識(shí)和實(shí)踐技能”這一陳述的平均分是4.1,“在這門(mén)課程中我被鼓勵(lì)發(fā)展自己的學(xué)習(xí)技能”這句話的平均值是4.0。這次評(píng)估的結(jié)果符合我們的預(yù)期。
在“Java 程序設(shè)計(jì)”課程教學(xué)中使用CTIRO 的目的首先是讓學(xué)生直觀地了解同時(shí)具備學(xué)科能力和關(guān)鍵能力的重要性,其次是讓學(xué)生處于有效學(xué)習(xí)的境地。到目前為止,這些教學(xué)改革的結(jié)果符合預(yù)期。
在這項(xiàng)工作在當(dāng)前狀態(tài)下,由于相對(duì)復(fù)雜的項(xiàng)目和教授新東西的快速進(jìn)展,可能會(huì)引起批判性討論。例如,當(dāng)作為編程新手的學(xué)生聚集在一起開(kāi)發(fā)復(fù)雜的程序(如彩票游戲或壟斷)時(shí),他們很容易不知所措。太困難的任務(wù)會(huì)導(dǎo)致沮喪,并對(duì)動(dòng)機(jī)和學(xué)習(xí)成果產(chǎn)生負(fù)面影響。然而,經(jīng)驗(yàn)告訴我們,情況并非如此。學(xué)生的積極性高,討論的很熱烈,掌握情況良好。
小組作業(yè)并不適合所有學(xué)生,例如,一名學(xué)生因?yàn)樽蚤]癥而不想?yún)⒓有〗M作業(yè)。出于這個(gè)原因,我們?cè)试S他獨(dú)自完成項(xiàng)目。這個(gè)學(xué)生沒(méi)有達(dá)到主要目標(biāo),即在小組工作中獲得經(jīng)驗(yàn),然而在學(xué)期結(jié)束,他的關(guān)鍵能力得到了提升,自閉癥也得到改善。
CTIRO 教學(xué)方法在“Java 程序設(shè)計(jì)”課程教學(xué)中提高了教師的教學(xué)效率和質(zhì)量,可以激發(fā)學(xué)生的學(xué)習(xí)積極性,讓學(xué)生產(chǎn)生學(xué)習(xí)興趣。該方法有助于學(xué)生自主學(xué)習(xí)能力、探究能力和創(chuàng)新能力的提高,提升了學(xué)生的關(guān)鍵能力,是一種有效的、值得推廣的教學(xué)方法。