陳 艷,許麗娟,文曉棠
(廣州華商學院數(shù)據(jù)科學學院,廣東 廣州 510520)
算法設(shè)計與分析課程是普通高校計算機相關(guān)類專業(yè)的核心基礎(chǔ)課程。由于該課程需要較多數(shù)學知識,課程內(nèi)容多且難,因此有相當一部分學生對該課程有恐懼感。為了提高課程的教學質(zhì)量,改變學生現(xiàn)有的不佳學習狀態(tài),課程教學必須改革。
對于算法設(shè)計與分析課程,學生學得吃力,老師教得辛苦,究其原因主要如下。
該課程的前導課程為高等數(shù)學、離散數(shù)學、數(shù)據(jù)結(jié)構(gòu)和程序設(shè)計類課程,這些課程對于學生來說本身難度就較大,尤其數(shù)學類課程,掌握的程度有些學生并不理想,當在算法分析與設(shè)計課上需要應(yīng)用的時候,就感覺前導課程的儲備不夠,用得吃力。
算法課要講解較多的理論知識,如問題的原理、數(shù)學模型和復雜性的分析等,這些內(nèi)容是算法分析的基礎(chǔ),雖然學生聽得枯燥,卻是需要重點講授的內(nèi)容。課程本身有難度,邏輯性非常強,每個算法中的知識點一環(huán)套一環(huán),學生在學習時只要其中一個環(huán)節(jié)沒搞明白,就可能不能理解整個算法。算法和算法之間可能還存在關(guān)聯(lián),前一個算法不理解,會直接影響到后面算法的學習。
課程除了難度大之外,知識點也非常多,如要學習的算法有遞歸技術(shù)與分治法、貪婪法、動態(tài)規(guī)劃法、回溯法、分支限界法等,還包括計算機應(yīng)用領(lǐng)域的一些算法,而課時數(shù)不多。所以,要求學生理解算法思想,舉一反三靈活運用,難度就非常大。
通過有限理論課的學習,要求學生能對理論課的知識快速接受并通過編程實現(xiàn),且能解決實際生活中的問題,對動手能力不強,或者算法基本知識掌握不夠好的學生來說非常困難。
針對上述問題,對教師來說,如何上好算法設(shè)計與分析課程,也是一個很大的挑戰(zhàn)。根據(jù)筆者多年該課程教學過程中的探索,發(fā)現(xiàn)基于應(yīng)用能力的培養(yǎng)對于算法設(shè)計與分析課程的教學效果更好。
傳統(tǒng)的算法設(shè)計與分析類教材,雖然有經(jīng)典的論述,但對學生來說閱讀和理解有困難,容易讓學生產(chǎn)生畏懼疲勞感。因此我們要在現(xiàn)有教材基礎(chǔ)上,研究將邏輯性極強、難度大的教學內(nèi)容與實際生活中的應(yīng)用聯(lián)系起來,將生活中的案例與書上的算法理論結(jié)合起來。用算法解決生活當中的實際問題,提高學生對算法理論的接受度,消除學生的畏懼心理,激發(fā)其學習興趣。比如講授動態(tài)規(guī)劃策略中的最長公共子序列問題時,以基因比對為例,應(yīng)用到失聯(lián)兒童的尋親,或者當前疫情下通過新冠病毒序列的比對,來分析病毒的來源等,學生對此十分有興趣,對此算法學習的興趣也大大提升。
提煉經(jīng)典算法,并增加最新的應(yīng)用廣泛的比如人工智能、大數(shù)據(jù)方面的算法。算法的應(yīng)用十分廣泛,在現(xiàn)今人工智能、大數(shù)據(jù)時代更是如此。在算法設(shè)計與分析授課過程中,結(jié)合最新的技術(shù)領(lǐng)域的應(yīng)用,更能讓學生理解到該課程學習的重要性和必要性。
教學內(nèi)容上的改革研究,關(guān)鍵是重組教學內(nèi)容,豐富與書本算法理論匹配的生活中實際應(yīng)用的案例,將枯燥的理論知識賦予生機,讓學生體會到學習的不僅僅是算法,而是用所學的知識去解決實際生活中的問題,是提升自己對社會作貢獻的能力。
課堂上難度大的知識點,借助動畫或者動態(tài)圖的方式來輔助復雜邏輯的理解,將枯燥的理論變得生動有趣,筆者已經(jīng)在課堂上將部分知識點予以實施,收效不錯。在課堂上嘗試翻轉(zhuǎn)課堂的模式,對于較簡單的知識點把講臺交給學生來分享??梢杂蟹纸M討論的環(huán)節(jié)分布在各個理論或者實踐教學中。
除了課堂授課之外,對于難度大的知識點用微視頻的方式課前預習或者課后復習,甚至可以借助微信或者QQ 開設(shè)微課堂,對于重要的教學內(nèi)容設(shè)置微信小程序?qū)嵭袑W習打卡制度,學生對于課外的這種學習要求,既有學習壓力又有學習興趣和動力,對其學習積極性的調(diào)動十分有益。
因此,教學手段和方法上的改革研究的關(guān)鍵是研究如何把現(xiàn)代化的IT 產(chǎn)物合理的應(yīng)用到教學中來,讓學生從刻板的傳統(tǒng)教學方式中解脫出來,積極參與教學,把課外的時間主動利用起來學習。
在教學方法上,傳統(tǒng)的單純由教師進行講授的授課方法,不利于學生主動思考,學生在具體實踐操作過程中往往具有盲目性和機械性,因此實踐課的安排要充分的把課內(nèi)理論和應(yīng)用結(jié)合起來,甚至把課外的時間充分利用起來。課內(nèi)實驗課意在鞏固算法自身理論,是課堂內(nèi)容對應(yīng)的最基本的實踐要求。除此之外,補充各個知識點在實際生活中的應(yīng)用實踐,每次課后提供多個實踐應(yīng)用項目可選,學生可以選擇一個或者多個去完成,也可以自己去挖掘相應(yīng)知識點的應(yīng)用場景來完成。此任務(wù)需要利用學生的課外時間,有硬性要求的任務(wù),也有可做可不做的任務(wù)。對于工作量大的實踐任務(wù),采取分組的方式,在任務(wù)的完成過程中,要充分體現(xiàn)團隊協(xié)作過程中每個成員的具體工作,也要體現(xiàn)出團隊執(zhí)行的優(yōu)勢。對于學生課外實踐的優(yōu)秀成果,引導他們在科研上有發(fā)展,在公開刊物上發(fā)表技術(shù)論文。對于有余力的學生,引導他們參加“藍橋杯”等各類國家級省級競賽。鼓勵學生報考國家級相關(guān)的認證資質(zhì)。借助程序設(shè)計競賽實施“算法設(shè)計與分析”課程教學改革,將程序設(shè)計競賽與課程教學有機融合,建立“以賽勵教、以賽督學”的教學模式,能夠有效地提高“算法設(shè)計與分析”課程的教學質(zhì)量。
課堂/課后實踐方式改革的關(guān)鍵是題庫、資源庫的建立,將大型IT 企業(yè)的??济嬖囶},“藍橋杯”競賽題以及各類大型專業(yè)技術(shù)論壇的題收集整理,按算法類別進行分類并標識難度系數(shù),不同難度系數(shù)的題庫和資源庫建立后,通過大量的練習,對于提升學生動手動腦的能力有較大的幫助,對于促進學生深入研究和參加競賽都有順水推舟的作用。
改變傳統(tǒng)的以分數(shù)論英雄的評價模式,將評價標準向?qū)嵺`能力傾斜,將期末考試成績在綜合成績的占比下調(diào),引入實踐能力考核和課堂貢獻考核成績的比重。如圖1所示,實踐能力是平時實驗的完成情況、課外小型項目的完成情況、和綜合素質(zhì)的情況(如團隊協(xié)作精神)等多方面的綜合評價;課堂貢獻包括學生制作小視頻,實現(xiàn)算法在生活中應(yīng)用的案例程序和發(fā)掘算法對應(yīng)生活中案例等的貢獻。
圖1 課程教學評價指標
將學生平時表現(xiàn)、課堂課外的實踐能力、課堂貢獻和期末卷面考試成績按照2:2:2:4 的比例制定課程最終的考核標準。平時成績包括考勤、作業(yè)完成情況以及課堂表現(xiàn);實踐能力包括上機實驗、項目的完成情況和綜合能力的考核;課堂貢獻包括在學習平臺的回答問題解決問題以及互動的情況,提供學習小視頻等能幫助同學進步的情況。通過這種新的評價方法,強化了對學生實踐能力的要求,對學生主動學習和實踐給予了肯定,消除了平時不學習,考前臨時抱佛腳也能考出好成績的局面。
改革前,算法設(shè)計與分析課堂學生參與度一般,改革后,學生的積極性有大幅提升,表現(xiàn)在考勤、作業(yè)完成情況、課中課后主動與老師溝通或者問問題的情況和主動參與課程案例建設(shè)的情況?,F(xiàn)在算法課再也不是壓在學生身上的一座大山,而是學生們每周期待的一門課。
傳統(tǒng)的“以考代練”的方式,對于經(jīng)歷了高中三年魔鬼式訓練的學生來說,應(yīng)用于大學階段的學習并不合適,而“以練代考”的方式反而更能激發(fā)學生的學習興趣,讓學生擺脫考試的束縛,能專注于把知識學懂學通,花更多的精力在知識的應(yīng)用上,而不是應(yīng)付考試的死記硬背。學生有了更自由的發(fā)展和發(fā)揮空間,反而在專業(yè)能力上的提升更明顯。表現(xiàn)在畢業(yè)設(shè)計選題上,早期指導老師設(shè)置的算法類命題基本無人問津,近兩年逐步出現(xiàn)了學生選擇此類課題的現(xiàn)象,尤其2022 屆畢業(yè)設(shè)計的選題,選擇此類課題的學生達到了20人以上。
通過在算法課堂開展的實踐教學與訓練活動,并開展由算法教學課程組主導的賽前培訓,學生參加“藍橋杯”競賽的人數(shù)和獲獎情況近兩年明顯增加。
從表1可知,算法課程改革以來,從第十一屆開始,藍橋杯參賽人數(shù)有了突飛猛進的增長,反應(yīng)了學生參加的積極性大幅提升,獲獎人數(shù)也有了很大增長,說明學生的專業(yè)能力得到了明顯提升。
表1 近年“藍橋杯”參賽情況
算法設(shè)計與分析課程,作為計算機類專業(yè)的核心課程,老師如何教好、學生如何學好,對于學生專業(yè)能力的培養(yǎng)至關(guān)重要。以基于學生應(yīng)用能力培養(yǎng)為目標的算法設(shè)計與分析課程的教學,能激發(fā)學生的學習興趣,并以此帶動學生在畢業(yè)設(shè)計選題方面的多樣化、專業(yè)能力競賽方面的熱情,甚至對學生的就業(yè)也提供了更多的可選擇領(lǐng)域。經(jīng)過實踐,本文探索的教學內(nèi)容、教學方法/手段、實踐教學和考核方式等方面的改革,取得了良好效果,希望能為計算機類其他課程提供參考。