李子茂 程林輝
摘要:探討了目前算法設(shè)計與分析課堂存在的問題,提出了科研、競賽與工程實踐相融合的教學方法,并應(yīng)用于課堂教學、實踐教學和成績考評各環(huán)節(jié),旨在通過因材施教,使不同類型的學生根據(jù)自己的興趣和思維方式選擇科研、競賽或工程實踐為導向的學習方式,力求讓每個學生在興趣中學習和進步。
關(guān)鍵詞:科研教學;工程實踐;競賽融合;因材施教
中圖分類號:TP391 文獻標識碼:A 文章編號:1009-3044(2015)22-0085-02
偉大的算法和程序設(shè)計技術(shù)的先驅(qū)者、計算機科學家Danold E. Knuth指出 “計算機科學即是算法的研究”,算法設(shè)計與分析設(shè)計不僅是國內(nèi)外大學中計算機類和信息工程類專業(yè)本科生的核心課程,也是計算機學科研究生的學位課程,該課程在本科和研究生階段的的整個課程體系中都發(fā)揮著重要的作用。在科學技術(shù)和社會經(jīng)濟水平飛速發(fā)展的今天,傳統(tǒng)的課堂上講好經(jīng)典算法+實踐課上做驗證性實驗的教學方式已無法滿足教學效果需要了。在高度信息化的現(xiàn)代大學中,學生的思維和理想被最大程度的激發(fā),一門課程和一個老師要想滿足大多數(shù)學生的知識需求是很難的。為了能夠從容面對學生求知若渴的眼神,為了讓這門課在他們當前培養(yǎng)體系和未來的職業(yè)生涯中發(fā)揮其應(yīng)有的作用,算法課程的教師們不斷的嘗試著各種各樣的教學改革。文獻[1]和[2]提出了基于ACM-ICPC模式的算法分析與設(shè)計課程實踐教學改革,文獻[3]和[4]提出了將翻轉(zhuǎn)教學用于算法課程中,文獻[5]提出了面向不同層次學生的算法課程教學改革,還有一些教師將先進的教學輔助手段用到了算法教學的課堂中,例如文獻[6]提出了算法可視化的教學輔助平臺,文獻[7]介紹了蟻群算法的教學輔助平臺和教學效果,這些改革措施都在實際教學中取得了很好的效果。但是,單一的改革方式只能優(yōu)化算法教學的冰山一角,最好的改革應(yīng)該是立足于學生,因材施教。每個走進大學校園的學生都是寒窗苦讀之后飛進象牙塔的天之驕子,沒有差生,有的只是不同的興趣,不同的思維方式。他們有的思維活躍善于創(chuàng)新,有的思維縝密善于邏輯推理,有的思維沉靜善于鉆研?;诖?,針對課堂教學環(huán)節(jié)、實踐課環(huán)節(jié)和成績考核環(huán)節(jié),本文提出了科研、競賽與工程實踐相融合的三位一體的算法分析與設(shè)計課程教學方法。
1 課堂教學環(huán)節(jié)
由于學時限制,傳統(tǒng)的算法分析與設(shè)計課堂一般會主講或只講一些經(jīng)典算法,例如:基于蠻力、分治、減治、動態(tài)規(guī)劃、貪心等設(shè)計技術(shù)的算法,很難抽出時間去講解新的算法設(shè)計技術(shù),例如回溯、分支限界法、隨機算法和啟發(fā)式算法等。若算法課程只關(guān)注經(jīng)典算法和對經(jīng)典算法的驗證,就會令學生成為井底之蛙、固步自封。在現(xiàn)今,算法的使用已經(jīng)滲透到日常生活中的各種控制系統(tǒng)中,如果脫離具體應(yīng)用,讓學生學習純算法,就令學生陷入了讀死書的困局。因此,針對學生情況的不同,筆者將課堂教學的一些改革措施用到了實際教學中,并取得了較好的效果。
天生“學生”之才必有用,結(jié)合學生的不同特點,將學生分為科研型、競賽型和工程實踐性三類。教師不對學生盲目歸類,在教學的過程中潛移默化的傳授他們科研、競賽和工程實踐的精神,令學生自主選擇。為了能夠在課堂教學中科研、競賽和工程實踐并重,教師在課堂授課時需要做到如下幾點:
1)教師選擇經(jīng)典中之經(jīng)典的幾個算法進行詳細講解,講清楚算法原理和編程思路之后,著重分析其時間復雜度。
2)為學生講解最新期刊上發(fā)表的(1)中的幾個算法的論文,介紹其改進方案,以及在時間復雜度或其它方面的改進,帶領(lǐng)學生將該算法學懂學精。
3)選擇ACM競賽中與(1)中幾個算法相關(guān)的賽題,在課堂上與學生一起分析。
4)用(1)中幾個算法實現(xiàn)現(xiàn)實生活中的實際問題,將所學算法第一時間用于工程實踐。
5)講完幾個經(jīng)典之經(jīng)典算法之后將回溯、分支限界法、隨機算法、啟發(fā)式算法搬入課堂,帶領(lǐng)學生在科研、競賽和工程實踐三方面同時強化這些算法。
做到了上述五點,就可以兼顧三種類型學生的需求,令每個學生了解什么是科研,什么是競賽,什么是工程實踐,明白自己適合向哪個方面發(fā)展。之后,在實踐課階段選擇自己適合的方向進行實驗和拓展。那些被排除在經(jīng)典之經(jīng)典算法之外的經(jīng)典算法,可以讓學生用翻轉(zhuǎn)教學的方式學習,教師用較短的時間進行答疑。
在科研、競賽和工程實踐并重的課堂教學環(huán)境下,每個同學都對算法設(shè)計技術(shù)有了全面而深刻的認識,雖然比傳統(tǒng)課堂中學的算法類型少,但是學的精,教師真正做到了“授之以漁”。
2 實踐教學環(huán)節(jié)
教學環(huán)節(jié)的全面撒網(wǎng),是為了每個學生都能找到自己的優(yōu)勢并進行收獲。所以實踐教學環(huán)節(jié)應(yīng)該充分發(fā)揮學生的自主性。教師可以將每個實驗內(nèi)容編為三選一的題目。比如一道算法改進題,一道ACM競賽題,一道路由資源的算法分配題,令學生根據(jù)自己的情況自主選擇。為了不打擊學生的自信心,算法的題目不能出的太難,應(yīng)該每次實驗兼顧各種難度的題型。令學生在攻克一道道算法問題的時候充滿信心,逐步引導他們走進算法的海洋。要做到這些,教師需要做如下準備和工作:
1) 精心研讀各種算法的算法改進方案,給出學生合理的引導,令他們不要誤入科研的死胡同。
2) 收集ACM競賽試題,并且按算法分類,每次實驗都能拿出合適的題目來訓練學生。
3) 涉及工程實踐的算法源程序通常很長,讓學生從讀程序開始學起,讀懂了之后去改變程序,實現(xiàn)其它的功能。
每個實驗完成之后,教師需要認真批改學生的實驗,選出優(yōu)秀的作品,組織學生進行討論,讓同學們在討論中認可自己,同時學習其它同學的算法思維方式,改進自己的算法設(shè)計能力。
3 成績考核環(huán)節(jié)
課堂教學環(huán)節(jié)負責全面撒網(wǎng),實踐環(huán)節(jié)負責重點收獲,成績考核環(huán)節(jié)則需要檢驗學生學習知識的廣度和精度,讓學生認識自己學習的程度,然后進步。在實際教學中筆者將成績考核環(huán)節(jié)分為平時成績(作業(yè)和點到)、實驗成績和期中、期末成績。實驗考察學生的編程能力,期末考察經(jīng)典算法學習情況,期中考察新算法、競賽能力和工程實踐開發(fā)情況。
實驗成績根據(jù)實驗情況、實驗記錄和學生口頭闡述為依據(jù),要求科研型的學生做完美的推理、縝密的闡述,要求競賽型的學生快而準,要求工程實踐型的學生細心周到克服實際開發(fā)中的各種麻煩。期中考試要求學生上交小論文或科學報告來描述自己的設(shè)計或創(chuàng)新,期末考試為閉卷考試,現(xiàn)在很多課程都喜歡設(shè)置為開卷考試,但是算法設(shè)計與分析課程作為一門重要的核心課程,對于計算機和信息專業(yè)的學生而言,就像我們小時候背的乘法律,有些內(nèi)容牢記了,對于日后的學習是可以起到事半功倍的作用的。
成績評定方式是一種督促的手段,這種手段用好了可以檢驗學生的能力,提高他們的積極性,用的不好,會打擊學生的信心。因為在實驗課和期中測試中,都采用學生自主選擇方式,因此,要根據(jù)學生類型制定評分標準:
1)對于科研型的學生,要根據(jù)他們讀科學文獻的數(shù)目、對文獻的理解程度和自己改進方案的合理性和實現(xiàn)情況綜合評定;
2)對于競賽型的學生,要根據(jù)他們的解題速度和解題方法的靈活性來進行成績評定,仿照ACM比賽規(guī)則,若答錯一題則倒扣分;
3)對于工程實踐型的學生,需要讓他們將一個大問題劃分為幾個模塊,將幾個小模塊實現(xiàn)之后再整合成一個完整的系統(tǒng),綜合考評他們面對一個具體問題時的分析和解決能力。
學生根據(jù)教師提出的評分標準,自然會以考試和考評為督促手段,在科研、競賽或工程實踐中養(yǎng)成好的習慣,提高自己算法設(shè)計的綜合能力。
4結(jié)論
本文提出了科研、競賽與工程實踐三位一體的算法設(shè)計與分析課程教學方法,并應(yīng)用于實際教學中。通過科研、競賽和工程實踐并重,經(jīng)典算法為導向的課堂教學,令學生可以具備三方面的基本能力和選擇能力,并且在后面的實踐環(huán)節(jié)和考核環(huán)節(jié)中自主選擇適合自己的學習方式和知識拓展方式,最終在興趣中學習算法課程,為學生未來的職業(yè)生涯打下堅實的基礎(chǔ)。
參考文獻:
[1]劉曉璐.基于ACM-ICPC模式的算法分析與設(shè)計課程的建設(shè)與實踐[J].中國教育信息化:基礎(chǔ)教育,2015(5):65-67.
[2]李華,趙建平.基于ACM—ICPC的算法設(shè)計與分析課程改革[J].計算機教育,2013(7):88-91.
[3]高麗萍,劉亞,彭敦陸等.翻轉(zhuǎn)教學在算法設(shè)計與分析中的應(yīng)用研究[J].計算機時代,2014(11):59-61.
[4]張銘.立足北大,放眼未來——“數(shù)據(jù)結(jié)構(gòu)與算法”MOOC課程教學實踐與思考[J].工業(yè)和信息化教育,2014(9):65-73.
[5]陳翔.面向不同層次學生的算法設(shè)計與分析課程教學改革探索[J].計算機教育,2014(18):19-22.
[6]周忠,強津培,戴松.算法可視化的計算機輔助教學平臺設(shè)計與實踐[J].計算機教育,2014(16):81-84.
[7]呂小峰,李靜,俞素凱.基于蟻群算法的教學輔助系統(tǒng)設(shè)計與實現(xiàn)[J].實驗室研究與探索,2009(5):49-52.