李其申 黃華 張永
【摘 要】 針對目前算法設(shè)計與分析課程教學(xué)中存在的不足,文章從教學(xué)內(nèi)容、教學(xué)方法、考核方式等方面進行改革。優(yōu)化教學(xué)內(nèi)容、采用階段式多元化教學(xué)方法、加強過程考核、建立課外創(chuàng)新團隊“以賽促教”,目的是提高教學(xué)效果、提升學(xué)生運用知識能力和綜合素質(zhì)能力。
【關(guān)鍵詞】 算法設(shè)計與分析 ?教學(xué)改革 ?以賽促教
引言
近年來,隨著計算機技術(shù)的迅猛發(fā)展,在當(dāng)今大數(shù)據(jù)與“互聯(lián)網(wǎng)+”時代,大學(xué)生更需要堅實的專業(yè)知識才能跟上科技的腳步。而算法設(shè)計作為計算機專業(yè)課程更加凸顯其重要性。從事與算法相關(guān)的軟件開發(fā)、維護和運營是當(dāng)前高校計算機畢業(yè)生的一個就業(yè)熱點,如何使算法設(shè)計與分析課程建設(shè)更適合于計算機應(yīng)用型人才的培養(yǎng)需求是一個重要的問題。基于此,針對算法設(shè)計與分析課程存在的問題及現(xiàn)狀,就算法設(shè)計與分析課程教學(xué)方法、網(wǎng)絡(luò)輔助教學(xué)、考核機制以及實踐教學(xué)環(huán)節(jié)問題,提出了相應(yīng)的教學(xué)改革措施和策略,并按照“分級遞進、逐步提高、綜合應(yīng)用”原則設(shè)計實踐教學(xué),使學(xué)生能夠達到新工科背景下計算機專業(yè)人才培養(yǎng)目標(biāo)的要求及就業(yè)需求。
計算機編寫程序解決問題,先要設(shè)計出解決問題的算法,因此算法是程序設(shè)計的基礎(chǔ)?!端惴ㄔO(shè)計與分析》是計算機、網(wǎng)絡(luò)工程、軟件工程、信息安全等專業(yè)的一門重要專業(yè)課。通過課程的學(xué)習(xí),使學(xué)生能夠理解并掌握常用的算法設(shè)計技術(shù)和實現(xiàn)方法,培養(yǎng)學(xué)生分析算法復(fù)雜度的能力,并引導(dǎo)學(xué)生根據(jù)問題建立數(shù)學(xué)模型、進行算法設(shè)計和復(fù)雜度分析,增強其解決工程和生活中實際問題的能力。為順利對口就業(yè)奠定基礎(chǔ)。
1. 存在的問題
算法設(shè)計與分析課程是一門理論與實踐并重的課程,主要依靠理解與實踐,并加以靈活應(yīng)用。但在教學(xué)過程中學(xué)生對課程掌握的情況不理想,一方面源于學(xué)生知識學(xué)習(xí)深度不夠,另一方面源于教師缺乏有效的教學(xué)方法和手段。
大多高校對該課程仍以理論講授為主,一般是給出一些典型的問題,采用經(jīng)典的算法求解。這些典型問題大部分偏理論,過少甚至缺失算法編程實踐,與實際生產(chǎn)中的問題有距離,且難度較大,學(xué)生會有畏難情緒,影響學(xué)生學(xué)習(xí)積極性,被動接受知識,缺乏獨立思考,一定程度上影響了教學(xué)效果。在該課程的教學(xué)過程中,如何使學(xué)生具備更強的獨立探求新技術(shù)和新方法的能力、創(chuàng)新能力和適應(yīng)能力是當(dāng)前該課程教學(xué)所面臨的重要問題。針對課程特點和教學(xué)中存在的問題,采取了以下的方式和方法改進教學(xué)。
2. 改進措施
2.1 優(yōu)化教學(xué)內(nèi)容
本課程主要講授算法的設(shè)計技術(shù)和分析方法,包括基礎(chǔ)知識、有代表性的算法設(shè)計技術(shù)、算法分析與問題的計算復(fù)雜度、NP完全性理論等。內(nèi)容可分三部分:第一部分算法分析基礎(chǔ);第二部分是算法設(shè)計策略;第三部分算法能力的極限,主要是求解困難問題。內(nèi)容組織上本著“設(shè)計與分析并重、理論與實踐應(yīng)用結(jié)合、經(jīng)典與現(xiàn)代互補”的原則,同時擴展介紹本學(xué)科領(lǐng)域的前沿知識,增加有關(guān)大數(shù)據(jù)挖掘的算法、神經(jīng)網(wǎng)絡(luò)的知識、并行編程技術(shù)等,內(nèi)容體現(xiàn)“經(jīng)典性”、“前沿性”、“創(chuàng)新性”特點。
結(jié)合競賽和教師科研內(nèi)容去融入教學(xué)中,尤其是在講解蠻力算法問題時,通過科研項目案例幫助學(xué)生理解后續(xù)算法的完備性;講解線性規(guī)劃、近似算法和隨機算法,這些是實用性較強的算法,教學(xué)重點如何運用這些實用算法去解決實際生活中的問題,增強學(xué)生的學(xué)習(xí)興趣,讓學(xué)生感到學(xué)有所用,即培養(yǎng)學(xué)生對所學(xué)算法的實際應(yīng)用能力。最終達到使學(xué)生可以用基本理論去解決實際問題的目標(biāo)。
2.2. 階段式多元化教學(xué)法
以學(xué)生為中心,在教學(xué)任務(wù)的不同階段靈活運用多元化教學(xué)法。該教學(xué)法是將教學(xué)任務(wù)劃分為多個階段,有步驟有計劃有明確目標(biāo)地進行,根據(jù)各階段教學(xué)內(nèi)容特點融合多種教學(xué)法實施教學(xué)。
第一部分算法分析基礎(chǔ)階段主要采用案例教學(xué)法、任務(wù)驅(qū)動教學(xué)法、翻轉(zhuǎn)課堂教學(xué)法。建立網(wǎng)絡(luò)教學(xué)平臺,將章節(jié)視頻、案例視頻、教學(xué)課件、作業(yè)任務(wù)、練習(xí)庫等相關(guān)教學(xué)資料內(nèi)容放置到教學(xué)平臺,輔助課程教學(xué),將課堂教學(xué)延伸到課外,供學(xué)生自主學(xué)習(xí)和復(fù)習(xí)。
第二部分是算法設(shè)計策略學(xué)習(xí)階段,主要采用啟發(fā)教學(xué)法、案例教學(xué)法、分組討論法、任務(wù)驅(qū)動教學(xué)法。例如在講解線性規(guī)劃模型時,可以通過銀行理財?shù)陌咐龁l(fā)教學(xué),同時采用分組討論如何利用不同的算法在理財時達到收益最大化,以現(xiàn)實生活熱點案例學(xué)習(xí)討論激發(fā)學(xué)生的學(xué)習(xí)興趣;例如背包問題、資源分配問題等,采用不同的策略求解,分析比較各種策略的優(yōu)缺點,使學(xué)生理解各種算法策略的特點、學(xué)生通過編寫程序?qū)崿F(xiàn),理論聯(lián)系實際,學(xué)習(xí)在求解實際問題中,如何合理地選擇所需要的策略,幫助學(xué)生加深對算法的理解。
第三部分算法能力的極限學(xué)習(xí)階段,主要是求解困難問題。該階段屬于拓展學(xué)習(xí)階段,主要采用基于問題的教學(xué)法、案例教學(xué)法、項目教學(xué)法。這個學(xué)習(xí)階段可先通過經(jīng)典、有趣的實例來說明,使學(xué)生了解的大致解決思想,然后再通過閱讀相關(guān)科技文獻的方法加深對算法的理解。這樣不僅可以讓學(xué)生較容易地掌握相關(guān)算法,還可以讓其了解相關(guān)領(lǐng)域的研究狀況。
2.3 考核方式改革
算法設(shè)計與分析課程除了期末考試以外,應(yīng)該考核方式多樣化,增加平時考核和過程考核。注重評判學(xué)生平時課堂上的積極性,作業(yè)的完成效果,學(xué)生的創(chuàng)新能力,即注重對學(xué)生的過程性考核。為了激發(fā)學(xué)生參加學(xué)習(xí)的興趣,教師對學(xué)生參加?!叭 表椖?、老師的科研項目、藍橋杯等類似的程序設(shè)計競賽的積極表現(xiàn)和獲獎應(yīng)該給予“加分”激勵。利用過程性考核和最終的理論測試考核相結(jié)合的方式來綜合評價學(xué)生。課程總成績分三方面考核(1)理論知識考核,包括算法知識點理解記憶,同時也包括代碼的編寫能力與風(fēng)格以及設(shè)計模式的應(yīng)用,此部分采用筆試,占50% ;(2)平時的課堂參與度與課堂習(xí)題完成情況認(rèn)定,占20% ;(3)實踐考核,上機實踐及實踐能力考核(其中包括由學(xué)生參賽、參與科研情況及已獲得的成果)占30%。
2.4 創(chuàng)建課外創(chuàng)新團隊加強實踐改革
依靠課內(nèi)學(xué)時培養(yǎng)學(xué)生的算法設(shè)計、分析和創(chuàng)新能力是遠遠不夠,還要將實驗環(huán)節(jié)與各種程序設(shè)計大賽相結(jié)合,鼓勵學(xué)有余力的學(xué)生積極參與相關(guān)比賽的訓(xùn)練或?qū)嵺`團隊[1]。這些競賽以程序設(shè)計語言為依托,以算法設(shè)計為重點,考察學(xué)生綜合實踐應(yīng)用能力。
創(chuàng)建學(xué)生課外創(chuàng)新團隊,在本科生導(dǎo)師制的基礎(chǔ)上,成立由各年級學(xué)生自愿參加的學(xué)生創(chuàng)新團隊,并為團隊命名,以凝聚吸引力和合作精神。團隊包括大一、二、三年級學(xué)生,主要以大二、三年級學(xué)生為主的“以老帶新”的梯隊建設(shè)原則,由專業(yè)的專任教師進行計劃性、系統(tǒng)性地課外教學(xué)和實踐指導(dǎo)。教師鼓勵學(xué)生參加科研項目、藍橋杯、ACM-ICPC等各項競賽,側(cè)重考查學(xué)生解決實際問題的能力,能較好地培養(yǎng)學(xué)生自主學(xué)習(xí)、分析解決實際問題及團隊合作的能力。作者指導(dǎo)學(xué)生的作品在第十四屆“挑戰(zhàn)杯”全國大學(xué)生課外學(xué)術(shù)科技作品競賽江西賽區(qū)決賽獲科技發(fā)明B類一等獎(本科組)。指導(dǎo)學(xué)生參加中國高校計算機大賽-團體程序設(shè)計天梯賽獲總決賽團一等獎。指導(dǎo)學(xué)生參加國家大學(xué)生創(chuàng)新訓(xùn)練計劃項目“基于STM32的校園快遞自助收發(fā)終端”、“面向發(fā)電裝備的工況數(shù)據(jù)模擬試驗臺性能測試”等項目均獲獎。
結(jié)束語
綜上所述,如何培養(yǎng)學(xué)生善于學(xué)習(xí)新知識和運用知識解決實際問題的能力, 對教師的教學(xué)活動是很大的挑戰(zhàn)。要培養(yǎng)高素質(zhì)、具有創(chuàng)新能力的學(xué)生,還必須建設(shè)高水平的教師隊伍。在以后的教學(xué)工作中,將進一步加強課程建設(shè),培養(yǎng)學(xué)生對算法學(xué)習(xí)的興趣,提高學(xué)生獨立分析問題及解決問題的實際動手能力。
參考文獻
[1] 陳英,江智康,章文貴,裴威鳳.算法設(shè)計與分析課程以賽勵教的教學(xué)模式及效果分析[J]. 高教學(xué)刊,2020(6):77-79.
[2] 孫廷凱 , 於東軍 , 孔慧 , 張宏 , 陸建峰 .“算法設(shè)計與分析”課程探究式教學(xué)改革實踐 [J]. 工業(yè)和信息化教育, 2017(10).
[3] 張銀柯,陳瑞芳.算法設(shè)計與分析教學(xué)改革[J].內(nèi)江科技, 2017(11).
[4] 吳川,孫錦程.基于ACM的《算法設(shè)計與分析》教學(xué)改革研究[J].中國科教創(chuàng)新導(dǎo)刊, 2010(32).
[5] 孫廷凱,於東軍,孔慧,張宏,陸建峰.“算法設(shè)計與分析”課程探究式教學(xué)改革實踐[J].工業(yè)和信息化教育, 2017(10).
[6] 王智峰,張學(xué)東,王莉,丁寧.算法設(shè)計與分析課程教學(xué)改革[J].中國冶金教育, 2018(06).
*基金項目:南昌航空大學(xué)第四批校級創(chuàng)新創(chuàng)業(yè)教育課程培育項目“算法設(shè)計與分析”
作者簡介:李其申(1975-) 博士學(xué)位,副教授,主要研究方向:計算機應(yīng)用技術(shù)、算法設(shè)計與分析