袁 凌 祝建華 許貴平
(華中科技大學(xué) 計(jì)算機(jī)學(xué)院, 武漢 430074)
“數(shù)據(jù)結(jié)構(gòu)”課程是計(jì)算機(jī)技術(shù)類各專業(yè)的專業(yè)核心必修課程,該課程是一門理論性較強(qiáng)比較難理解但又必須面向?qū)嵺`和應(yīng)用的課程。我?!皵?shù)據(jù)結(jié)構(gòu)”課程組于2018年在“愛課程”平臺上建設(shè)了“數(shù)據(jù)結(jié)構(gòu)”MOOC(慕課)課程,迄今為止運(yùn)行8期,線上選課人數(shù)超過10萬人次,教學(xué)效果良好,并于2019年獲得“國家在線精品課程”稱號。
本課程組運(yùn)用MOOC在線課程還嘗試了SPOCs線上線下混合教學(xué)模式的演示[1-2],改變以教師為中心的傳統(tǒng)理論教學(xué)模式。由于線上線下混合教學(xué)模式的有效運(yùn)用,本課程組所建設(shè)的“數(shù)據(jù)結(jié)構(gòu)”課程于2020年獲得“國家一流課程(線上線下混合)”的褒獎。但目前的線上線下混合教學(xué)主要以理論教學(xué)為主,學(xué)生一直對如何實(shí)踐頗感困惑,即很難將理論算法和抽象概念轉(zhuǎn)化為可具體實(shí)現(xiàn)的代碼。為了解決這一難題,應(yīng)在講授典型數(shù)據(jù)結(jié)構(gòu)概念、算法的基礎(chǔ)上,加強(qiáng)上機(jī)操作訓(xùn)練等實(shí)踐教學(xué)環(huán)節(jié),提高學(xué)生組織數(shù)據(jù)結(jié)構(gòu)及編寫應(yīng)用程序解決實(shí)際工程問題的能力,架起從理論走向解決實(shí)際問題的橋梁[3]。值得重視的是:“數(shù)據(jù)結(jié)構(gòu)”實(shí)踐教學(xué)不僅是培養(yǎng)學(xué)生算法設(shè)計(jì)和實(shí)現(xiàn)能力的主要教學(xué)環(huán)節(jié),更是培養(yǎng)學(xué)生計(jì)算思維、工程能力的有效途經(jīng)[4]。
“數(shù)據(jù)結(jié)構(gòu)”是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的一門綜合性的重要專業(yè)必修課,主要講授從現(xiàn)實(shí)中總結(jié)出的數(shù)據(jù)的邏輯結(jié)構(gòu)、數(shù)據(jù)在計(jì)算機(jī)中的存儲結(jié)構(gòu)及在數(shù)據(jù)結(jié)構(gòu)上能進(jìn)行的各種處理運(yùn)算方法。該課程的教學(xué)目標(biāo)是讓學(xué)生根據(jù)實(shí)際問題設(shè)計(jì)出數(shù)據(jù)的邏輯結(jié)構(gòu),選用合適存儲結(jié)構(gòu),設(shè)計(jì)算法并編寫出解決應(yīng)用問題的程序,從而培養(yǎng)學(xué)生的實(shí)踐能力和工程能力。然而由于“數(shù)據(jù)結(jié)構(gòu)”這門課程具有相當(dāng)?shù)某橄笮院蛣討B(tài)性,目前只靠以理論教學(xué)為主的線上線下教學(xué)模式達(dá)到的教學(xué)效果不太理想?!皵?shù)據(jù)結(jié)構(gòu)”課程教學(xué)的現(xiàn)狀和存在的問題主要有:
(1)在線實(shí)踐課程非常少,并且課程資源短缺,主要是“課件+視頻+討論版+知識點(diǎn)客觀題練習(xí)”的基本形式,遠(yuǎn)遠(yuǎn)不能滿足對學(xué)生工程能力的培養(yǎng)要求;
(2)信息技術(shù)與實(shí)踐教學(xué)沒有深度融合,信息技術(shù)在實(shí)踐教學(xué)過程中的廣泛應(yīng)用不夠深入,如層次化的實(shí)訓(xùn)項(xiàng)目訓(xùn)練等引入到實(shí)踐教學(xué)的研究比較少;
(3)基于信息化的混合式實(shí)踐教學(xué)研究比較少,缺乏有效的過程管理和科學(xué)的評價手段。
“數(shù)據(jù)結(jié)構(gòu)”課程面向?qū)嵺`的信息化建設(shè)以系統(tǒng)工程能力培養(yǎng)為目標(biāo),根據(jù)課程特點(diǎn),設(shè)計(jì)層次化的實(shí)訓(xùn)項(xiàng)目,通過分層次實(shí)踐教學(xué)體系,構(gòu)建“數(shù)據(jù)結(jié)構(gòu)”課程信息化平臺,對學(xué)生進(jìn)行全過程的工程能力培養(yǎng),如圖1所示。課程建設(shè)為秉承“以學(xué)生為本,強(qiáng)化知識與技能、注重過程與方法、提高素質(zhì)與能力、突出實(shí)踐與創(chuàng)新”的教學(xué)理念,構(gòu)建“知識點(diǎn)應(yīng)用分析、算法設(shè)計(jì)實(shí)踐、數(shù)據(jù)結(jié)構(gòu)工程實(shí)踐”三個層次的實(shí)訓(xùn)項(xiàng)目,并輔助設(shè)計(jì)有效的過程管理和科學(xué)的評價手段,從而有效地培養(yǎng)學(xué)生的工程實(shí)踐能力。
圖1 “數(shù)據(jù)結(jié)構(gòu)”課程體系信息化平臺
“數(shù)據(jù)結(jié)構(gòu)”課程信息化建設(shè)的主要思路是:
(1)教學(xué)實(shí)踐同步化。建設(shè)“教-學(xué)-做-考”一體的同步教學(xué)互動,構(gòu)建適應(yīng)同步化實(shí)踐教學(xué)的闖關(guān)式實(shí)訓(xùn)項(xiàng)目。依托信息化平臺,重新進(jìn)行教學(xué)設(shè)計(jì),將課程的理論教學(xué)與知識點(diǎn)應(yīng)用、算法設(shè)計(jì)實(shí)踐、數(shù)據(jù)結(jié)構(gòu)工程實(shí)踐、考察融為一體,在“數(shù)據(jù)結(jié)構(gòu)”課程中開展同步教學(xué),并研究基于工作過程系統(tǒng)化的教學(xué)設(shè)計(jì),提高學(xué)生的學(xué)習(xí)興趣和教學(xué)質(zhì)量;
(2)將信息技術(shù)融入實(shí)踐教學(xué)。將問題導(dǎo)向、合作學(xué)習(xí)等教學(xué)方法引入到“數(shù)據(jù)結(jié)構(gòu)”課程教學(xué)中,將信息技術(shù)與實(shí)踐教學(xué)深度融合。以課內(nèi)為主向課內(nèi)外結(jié)合轉(zhuǎn)變,強(qiáng)調(diào)課外自助餐式的學(xué)習(xí);以結(jié)果考核為主向結(jié)果和過程結(jié)合轉(zhuǎn)變,強(qiáng)調(diào)理論、實(shí)踐、應(yīng)用相結(jié)合;重新設(shè)計(jì)課程的實(shí)訓(xùn)教學(xué)流程,實(shí)訓(xùn)項(xiàng)目的設(shè)計(jì)以解決問題為目標(biāo),引導(dǎo)學(xué)生進(jìn)行實(shí)踐操作,進(jìn)一步深入理解理論知識及其應(yīng)用場景,以培養(yǎng)學(xué)生分析問題和解決問題的系統(tǒng)工程能力。
根據(jù)這個思路系統(tǒng)構(gòu)建了“數(shù)據(jù)結(jié)構(gòu)”課程面向?qū)嵺`的信息化平臺。其中,實(shí)訓(xùn)項(xiàng)目的構(gòu)建主要分為三個層次:第一層次是根據(jù)理論課重要知識點(diǎn)構(gòu)建的關(guān)鍵知識點(diǎn)應(yīng)用分析;第二層次是根據(jù)知識點(diǎn)應(yīng)用分析引導(dǎo)的算法設(shè)計(jì)實(shí)踐項(xiàng)目;第三層次是以典型數(shù)據(jù)結(jié)構(gòu)為導(dǎo)向,構(gòu)建系統(tǒng)式闖關(guān)型的工程實(shí)訓(xùn)項(xiàng)目。
這個層次的實(shí)訓(xùn)項(xiàng)目根據(jù)“數(shù)據(jù)結(jié)構(gòu)”理論課的關(guān)鍵知識點(diǎn)進(jìn)行設(shè)置,全方位增強(qiáng)學(xué)生對關(guān)鍵知識點(diǎn)的理解和分析能力,激發(fā)學(xué)生學(xué)習(xí)興趣和求知欲望。表1即是關(guān)鍵知識點(diǎn)應(yīng)用分析實(shí)訓(xùn)項(xiàng)目的設(shè)置。
表1 關(guān)鍵知識點(diǎn)應(yīng)用分析實(shí)訓(xùn)項(xiàng)目
以“圖”這個知識點(diǎn)為例說明信息化平臺的設(shè)置:學(xué)生通過平臺設(shè)置的簡答題對“圖”這個數(shù)據(jù)結(jié)構(gòu)進(jìn)行實(shí)訓(xùn)練習(xí),平臺給出相應(yīng)的評閱結(jié)果和分?jǐn)?shù)。學(xué)生經(jīng)過這個層次的實(shí)訓(xùn),能深刻理解“圖”的重要存儲結(jié)構(gòu):鄰接矩陣、逆鄰接矩陣,以及出度、入度、強(qiáng)連通分量等重要知識點(diǎn),為掌握圖的最小生成樹、拓?fù)渑判?、關(guān)鍵路徑以及最短路徑等重要算法打下良好基礎(chǔ)。學(xué)生可以根據(jù)理論課的教學(xué)進(jìn)度實(shí)時進(jìn)行訓(xùn)練,夯實(shí)基礎(chǔ),從而為培養(yǎng)算法設(shè)計(jì)思維和工程實(shí)踐能力做好準(zhǔn)備工作。
這個層次的實(shí)訓(xùn)項(xiàng)目根據(jù)上一層次的知識點(diǎn)進(jìn)行引導(dǎo),設(shè)置具有一定難度的算法設(shè)計(jì)題目,充分訓(xùn)練學(xué)生的編程素養(yǎng),以及分析和處理實(shí)際問題的能力。表2即是算法設(shè)計(jì)實(shí)踐實(shí)訓(xùn)項(xiàng)目的設(shè)置。
表2 算法設(shè)計(jì)實(shí)踐實(shí)訓(xùn)項(xiàng)目
以實(shí)訓(xùn)項(xiàng)目“函數(shù)值計(jì)算”為例進(jìn)行說明,如何在信息化平臺設(shè)置任務(wù)、涉及的相關(guān)知識點(diǎn)和編程要求,如圖2所示。學(xué)生開始實(shí)訓(xùn)后,可在左邊清楚地看到此項(xiàng)目的任務(wù)描述、所用到的相關(guān)知識、編程要求和測試說明?!坝?jì)算函數(shù)值”這個算法主要針對某個相對復(fù)雜函數(shù)求解并存入相應(yīng)的數(shù)組中,此算法為后期更復(fù)雜算法打下基礎(chǔ),并培養(yǎng)學(xué)生的基本編程素養(yǎng)。右邊即是系統(tǒng)給出的編程環(huán)境,學(xué)生根據(jù)項(xiàng)目要求編寫程序并進(jìn)行調(diào)試。為方便驗(yàn)證學(xué)生程序的正確性,特在后臺根據(jù)項(xiàng)目的特性設(shè)置對應(yīng)的測試集,如果通過測試集的測試,此項(xiàng)目就達(dá)到要求。并且運(yùn)用后臺分析學(xué)生所提交算法的時間復(fù)雜度和空間復(fù)雜度來衡量學(xué)生所完成算法的質(zhì)量。
圖2 算法設(shè)計(jì)實(shí)踐實(shí)訓(xùn)項(xiàng)目信息化平臺截圖
這個層次的實(shí)訓(xùn)項(xiàng)目以典型數(shù)據(jù)結(jié)構(gòu)為導(dǎo)向,構(gòu)建系統(tǒng)式闖關(guān)型的工程實(shí)訓(xùn)項(xiàng)目。通過工程訓(xùn)練,充分訓(xùn)練學(xué)生的系統(tǒng)工程能力。如表3即是數(shù)據(jù)結(jié)構(gòu)工程實(shí)踐項(xiàng)目:
表3 數(shù)據(jù)結(jié)構(gòu)工程實(shí)踐項(xiàng)目
以“順序表操作”為例進(jìn)行說明,如何在信息化平臺設(shè)置16道關(guān)卡。如圖3所示,為了訓(xùn)練圍繞“順序表”這個結(jié)構(gòu)的相關(guān)算法設(shè)計(jì),設(shè)置了16個關(guān)卡,包括基礎(chǔ)的元素增刪查改,以及更復(fù)雜的多表管理與讀寫。學(xué)生在平臺中進(jìn)行每個關(guān)卡的實(shí)訓(xùn)時,后臺都會記錄完成的時間、評測的次數(shù)、獲取的經(jīng)驗(yàn)值,以及最后的得分。
圖3 數(shù)據(jù)結(jié)構(gòu)工程實(shí)踐實(shí)訓(xùn)項(xiàng)目信息化平臺截圖
對每一個關(guān)卡的通關(guān),以第一關(guān)“線性表的創(chuàng)建”為例,平臺會設(shè)置說明此關(guān)卡的任務(wù)描述和所用到的相關(guān)知識,并在編程要求中詳細(xì)說明了此關(guān)卡需完成的主要功能,特別解釋了帶表頭結(jié)點(diǎn)和不帶表頭結(jié)點(diǎn)時線性表創(chuàng)建的不同設(shè)置,為后面線性表系統(tǒng)應(yīng)用打下基礎(chǔ)。學(xué)生針對關(guān)卡要求進(jìn)行程序設(shè)計(jì),通過平臺的編譯和調(diào)試,如果通過了相關(guān)測試集的測試,即可驗(yàn)證學(xué)生編寫程序的正確性和有效性。還可根據(jù)學(xué)生的提交次數(shù)和通過次數(shù),反映學(xué)生在編程方面投入的時間和努力,從而進(jìn)行綜合的評估。
1)以學(xué)生為中心的追蹤式過程管理
“數(shù)據(jù)結(jié)構(gòu)”信息化平臺實(shí)施課堂班級管理,對每個課堂、每個學(xué)生完成情況進(jìn)行實(shí)時的跟蹤,各個教師可以同時看到全年級各班的學(xué)生作業(yè)完成情況,也便于同行教師互相交流,共同提高教學(xué)水平,提升教學(xué)效果。如圖4所示,針對不同的理論課堂分班情況,給出學(xué)生的作業(yè)狀態(tài)、實(shí)訓(xùn)耗時、完成關(guān)卡、以及當(dāng)前成績。
2)對學(xué)生進(jìn)行層次化個性化管理
嚴(yán)格要求學(xué)生根據(jù)教學(xué)進(jìn)度按時完成相關(guān)實(shí)訓(xùn)項(xiàng)目,同時也給學(xué)習(xí)進(jìn)度慢的學(xué)生提供機(jī)會,作業(yè)采用允許補(bǔ)交的方式,鼓勵學(xué)生不要放棄。任課教師可根據(jù)學(xué)生完成情況及時調(diào)整實(shí)訓(xùn)項(xiàng)目的開始時間和截至?xí)r間,對不能及時完成的后進(jìn)學(xué)生開啟補(bǔ)交模式,并設(shè)置一定的遲交扣分,做到公平公開。
圖4 學(xué)生管理信息化平臺截圖
3)有效的個性化學(xué)生學(xué)習(xí)效果評價措施
(1) 學(xué)生的成績進(jìn)行實(shí)時統(tǒng)計(jì),進(jìn)行有效追蹤。在平臺所有登錄學(xué)生中根據(jù)實(shí)訓(xùn)作業(yè)的成績和時間等指標(biāo)進(jìn)行計(jì)算,定期選出明星學(xué)員,并給出前五名的排名,激發(fā)學(xué)生的競爭意識,你追我敢,形成良好的學(xué)習(xí)氛圍;
(2) 對單個學(xué)生工作效率進(jìn)行評估,做到個性化管理。平臺可以展示每一個學(xué)生的整體工作效率(log(實(shí)訓(xùn)總得分/實(shí)訓(xùn)總耗時)),并專門指示當(dāng)前的工作效率,便于教師與學(xué)生進(jìn)行監(jiān)督和自查,并用中位值來表示課堂所有學(xué)生的工作效率,從而提醒學(xué)生提高工作效率,也方便教師進(jìn)行全方位的考察和評價;
(3) 對學(xué)生綜合能力進(jìn)行有效評估,從而進(jìn)行科學(xué)評價。平臺可以展示每一個學(xué)生的整體能力值(實(shí)訓(xùn)獲得經(jīng)驗(yàn)值/實(shí)訓(xùn)評測次數(shù)),并專門指示當(dāng)前的能力值,便于教師與學(xué)生進(jìn)行監(jiān)督和自查,也能讓教師進(jìn)行全方位的考察和評價。
通過信息化平臺所設(shè)置的各種有效實(shí)訓(xùn)、考察、評價措施,2020年計(jì)算機(jī)學(xué)院2019級計(jì)算機(jī)專業(yè)技術(shù)、物聯(lián)網(wǎng)等相關(guān)專業(yè)近400名學(xué)生均在理論和實(shí)踐上得到充分鍛煉,學(xué)生反饋“此信息化平臺的設(shè)置能快速引導(dǎo)我們進(jìn)入“數(shù)據(jù)結(jié)構(gòu)”這門專業(yè)核心課程的學(xué)習(xí),收獲很大!”。
下面分別就2019年、2020年“數(shù)據(jù)結(jié)構(gòu)”理論考試和課成績進(jìn)行對比,分析采用信息化平臺后學(xué)生在成績上的提高。
1)“數(shù)據(jù)結(jié)構(gòu)”理論考試情況對比
將2019年、2020年數(shù)據(jù)結(jié)構(gòu)理論考試中的及格率、優(yōu)秀率、算法題得分比例進(jìn)行了對比,如圖5所示。可以發(fā)現(xiàn),在這三項(xiàng)指標(biāo)上,2020年的考核成績都有提高,其中及格率達(dá)到92%,優(yōu)秀率達(dá)到8%,算法題得分比例達(dá)到80%。學(xué)生普遍反映遇到算法設(shè)計(jì)的題目不再出現(xiàn)無從下手的情況,可見信息化平臺中針對算法思維和工程能力的培養(yǎng)卓有成效。
圖5 “數(shù)據(jù)結(jié)構(gòu)”理論課成績對比圖
2)“數(shù)據(jù)結(jié)構(gòu)”實(shí)驗(yàn)課程考核情況
“數(shù)據(jù)結(jié)構(gòu)”除理論課程外,還專門開設(shè)了“數(shù)據(jù)結(jié)構(gòu)”實(shí)驗(yàn)課,在采用信息化平臺的情況下,2020年考核中優(yōu)秀率比以往有較大提高,可以達(dá)到13%,良好率也達(dá)到82%。將2019年、2020年“數(shù)據(jù)結(jié)構(gòu)”課程設(shè)計(jì)考核中的優(yōu)秀率和良好率的得分比例進(jìn)行了對比,如圖6所示。學(xué)生在實(shí)驗(yàn)考核中所寫的程序功能完備,形式規(guī)范,實(shí)驗(yàn)報告詳實(shí)并包括多個測試案例,充分體現(xiàn)了學(xué)生的工程實(shí)踐能力。很多學(xué)生在實(shí)驗(yàn)報告中反映“通過信息化平臺培訓(xùn)了規(guī)范的編程方法以及編程素養(yǎng)?!焙芎玫赜?xùn)練了學(xué)生的系統(tǒng)工程能力。
圖6 “數(shù)據(jù)結(jié)構(gòu)”課程設(shè)計(jì)成績對比圖
“數(shù)據(jù)結(jié)構(gòu)”課程是培養(yǎng)學(xué)生系統(tǒng)工程能力的基礎(chǔ)課程,理論性和實(shí)踐性都很強(qiáng)。課程的學(xué)習(xí)需要理論教學(xué)的結(jié)果來指導(dǎo)實(shí)踐教學(xué)的過程,更需要實(shí)踐教學(xué)的過程來強(qiáng)化理論教學(xué)的效果。課程組所構(gòu)建的教學(xué)信息化平臺,在以往以理論為主的基于MOOC的線上線下混合教學(xué)模式中,有效補(bǔ)充了以實(shí)踐為核心的多層次實(shí)訓(xùn)項(xiàng)目。通過設(shè)置算法設(shè)計(jì)實(shí)訓(xùn)項(xiàng)目,培養(yǎng)了學(xué)生良好的算法思維;通過系統(tǒng)、科學(xué)地設(shè)置系統(tǒng)實(shí)訓(xùn),充分鍛煉了學(xué)生的編程能力,培養(yǎng)了學(xué)生動手解決實(shí)際問題的能力;并通過科學(xué)的過程管理評價手段,提升了項(xiàng)目設(shè)置的綜合性和趣味性,激發(fā)學(xué)生的學(xué)習(xí)興趣,實(shí)現(xiàn)了“加強(qiáng)學(xué)生實(shí)踐和動手能力的培養(yǎng),以提升學(xué)生解決實(shí)際工程能力”的工程專業(yè)人才培養(yǎng)目標(biāo)。
平臺以此為基礎(chǔ),擬將所有題目進(jìn)行知識點(diǎn)分類和難度劃分,便于不同層次的高校以及不同能力水平的學(xué)生自主選擇題目。也可按照專題的形式整理不同的題目,隨著題庫的不斷擴(kuò)充,全面涵蓋計(jì)算機(jī)專業(yè)的基礎(chǔ)課程和章節(jié)。平臺可以增加統(tǒng)計(jì)學(xué)生做題平均時長、程序得分等情況,便于使用平臺的相關(guān)高校教師精準(zhǔn)掌握學(xué)生的學(xué)習(xí)情況,更好地為教學(xué)服務(wù)。