白茹意 郭小英 賈春花
(山西大學(xué)自動化與軟件學(xué)院,太原 030006)
在我國信息化建設(shè)突飛猛進(jìn)的今天,大數(shù)據(jù)、5G技術(shù)、“互聯(lián)網(wǎng)+”、城市大腦等都顯示著未來是人工智能時代,同時也讓軟件工程專業(yè)越來越顯示出其重要性。軟件產(chǎn)業(yè)的發(fā)展程度決定了一個國家信息產(chǎn)業(yè)的發(fā)展水平及其在國際市場上的綜合競爭力。在教育部2017年新的工程建設(shè)規(guī)劃中,具有較強(qiáng)工程實(shí)踐能力和創(chuàng)新思維能力、能夠滿足產(chǎn)業(yè)發(fā)展需要被確定為培養(yǎng)高校工程人才的基本條件[1]。與此同時,新工科建設(shè)賦予了軟件工程專業(yè)鮮明的目標(biāo)和定位,即深化教學(xué)改革、產(chǎn)學(xué)合作、實(shí)現(xiàn)人才本位辦學(xué)體系[2],培養(yǎng)精英型軟件工程人才。軟件工程在信息時代中處于核心技術(shù)地位,在各個工科專業(yè)中都起著推動作用?!靶鹿た啤杯h(huán)境下軟件工程應(yīng)重視與其他工科專業(yè)之間的交叉和整合,以實(shí)現(xiàn)傳統(tǒng)工科的智能化和信息化??梢姡谶@種形勢下,軟件工程專業(yè)更需要培養(yǎng)基礎(chǔ)知識扎實(shí)、工程能力強(qiáng)的軟件工程復(fù)合型人才。然而,我國高水平軟件人才的稀缺已經(jīng)逐漸制約著軟件產(chǎn)業(yè)的發(fā)展速度。高校是培養(yǎng)軟件工程人才的主要陣地,培養(yǎng)高素質(zhì)軟件工程人才,適應(yīng)新工科發(fā)展要求,滿足軟件產(chǎn)業(yè)發(fā)展需要,已經(jīng)成為高校以及我國信息化產(chǎn)業(yè)發(fā)展的核心工作。具有高素質(zhì)創(chuàng)新能力的軟件工程人才的培養(yǎng),離不開高校軟件工程專業(yè)的改革發(fā)展??梢?,對軟件工程專業(yè)課程進(jìn)行教學(xué)改革勢在必行[3]。
我國教育部于2018年頒布了《普通高等學(xué)校本科專業(yè)類教學(xué)質(zhì)量國家標(biāo)準(zhǔn)》(以下簡稱《標(biāo)準(zhǔn)》)[4],《標(biāo)準(zhǔn)》所秉承的教育理念是“以生為本”“成果導(dǎo)向”“持續(xù)改進(jìn)”等。其中,OBE-CDIO工程教育模式在培養(yǎng)應(yīng)用型人才方面符合我國應(yīng)用型人才培養(yǎng)理念。OBE教育理念[5]的全稱是Outcome-based Education,可以翻譯為“成果導(dǎo)向教育”“能力導(dǎo)向教育”“目標(biāo)導(dǎo)向教育”或者“需求導(dǎo)向教育”。這種理念的核心是專注學(xué)生的學(xué)習(xí)能力,學(xué)生的學(xué)習(xí)成果是通過教學(xué)過程中的教學(xué)設(shè)計與實(shí)施獲得的。CDIO工程模式是實(shí)施OBE的最好方式。CDIO[6]包含構(gòu)思(conceive),設(shè)計(design),實(shí)現(xiàn)(implement)和運(yùn)作(operate)四個部分。CDIO使學(xué)生積極參與到項(xiàng)目流程(構(gòu)思→設(shè)計→實(shí)現(xiàn)→運(yùn)作)中,在掌握理論知識的同時還能提高學(xué)生的分析、理解和動手能力,培養(yǎng)創(chuàng)新意識??傊?,OBE-CDIO教育理念[7]倡導(dǎo)以學(xué)生為本,以培養(yǎng)目標(biāo)與畢業(yè)要求為指導(dǎo),逆向改革課程的教學(xué)目標(biāo)、內(nèi)容、方法與評價模式。這種教學(xué)模式更加凸顯學(xué)生的學(xué)習(xí)主體地位,更加注重學(xué)生學(xué)習(xí)后獲得的各種能力,有助于培養(yǎng)創(chuàng)新型、應(yīng)用型和復(fù)合型人才的目標(biāo)的實(shí)現(xiàn)。
山西大學(xué)是“雙一流”建設(shè)高校,而且學(xué)院軟件工程專業(yè)是國家級一流本科專業(yè)建設(shè)點(diǎn),這對專業(yè)課程改革提出了更高的要求。C++程序設(shè)計[8-9]作為學(xué)院軟件工程專業(yè)大學(xué)一年級的專業(yè)核心課之一,它具有面向過程和面向?qū)ο蟮碾p重編程思想,操作性要求比較高,整個課程體系與專業(yè)基礎(chǔ)教學(xué)及專業(yè)核心能力培養(yǎng)相銜接,是后續(xù)一些專業(yè)核心課程(數(shù)據(jù)結(jié)構(gòu)與算法、操作系統(tǒng)等)的重要選修課程。該課程的目標(biāo)在于培養(yǎng)學(xué)生閱讀、重寫、設(shè)計、編寫、調(diào)試程序等基本技能,發(fā)展學(xué)生的計算思維,培養(yǎng)程序設(shè)計思想,提高其實(shí)際動手編程的能力及完成復(fù)雜項(xiàng)目的能力、團(tuán)隊(duì)合作以及創(chuàng)新能力。
為了適應(yīng)新工科背景下高素質(zhì)軟件工程人才培養(yǎng)目標(biāo),立足于本課程實(shí)踐性較強(qiáng)、學(xué)生數(shù)量眾多以及思政建設(shè)不足的現(xiàn)實(shí),采取“OBE-CDIO工程教育模式”作為改革方案,在人才培養(yǎng)目標(biāo)、教學(xué)內(nèi)容、教學(xué)實(shí)施、教學(xué)設(shè)計以及考核方式等方面進(jìn)行了教學(xué)改革與實(shí)踐,增強(qiáng)了軟件工程專業(yè)學(xué)生對知識的理解和運(yùn)用能力以及對復(fù)雜工程的處理能力,使其能夠適應(yīng)未來新科技產(chǎn)業(yè)以及新軟件發(fā)展對人才培養(yǎng)的要求。
近些年,學(xué)院對C++程序設(shè)計課程的教學(xué)模式與方法已經(jīng)進(jìn)行了一些改革,但仍存在如下問題。
C++程序設(shè)計是軟件工程專業(yè)一門融理論和實(shí)踐于一體的課程,是訓(xùn)練學(xué)生計算思維的專業(yè)基礎(chǔ)課。目前,對教學(xué)內(nèi)容的重構(gòu)依賴于教材的章節(jié)設(shè)置,按照知識點(diǎn)的關(guān)聯(lián)性進(jìn)行組合與調(diào)整,強(qiáng)調(diào)程序設(shè)計語言知識,根據(jù)不同單元和階段的目標(biāo)對教學(xué)內(nèi)容進(jìn)行重新構(gòu)建。這些改革措施實(shí)現(xiàn)了知識點(diǎn)的縱向聚類,使學(xué)生能很好地把握教學(xué)重點(diǎn)和難點(diǎn),但卻沒有從學(xué)生需要提升的不同能力出發(fā),考慮不同能力對應(yīng)的不同知識點(diǎn)。這就使學(xué)生在運(yùn)用相關(guān)知識解決實(shí)際問題的過程中,無法明確自己的素質(zhì)目標(biāo)和思政目標(biāo)。
當(dāng)前,教學(xué)資源建設(shè)的重點(diǎn)是理論課程的教學(xué)大綱和教學(xué)設(shè)計兩個基礎(chǔ)環(huán)節(jié)。但對本課程的實(shí)踐部分,多以糾錯性、驗(yàn)證性及少數(shù)設(shè)計性實(shí)驗(yàn)為主,缺乏大型綜合性實(shí)驗(yàn)案例。實(shí)驗(yàn)案例的更新速度比較慢,沒有及時關(guān)注現(xiàn)實(shí)社會生產(chǎn)與時事要點(diǎn)。設(shè)計性實(shí)驗(yàn)雖然可以提高學(xué)生解決實(shí)際問題的能力和獨(dú)立思考能力,但是缺乏對學(xué)生團(tuán)隊(duì)合作能力和創(chuàng)新能力的培養(yǎng)。
本課程作為一門軟件工程專業(yè)的基礎(chǔ)課,在近些年的改革中,始終采用以學(xué)生為中心,教師為輔助,線上線下混合的教學(xué)模式。此模式在一定程度上能夠激發(fā)學(xué)生的學(xué)習(xí)興趣和自主學(xué)習(xí)能力。但是,在課堂實(shí)施過程中并沒有完全貼合新工科建設(shè)要求的“工程教育”理念。要培養(yǎng)高素質(zhì)應(yīng)用型軟件工程人才,就要按照“工程教育”的思想構(gòu)建教學(xué)模式,以項(xiàng)目開發(fā)為驅(qū)動,提高學(xué)生使用“工程”思想解決復(fù)雜問題的能力,增強(qiáng)學(xué)生對新問題的探究意識。
目前,本課程的考核是根據(jù)期末理論考試、實(shí)驗(yàn)成績、平時表現(xiàn)等指標(biāo)按一定的比例計算綜合成績。雖然這種考核方式中包含了學(xué)生的平時表現(xiàn),能一定程度上體現(xiàn)學(xué)生平時的學(xué)習(xí)狀況,但是在整個考核過程中的占比不高。因此,教師不能動態(tài)地把握學(xué)生在學(xué)習(xí)過程中出現(xiàn)的各種問題,容易忽視學(xué)生應(yīng)用新知識新技術(shù)的能力、溝通能力、協(xié)作能力以及創(chuàng)新能力等方面的培養(yǎng)。
在思政教育理念不斷引入的背景下,思政元素逐漸被納入本課程的教學(xué)之中。但是,目前思政元素挖掘尚不深入,案例設(shè)計不夠全面,時效性不夠強(qiáng),思政內(nèi)容并未更加深入和全面地融入教學(xué)過程中的每一個環(huán)節(jié)。
OBE理念強(qiáng)調(diào)在課程結(jié)束之后的輸出,它要求學(xué)生在掌握軟件開發(fā)技術(shù)等理論知識的同時,提升實(shí)際動手編程能力,從而培養(yǎng)出具有實(shí)踐技術(shù)創(chuàng)新能力并能滿足企業(yè)崗位技能需要的優(yōu)秀人才[11]。本課程作為軟件工程專業(yè)核心課程,綜合考慮人才培養(yǎng)方案設(shè)置及課程特點(diǎn),將其教學(xué)目標(biāo)劃分為知識目標(biāo)、能力目標(biāo)、素質(zhì)目標(biāo)和思政目標(biāo)。
(1)知識目標(biāo)
培養(yǎng)學(xué)生面向?qū)ο蟮木幊趟枷?,鍛煉邏輯思維,應(yīng)用計算機(jī)編程處理實(shí)際問題,初步掌握科學(xué)與工程思維方法。
(2)能力目標(biāo)
培養(yǎng)學(xué)生具有一定的工程實(shí)踐能力、創(chuàng)新能力及團(tuán)隊(duì)協(xié)作能力。使學(xué)生能夠應(yīng)用工程化思想、技術(shù)與手段進(jìn)行軟件的分析、設(shè)計、開發(fā)與維護(hù)。
(3)素質(zhì)目標(biāo)
培養(yǎng)學(xué)生查閱和運(yùn)用資料的能力和嚴(yán)格、標(biāo)準(zhǔn)的專業(yè)素質(zhì)。
(4)思政目標(biāo)
把“立德樹人”作為思政主線來培育學(xué)生的道德素養(yǎng)、工匠精神和創(chuàng)新意識,使他們樹立正確的人生觀、職業(yè)觀、道德觀、價值觀。
表1 課程培養(yǎng)目標(biāo)
OBE理念強(qiáng)調(diào)學(xué)生為主、教師為輔,突出專業(yè)知識的應(yīng)用性與創(chuàng)新性,用實(shí)際工程案例活躍課堂,實(shí)現(xiàn)任務(wù)驅(qū)動,檢驗(yàn)學(xué)習(xí)成果[12]。依據(jù)人才培養(yǎng)方案對要求實(shí)現(xiàn)的知識、能力、素質(zhì)以及思政目標(biāo)等,研究組對課程教學(xué)內(nèi)容進(jìn)行了重新組織,對教學(xué)內(nèi)容的改革主要分為理論教學(xué)內(nèi)容與實(shí)驗(yàn)教學(xué)內(nèi)容兩大部分。
(1)理論教學(xué)內(nèi)容部分
我們把教學(xué)內(nèi)容按照相關(guān)性歸納為5個部分,分別是基礎(chǔ)概念(與C語言類似部分)、面向?qū)ο缶幊?、軟件開發(fā)方法、算法設(shè)計和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ),如圖1所示。針對不同部分,要求學(xué)生掌握的程度和內(nèi)容也不同。比如,學(xué)生已經(jīng)學(xué)過C語言程序設(shè)計,對基礎(chǔ)概念部分則以回顧為主;面向?qū)ο缶幊滩糠质沁@門課的重難點(diǎn)部分,要求學(xué)生重點(diǎn)學(xué)習(xí)掌握;軟件開發(fā)方法和算法設(shè)計部分,要求學(xué)生在能夠熟練編程的基礎(chǔ)上進(jìn)一步提升編程規(guī)范性;數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)部分是為后續(xù)課程奠定基礎(chǔ),只要求學(xué)生理解。
圖1 理論教學(xué)內(nèi)容重構(gòu)
(2)實(shí)驗(yàn)教學(xué)內(nèi)容部分
我們從當(dāng)下的熱門事件中挖掘思政要素,創(chuàng)建思政案例庫,采用理論與實(shí)驗(yàn)教學(xué)同時進(jìn)行的方式,交叉講解,巧妙融入課程思政,不僅使學(xué)生更加深刻地理解了理論知識,提升了編程能力,而且培養(yǎng)了學(xué)生優(yōu)秀的品格。表2所示為我們設(shè)計的思政案例,包括疫情打卡系統(tǒng)、垃圾分類、2022年冬奧會、扶貧、文化遺產(chǎn)保護(hù)、載人航天飛船等。
表2 思政案例庫
本課程是基于成果導(dǎo)向的教育思想,是在學(xué)生學(xué)習(xí)成果引領(lǐng)下進(jìn)行的教學(xué)改革,讓學(xué)生在富有挑戰(zhàn)性的工作中培養(yǎng)項(xiàng)目建議,完成項(xiàng)目策劃,進(jìn)行案例研究。改革后的教學(xué)設(shè)計流程如圖2所示。課前,通過共享課件和案例資料的方式開展預(yù)習(xí);課上,利用線上教學(xué)平臺、案例講解、分組討論等形式指導(dǎo)學(xué)生分析、解決問題,提高計算思維能力和軟件開發(fā)能力;課后,進(jìn)行編程拓展訓(xùn)練,引導(dǎo)學(xué)生探索前沿技術(shù)。采用“CDIO工程教育”模式,CDIO一體化設(shè)計(“構(gòu)思—實(shí)現(xiàn)—設(shè)計—運(yùn)作”)包含從數(shù)據(jù)采集、數(shù)據(jù)處理、數(shù)據(jù)分析到數(shù)據(jù)可視化的全過程綜合項(xiàng)目,將實(shí)踐項(xiàng)目與思政元素有機(jī)結(jié)合,達(dá)到工程教育、思政教育與專業(yè)教育的互融互通。具體每部分的實(shí)現(xiàn)要求如表3所示。在此過程中,我們采用多種輔助教學(xué)工具(雨課堂、山西大學(xué)大數(shù)據(jù)實(shí)驗(yàn)平臺等)提升教學(xué)效果,更好地實(shí)現(xiàn)了線上線下混合式教學(xué)。
圖2 基于OBE-CDIO的教學(xué)設(shè)計流程
表3 基于CDIO模式的課程設(shè)計
結(jié)合OBE教育理念,按照CDIO四大環(huán)節(jié),結(jié)合學(xué)生學(xué)習(xí)情況,進(jìn)行模塊化線上線下混合式教學(xué)。這就要求設(shè)計一種多元化、多層次的考核方式。圖3為我們設(shè)計的考核方式,包括期末考核與過程考核(項(xiàng)目考核、課堂互動、小組協(xié)作),比重分別是40%和60%。通過增加過程性評價的比例,提升學(xué)生在學(xué)習(xí)過程中的主觀能動性,以此提高學(xué)生的編程能力、項(xiàng)目開發(fā)能力、解決實(shí)際問題的能力、提升專業(yè)素養(yǎng)。
圖3 考核方式
以“2022年冬奧會獎牌榜”項(xiàng)目為例,講解CDIO模式在《類與對象》章節(jié)的教學(xué)環(huán)節(jié)中的應(yīng)用。項(xiàng)目示例如圖4所示,具體的教學(xué)環(huán)節(jié)設(shè)計如圖5所示。
圖4 2022年冬奧會獎牌榜
構(gòu)思階段:教師在雨課堂平臺上布置課前思考作業(yè)“回顧2022年冬奧會精彩內(nèi)容和獎牌榜情況”。學(xué)生可通過觀看照片(如圖4所示)認(rèn)識了解這節(jié)課的任務(wù)。
設(shè)計階段:教師引導(dǎo)學(xué)生設(shè)計系統(tǒng)開發(fā)流程,即“復(fù)合數(shù)據(jù)類型設(shè)計→類的概念及實(shí)現(xiàn)→對象的概念及實(shí)現(xiàn)→對象的內(nèi)存存儲方式”;學(xué)生通過教師的指導(dǎo),理解“類與對象”的概念及C++實(shí)現(xiàn)原理,并對系統(tǒng)進(jìn)行模塊劃分及偽代碼實(shí)現(xiàn)。
圖5 CDIO模式在項(xiàng)目中的應(yīng)用
實(shí)現(xiàn)階段:教師進(jìn)行軟件功能模塊化整合,提供項(xiàng)目指導(dǎo)手冊;學(xué)生實(shí)施硬件平臺搭建,在codeblock、VS或山西大學(xué)實(shí)驗(yàn)平臺等編譯環(huán)境下進(jìn)行軟件開發(fā)設(shè)計,并對代碼進(jìn)行調(diào)試運(yùn)行。
運(yùn)作階段:教師對項(xiàng)目進(jìn)行答疑總結(jié),布置課外拓展性任務(wù),如建立疫情打卡系統(tǒng)等。學(xué)生進(jìn)行小組討論,明確分工,并通過查閱資料實(shí)現(xiàn)拓展功能,形成PPT進(jìn)行項(xiàng)目匯報。
本文以O(shè)BE教育理念為依托,針對C++程序設(shè)計課程進(jìn)行了多方面的改革與實(shí)踐,讓學(xué)生學(xué)會需求分析、查閱資料、學(xué)習(xí)探究、方案設(shè)計、軟件綜合調(diào)試、系統(tǒng)測試,并進(jìn)行課外拓展訓(xùn)練和匯報。相對于傳統(tǒng)的獨(dú)立知識傳授而言,該教學(xué)措施具有實(shí)際工程項(xiàng)目化的特征,能有效提高學(xué)生的專業(yè)技能,從而適應(yīng)未來新科技產(chǎn)業(yè)以及新軟件發(fā)展對人才的要求。