杜康寧
摘? 要文章以通信工程專業(yè)為例,闡述了數(shù)據(jù)結(jié)構(gòu)與算法課程教學(xué)改革對(duì)提升非計(jì)算機(jī)專業(yè)大學(xué)生編程能力的重要性,提出了迭代式案例教學(xué)的課程設(shè)計(jì)思路,結(jié)合現(xiàn)代教學(xué)設(shè)計(jì)優(yōu)化原則,如OBE、SPOC、BOPPS與案例教學(xué),設(shè)計(jì)了打車系統(tǒng)教學(xué)案例體系,通過對(duì)課堂授課方式進(jìn)行改革,從而提高學(xué)生的邏輯思維能力和編程能力。
關(guān)鍵詞迭代式教學(xué);數(shù)據(jù)結(jié)構(gòu)與算法;案例式教學(xué)
中圖分類號(hào):G424? ??????????????????????????文獻(xiàn)標(biāo)識(shí)碼:A??? DOI:10.16400/j.cnki.kjdk.2023.21.037
Exploration and Practice of "Data Structure and Algorithm" Iterative Teaching
DU Kangning
(School of Information Communication Engineering, Beijing Information Science and Technology University, Beijing 100101)
AbstractTaking communication engineering major as an example, this paper expounds the importance of data structure and algorithm course reform to improve the programming ability of non-computer major students. Then, the course design idea of iterative case teaching is proposed. Finally, combining with modern teaching design optimization principles including OBE, SPOC, BOPPS and case-based teaching, this paper designs teaching case system based on taxi system. Reform and practice of classroom teaching methods enhance students' logical thinking ability and programming ability.
Keywordsiterative teaching; data structure and algorithm; case-based teaching
1? 問題提出
數(shù)據(jù)結(jié)構(gòu)與算法是通信工程等信息類相關(guān)專業(yè)的一門重要的專業(yè)核心課。該課程同時(shí)配備有數(shù)據(jù)結(jié)構(gòu)與算法課程設(shè)計(jì)實(shí)訓(xùn)環(huán)節(jié)。數(shù)據(jù)結(jié)構(gòu)與算法課程的教學(xué)目標(biāo)是培養(yǎng)學(xué)生的編程能力,讓學(xué)生具備“發(fā)現(xiàn)問題,分析問題,解決問題”的能力。通過數(shù)據(jù)結(jié)構(gòu)與算法這門課,期望構(gòu)建通信工程專業(yè)本科生的編程基礎(chǔ),讓學(xué)生具備編程思想,并能用編程解決實(shí)際問題。
通過對(duì)電子信息類專業(yè)畢業(yè)后3―5年學(xué)生的調(diào)查[1],畢業(yè)生認(rèn)為影響就業(yè)的五大關(guān)鍵能力是:電腦編程、解決復(fù)雜問題、談判技巧、主動(dòng)學(xué)習(xí)以及有效的口頭溝通能力。值得注意的是,這五大能力中,只有電腦編程屬于專業(yè)技能,其余四項(xiàng)都是非專業(yè)的通用技能。調(diào)查還發(fā)現(xiàn),絕大部分電子信息類畢業(yè)生的編程能力是在就業(yè)后參加實(shí)際工程項(xiàng)目中建立起來的,在畢業(yè)時(shí)仍然處于“欺軟怕硬”(軟件編程不會(huì)的同時(shí)又懼怕硬件設(shè)計(jì))的狀態(tài)。就當(dāng)前企業(yè)對(duì)軟件開發(fā)人才的需求進(jìn)行調(diào)研,發(fā)現(xiàn)從事軟件開發(fā)工作的人員中70%是非計(jì)算機(jī)專業(yè)[2]。綜上所述,盡管社會(huì)對(duì)具備編程能力的非計(jì)算機(jī)專業(yè)人才存在巨大缺口,但目前非計(jì)算機(jī)專業(yè)的絕大多數(shù)畢業(yè)生并不具備編程能力[3]。為分析通信專業(yè)畢業(yè)生存在編程能力不足的原因,本文對(duì)比了計(jì)算機(jī)專業(yè)和通信工程專業(yè)數(shù)據(jù)結(jié)構(gòu)與算法課程的前期先導(dǎo)課程,發(fā)現(xiàn)在計(jì)算機(jī)專業(yè)的培養(yǎng)計(jì)劃中,數(shù)據(jù)結(jié)構(gòu)與算法前期先導(dǎo)課程十分豐富,經(jīng)過前期豐富的課程打牢基礎(chǔ),學(xué)生后續(xù)對(duì)數(shù)據(jù)結(jié)構(gòu)與算法的掌握就更加容易;而通信工程專業(yè)的先導(dǎo)課程非常少。由此本文發(fā)現(xiàn)編程訓(xùn)練關(guān)系著學(xué)生編程思維的構(gòu)建與編程能力的提升,而缺乏充分的編程訓(xùn)練是非計(jì)算機(jī)專業(yè)大學(xué)生編程能力薄弱的主要原因。
此外,當(dāng)前的數(shù)據(jù)結(jié)構(gòu)與算法課程教學(xué)往往以知識(shí)體系為出發(fā)點(diǎn),重點(diǎn)在于教學(xué)內(nèi)容,課程目標(biāo)更多地考慮了知識(shí)的完整性,而非學(xué)生在學(xué)習(xí)課程后應(yīng)具備的能力。為此,通過優(yōu)化數(shù)據(jù)結(jié)構(gòu)與算法課程的教學(xué)方式,讓學(xué)生在不增加課上學(xué)時(shí)的條件下具備編程能力已成為通信工程專業(yè)教學(xué)改革的重點(diǎn)工作。
迭代式案例提供了可運(yùn)行的系統(tǒng),降低了學(xué)生上手編程的門檻,將實(shí)踐拆分為多個(gè)階段的任務(wù),降低了每個(gè)階段的難度,學(xué)生能夠在每次完成一個(gè)小功能后體會(huì)到獲得感,激發(fā)其對(duì)編程的興趣。因此,課程組提出數(shù)據(jù)結(jié)構(gòu)與算法的迭代式案例教學(xué),設(shè)計(jì)了打車系統(tǒng)教學(xué)案例體系,以迭代的方式將教學(xué)案例與課程知識(shí)點(diǎn)進(jìn)行一一對(duì)應(yīng),提高學(xué)生的軟件編程能力。
2? 迭代式教學(xué)設(shè)計(jì)的優(yōu)化原則
本文以O(shè)BE、SPOC、BOPPPS與案例教學(xué)作為迭代式教學(xué)優(yōu)化設(shè)計(jì)的四大基本原則,開展迭代式教學(xué)探索與實(shí)踐。
首先,成果導(dǎo)向教育(Outcomes-Based Education,OBE)是一種教育模式,旨在培養(yǎng)學(xué)生獲得成功所需的知識(shí)、技能和素質(zhì)[4],而數(shù)據(jù)結(jié)構(gòu)與算法的直接成果就是要讓學(xué)生具備編程的思想與能力。
其次,小規(guī)模限制性在線課程(Small Private Online Course,SPOC)[5]通過將教學(xué)、視頻等元素進(jìn)行有機(jī)結(jié)合,為學(xué)習(xí)者提供了更全面、深入的學(xué)習(xí)體驗(yàn)。通過選用優(yōu)質(zhì)的數(shù)據(jù)結(jié)構(gòu)與算法SPOC課程讓學(xué)生進(jìn)行學(xué)習(xí),再輔助現(xiàn)場的案例實(shí)踐探索與討論更能夠提升學(xué)生的課程參與度。
此外,BOPPPS教學(xué)模式[6]強(qiáng)調(diào)學(xué)生應(yīng)積極全面地參與學(xué)習(xí),而非被動(dòng)接受。該模式還特別注重獲取學(xué)生的即時(shí)反饋,以便調(diào)整接下來的教學(xué)活動(dòng),從而能夠鼓勵(lì)學(xué)生更積極地投入學(xué)習(xí)中,激發(fā)他們的學(xué)習(xí)興趣。本文對(duì)數(shù)據(jù)結(jié)構(gòu)與算法課程的改革將全面引入BOPPPS的設(shè)計(jì)理念,優(yōu)化課程的過程設(shè)計(jì)。
最后,案例教學(xué)在我國被普遍接受,各個(gè)高校針對(duì)提高非計(jì)算機(jī)專業(yè)大學(xué)生的編程能力設(shè)立了大量的案例教學(xué)項(xiàng)目,但對(duì)大學(xué)生編程能力的提升并不明顯。為此需要將精英教育和大眾教育進(jìn)行結(jié)合,同時(shí)還需要以科教融合理念為指導(dǎo),探索新的案例教學(xué)模式,激發(fā)學(xué)生對(duì)編程的興趣,在不增加學(xué)時(shí)的條件下提升學(xué)生的編程能力。
3? 迭代式教學(xué)設(shè)計(jì)的優(yōu)化實(shí)踐
根據(jù)以上原則,圍繞BOPPPS的核心設(shè)計(jì)理念,基于數(shù)據(jù)結(jié)構(gòu)與算法迭代式探索與研究的建設(shè)目標(biāo)如下:第一,打造以工程實(shí)踐為導(dǎo)向的迭代式案例教學(xué),通過工程實(shí)踐助力提升學(xué)生的編程能力;第二,構(gòu)建科教融合為理念的教學(xué)案例體系,注重理論教學(xué)與實(shí)際應(yīng)用結(jié)合,實(shí)現(xiàn)產(chǎn)學(xué)研相結(jié)合;第三,探索SPOC線上線下混合式教學(xué)模式,滿足不同能力學(xué)生的個(gè)性化學(xué)習(xí)需求,實(shí)現(xiàn)項(xiàng)目式翻轉(zhuǎn)課堂。
3.1? 迭代式案例教學(xué)
將工程實(shí)踐設(shè)定為數(shù)據(jù)結(jié)構(gòu)與算法課程教學(xué)改革的目標(biāo)導(dǎo)向,改革的目標(biāo)就是通過工程實(shí)踐讓學(xué)生具備編程能力。北京信息科技大學(xué)通信工程專業(yè)數(shù)據(jù)結(jié)構(gòu)與算法課程設(shè)置在大一第2學(xué)期,學(xué)生的編程基礎(chǔ)薄弱,在剛進(jìn)行編程實(shí)踐時(shí)遇到一個(gè)困難后就無法繼續(xù)往下進(jìn)行,從而導(dǎo)致在還不了解編程前就放棄了編程的學(xué)習(xí)。
為此,課程組借鑒軟件開發(fā)中“迭代”的思想建立教學(xué)案例,并在學(xué)生參與實(shí)踐的過程中不斷優(yōu)化教學(xué)案例。區(qū)別于普通的教學(xué)案例,本文提出的迭代式案例從整體而言是一個(gè)真實(shí)且完整的編程項(xiàng)目,該項(xiàng)目功能的編程實(shí)現(xiàn)需要運(yùn)用近乎全部數(shù)據(jù)結(jié)構(gòu)與算法課程的核心知識(shí)點(diǎn)并貫穿整個(gè)教學(xué)過程。案例的“迭代式”體現(xiàn)在兩個(gè)方面,一方面是需要將軟件的功能拆分成較小的功能單元,以課下作業(yè)的形式讓學(xué)生編程逐項(xiàng)實(shí)現(xiàn),并在每次驗(yàn)收作業(yè)與課堂講解時(shí)調(diào)整下次要完成的內(nèi)容,通過貫穿一學(xué)期的教學(xué)歷程讓學(xué)生能夠完全替代老師提供的動(dòng)態(tài)庫,能夠編寫完整的案例程序?!暗健绷硪粋€(gè)方面的體現(xiàn)在于根據(jù)每學(xué)期學(xué)生實(shí)踐過程中遇到的困難和對(duì)編程掌握的程度,迭代循環(huán)地調(diào)整案例的功能。
另外,實(shí)施迭代式案例需要利用課堂、校外實(shí)訓(xùn)基地、校內(nèi)實(shí)驗(yàn)室、眾創(chuàng)空間以及學(xué)生創(chuàng)新實(shí)踐中心等平臺(tái)。按照“基礎(chǔ)實(shí)踐、專業(yè)實(shí)踐、綜合實(shí)踐、創(chuàng)新實(shí)踐”四個(gè)層級(jí),構(gòu)建了如圖1所示的教學(xué)體系結(jié)構(gòu)。將案例融入理論課程和課程實(shí)驗(yàn),讓學(xué)生掌握基本理論并具備初步編程能力,并結(jié)合課程設(shè)計(jì)、專業(yè)創(chuàng)新設(shè)計(jì)、學(xué)科競賽與課外科技活動(dòng)讓學(xué)生的編程能力逐漸增強(qiáng)。
3.2? 打車系統(tǒng)教學(xué)案例體系
當(dāng)代大學(xué)生對(duì)學(xué)習(xí)內(nèi)容的要求逐步提高,更加關(guān)注真實(shí)的項(xiàng)目中遇到的問題。針對(duì)人才培養(yǎng)目標(biāo)和軟件工程專業(yè)的畢業(yè)要求,更應(yīng)在數(shù)據(jù)結(jié)構(gòu)與算法課程的教學(xué)中強(qiáng)調(diào)學(xué)生實(shí)踐能力和工程技能的提升。因此,必須在教學(xué)內(nèi)容中做出調(diào)整,不再以基礎(chǔ)理論和算法為主,而是在課程設(shè)計(jì)中加入更多利用所學(xué)知識(shí)和技能解決實(shí)際問題的案例,強(qiáng)調(diào)知識(shí)的應(yīng)用性。
遵循“理論知識(shí)要夠用且實(shí)用”的原則,對(duì)傳統(tǒng)的教學(xué)內(nèi)容進(jìn)行了重新構(gòu)建和篩選,剔除了部分理論性強(qiáng)但實(shí)際應(yīng)用較少的數(shù)據(jù)結(jié)構(gòu)(如廣義表等)。課程組利用在科研領(lǐng)域的優(yōu)勢,選擇了更易于理解需求的打車系統(tǒng)作為典型案例,并將其與數(shù)據(jù)結(jié)構(gòu)與算法的相關(guān)理論知識(shí)有效地結(jié)合起來,以項(xiàng)目為核心,重塑了課程的教學(xué)內(nèi)容。設(shè)計(jì)了打車系統(tǒng)教學(xué)案例體系,該體系分為五個(gè)階段:第一階段通過對(duì)線性表的更新、插入等操作完成對(duì)系統(tǒng)用戶的注冊(cè)登錄以及用戶信息的修改等功能;第二階段添加訂單類,輸入打車起點(diǎn)與終點(diǎn),通過棧和隊(duì)列結(jié)構(gòu)實(shí)現(xiàn)對(duì)乘客打車的排隊(duì)效果,附帶講解串和數(shù)組的設(shè)計(jì)和實(shí)現(xiàn)思路;第三階段在系統(tǒng)中添加地圖數(shù)據(jù),講解樹和二叉樹基礎(chǔ)知識(shí)和設(shè)計(jì),構(gòu)建二叉樹實(shí)現(xiàn)按層檢索乘客位置,并在此基礎(chǔ)上介紹二叉排序樹與赫夫曼樹的應(yīng)用;第四階段使用圖的知識(shí)構(gòu)建接單距離圖,實(shí)現(xiàn)司機(jī)對(duì)乘客打車信息的查找和排序,根據(jù)附近訂單位置和狀態(tài)接單;第五階段通過地圖數(shù)據(jù)建立成熟路徑圖,系統(tǒng)根據(jù)訂單信息,計(jì)算起止點(diǎn)之間的最短路徑及開銷,并且行程中乘客可以實(shí)時(shí)查看當(dāng)前行車路線導(dǎo)航、里程、時(shí)間以及費(fèi)用等信息。多個(gè)階段學(xué)習(xí)算法與數(shù)據(jù)結(jié)構(gòu)中的表、隊(duì)列、樹與圖等知識(shí)。
3.3? 線上線下混合教學(xué)模式
數(shù)據(jù)結(jié)構(gòu)與算法課程不僅需要讓學(xué)生考試考得好,還需要能夠熟練地編寫程序。在當(dāng)前的環(huán)境下,高校正在減少專業(yè)課程的授課時(shí)間??紤]到學(xué)生的主動(dòng)性、專業(yè)興趣以及學(xué)習(xí)能力等方面存在的差異,為了確保在減少課程時(shí)間的同時(shí)保持教學(xué)質(zhì)量,并滿足不同能力學(xué)生的個(gè)性化學(xué)習(xí)需求,課程組正嘗試結(jié)合一題多解的策略,探索采用SPOC線上線下混合教學(xué)模式。在此模式下,使用數(shù)據(jù)結(jié)構(gòu)與算法課程的優(yōu)質(zhì)在線資源,將通用知識(shí)點(diǎn)的教學(xué)部分移到線上進(jìn)行,同時(shí)在線下課堂以案例講解和討論為主,以提高教學(xué)質(zhì)量。
OBE的核心理念是從傳統(tǒng)的“教室、教師、教材”中心向新的“學(xué)生、學(xué)習(xí)、學(xué)習(xí)效果”中心轉(zhuǎn)變。在SPOC混合教學(xué)模式中,線下的實(shí)體課程采取項(xiàng)目式翻轉(zhuǎn)課堂,將課堂掌控權(quán)交給學(xué)生,利用項(xiàng)目導(dǎo)向的教學(xué)方法來引領(lǐng)學(xué)生主動(dòng)參與、自行探索和動(dòng)手實(shí)踐,將教學(xué)重心從傳授知識(shí)轉(zhuǎn)向培養(yǎng)能力,實(shí)現(xiàn)了真正以學(xué)生為中心,注重學(xué)習(xí)效果的目標(biāo)。以“項(xiàng)目案例需求分析―選擇數(shù)據(jù)結(jié)構(gòu)―算法設(shè)計(jì)―算法評(píng)價(jià)―算法優(yōu)化―項(xiàng)目實(shí)現(xiàn)”的流程為主軸,實(shí)行項(xiàng)目式翻轉(zhuǎn)課堂,通過課堂提問、查閱文獻(xiàn)、項(xiàng)目分析、小組討論、編程實(shí)踐等多種教學(xué)方式,鼓勵(lì)學(xué)生主動(dòng)參與課堂,進(jìn)行思考和編程操作。同時(shí),根據(jù)學(xué)生認(rèn)知水平和專業(yè)技能的不同,靈活調(diào)整教學(xué)策略,采用分層次、分級(jí)別的教學(xué)方法。以打車系統(tǒng)為案例,借助迭代式開發(fā)思想,將復(fù)雜的打車系統(tǒng)功能開發(fā)拆分成“登錄注冊(cè)模塊—個(gè)人信息模塊—訂單管理模塊—出行模塊”進(jìn)行階段迭代式開發(fā)。在每個(gè)功能模塊的首次課堂上,教師會(huì)構(gòu)建情景,并以模塊功能為背景引入新的課題,以此激發(fā)學(xué)生的學(xué)習(xí)興趣。教師總結(jié)歸納,要求學(xué)生針對(duì)具體技術(shù)需求,課前預(yù)習(xí)在線課程,課中分組討論、匯報(bào)項(xiàng)目需求,從而實(shí)現(xiàn)線上線下課程的交叉融合。同時(shí)結(jié)合一題多解的教學(xué)模式,培養(yǎng)學(xué)生的思維與解題能力,起到鞏固、深化、拓寬、綜合應(yīng)用知識(shí)的作用。通過一個(gè)個(gè)階段的模塊功能開發(fā),從課程理論知識(shí)來說,每個(gè)模塊的功能充分結(jié)合數(shù)據(jù)結(jié)構(gòu)與算法中的重要知識(shí)點(diǎn),同時(shí)將知識(shí)點(diǎn)進(jìn)行實(shí)際應(yīng)用,實(shí)現(xiàn)對(duì)知識(shí)點(diǎn)的充分掌握與應(yīng)用;從工程實(shí)踐上來說,整體上實(shí)現(xiàn)迭代式開發(fā),有效串聯(lián)所有功能,達(dá)成開發(fā)整個(gè)復(fù)雜打車系統(tǒng)的最終目標(biāo),實(shí)現(xiàn)了理論與工程實(shí)踐的充分結(jié)合。
4? 結(jié)語
本文結(jié)合“數(shù)據(jù)結(jié)構(gòu)與算法”課程的教學(xué)實(shí)踐,對(duì)現(xiàn)階段教學(xué)中存在的問題進(jìn)行深入分析與探究,闡述了一種基于OBE理念的數(shù)據(jù)結(jié)構(gòu)與算法的迭代式案例教學(xué),旨在根據(jù)學(xué)生上一階段案例學(xué)習(xí)和知識(shí)點(diǎn)掌握的情況,動(dòng)態(tài)調(diào)整下一階段的教學(xué)案例。以迭代的方式將教學(xué)案例與課程知識(shí)點(diǎn)進(jìn)行一一對(duì)應(yīng),通過案例教學(xué)體系貫穿全部授課知識(shí)點(diǎn),使學(xué)生在完成案例學(xué)習(xí)的同時(shí),將知識(shí)體系融會(huì)貫通。此種教學(xué)理念與方法意義深遠(yuǎn),既能夠以迭代式案例激發(fā)學(xué)生的學(xué)習(xí)興趣,開展實(shí)踐教學(xué),同時(shí),又以科教融合為理念,工程項(xiàng)目為推力,促進(jìn)創(chuàng)新實(shí)踐。
參考文獻(xiàn)
[1]華臻,王昕,魏廣芬.電子信息類一流專業(yè)產(chǎn)教融合協(xié)同育人機(jī)制探索[J].教育教學(xué)論壇,2021(47):108-111.
[2]蔣慧琳.當(dāng)前就業(yè)需求下的通信工程專業(yè)人才培養(yǎng)探究[J].就業(yè)與保障, 2021(13):108-109.
[3]劉承波.把握發(fā)展方向,提高創(chuàng)新能力,以服務(wù)國家戰(zhàn)略為根本加快“雙一流”建設(shè)步伐[J].人民論壇,2020(25):42-45.
[4]郭紅,陳維民,劉勝輝.工程教育專業(yè)認(rèn)證背景下OBE人才培養(yǎng)模式研究[J].文化創(chuàng)新比較研究,2021,5(30):95-98.
[5]董美霞,邱澤敏.SPOC模式下《數(shù)據(jù)結(jié)構(gòu)與算法》課程教學(xué)改革探究[J].科幻畫報(bào),2021(10):69-70.
[6]宋沁峰,倪龍飛,李晶晶.基于BOPPPS模式的編程類課程項(xiàng)目驅(qū)動(dòng)式教學(xué)改革與研究[J].電腦知識(shí)與技術(shù),2021,17(21):225-226,254.