王金艷
摘 要:文章針對“算法設(shè)計與分析”課程中存在的學(xué)生熱情不高、利用算法解決實際問題能力欠缺、課程考試成績與實際水平不符等諸多問題,在程序設(shè)計競賽受到高度重視的背景下,從課堂教學(xué)、實踐教學(xué)、課程考核和課外活動等方面進(jìn)行改革,建立“以賽勵教、以賽督學(xué)”的教學(xué)模式,激勵教師提升自身知識和教學(xué)能力,充分激發(fā)學(xué)生的學(xué)習(xí)熱情,提高學(xué)生的創(chuàng)新能力以及利用算法解決實際問題的能力,同時培養(yǎng)學(xué)生的合作和表達(dá)能力。
關(guān)鍵詞:程序設(shè)計競賽;算法設(shè)計與分析;教學(xué)模式
算法被譽為計算機學(xué)科的靈魂,無論是計算科學(xué)還是計算實踐,算法都在其中扮演著重要角色[1-2]。算法是計算機科學(xué)研究的重要分支,更是支撐計算機科學(xué)大廈的核心和基石,沒有算法就沒有計算機程序,也就沒有現(xiàn)在蓬勃發(fā)展的信息技術(shù)[3]?!八惴ㄔO(shè)計與分析”課程是計算機相關(guān)專業(yè)的專業(yè)基礎(chǔ)課,在國內(nèi)外各大高校計算機專業(yè)課中處于核心地位。該課程要求學(xué)生具備扎實的數(shù)學(xué)能力以及良好的程序設(shè)計語言和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ),通過系統(tǒng)學(xué)習(xí)算法設(shè)計和分析的原理和方法,培養(yǎng)學(xué)生獨立設(shè)計算法和正確分析算法計算復(fù)雜性的能力,從而提高學(xué)生用算法解決實際問題的能力,這為學(xué)生將來從事計算機相關(guān)行業(yè)的研究與開發(fā)工作奠定堅實的基礎(chǔ)。如何有效地激發(fā)學(xué)生的熱情,促進(jìn)學(xué)生對算法設(shè)計和分析方法的理解和掌握,提升學(xué)生解決實際問題的能力,一直是“算法設(shè)計與分析”課程面臨的一個重要挑戰(zhàn)。
1 “算法設(shè)計與分析”課程教學(xué)中存在的問題
課堂教學(xué)活動不僅是教師傳授知識的過程,也是培養(yǎng)學(xué)生運用算法設(shè)計的思想解決實際問題的過程。有效地組織課堂教學(xué)活動,對提高學(xué)生學(xué)習(xí)主動性,提升學(xué)生對知識的靈活運用有重要的影響。但是目前我校計算機科學(xué)與信息工程學(xué)院對“算法設(shè)計與分析”課程教學(xué)仍然采用以教師為中心的傳統(tǒng)教學(xué)結(jié)構(gòu),因而存在諸多問題,具體表現(xiàn)如下。
1.1 教學(xué)方法落后,學(xué)生的學(xué)習(xí)熱情不高
目前“算法設(shè)計與分析”課程教學(xué)大多仍采取傳統(tǒng)的灌輸式教學(xué)方法,即使運用了多媒體教學(xué)設(shè)備,也只是把理論知識進(jìn)行了演示,這種滿堂灌的教學(xué)手段導(dǎo)致學(xué)生上課不能積極思考,不能主動參與到教學(xué)環(huán)節(jié)中來,學(xué)習(xí)的積極性不高。另外,在有限的實驗課時中,只是實現(xiàn)已有的算法,很少考慮數(shù)據(jù)的規(guī)模和運行的效率等問題,因此很難達(dá)到訓(xùn)練的效果。
1.2 不能靈活運用算法解決實際問題
“算法設(shè)計與分析”課程內(nèi)容相對較散,設(shè)計方法之間聯(lián)系不大,學(xué)生很難較好地掌握每個方法的不同特點以及相互關(guān)系[4],而且每個方法均以經(jīng)典問題來講解算法設(shè)計的基本思想,缺乏解決實際問題的訓(xùn)練。因此,學(xué)生能用算法解決書本上的問題,但是當(dāng)面對新的實際問題時,大部分學(xué)生通常毫無頭緒,不能靈活運用算法進(jìn)行解決。
1.3 成績的評定不能較好地反映學(xué)生的實際能力
“算法設(shè)計與分析”課程成績的評定通常包含平時成績和期末考試成績兩部分,平時成績又包含布置作業(yè)和實驗課的成績。由于缺乏監(jiān)管和有效的評價體系,部分學(xué)生盡管獲得了較好的課程成績,但是其動手能力和解決實際問題的能力仍然很弱。
1.4 程序設(shè)計競賽和課程教學(xué)缺乏融合
“算法設(shè)計與分析”是程序設(shè)計競賽的基礎(chǔ)課程,程序設(shè)計競賽是學(xué)生算法設(shè)計與分析能力的試驗場。廣西師范大學(xué)計算機科學(xué)與信息工程學(xué)院學(xué)生在程序設(shè)計競賽中已取得部分成果,2015~2018年學(xué)生參加藍(lán)橋杯全國軟件和信息技術(shù)專業(yè)人才大賽獲獎情況如表1所示。從表1中可以看出,參與藍(lán)橋杯競賽獲獎的學(xué)生逐年增多,熱情高漲。程序設(shè)計競賽可為“算法設(shè)計與分析”課程的教學(xué)提供豐富的賽題和有效的實踐平臺,但是目前廣西師范大學(xué)計算機科學(xué)與信息工程學(xué)院該課程的教學(xué)并未有效利用這些資源。
2 “以賽勵教、以賽督學(xué)”的教學(xué)模式
近年來,為了推動軟件開發(fā)技術(shù)的發(fā)展,促進(jìn)軟件專業(yè)技術(shù)人才培養(yǎng),向軟件行業(yè)輸送具有創(chuàng)新能力和實踐能力的高端人才[5],國際計算機學(xué)會、百度和谷歌等一些教育組織和知名企業(yè)舉辦了多種程序設(shè)計競賽,包括ACM國際大學(xué)生程序設(shè)計競賽、藍(lán)橋杯全國軟件和信息技術(shù)專業(yè)人才大賽、百度之星程序設(shè)計大賽等[6],這些競賽以程序設(shè)計語言為依托,以算法設(shè)計為重點,是政府、企業(yè)和協(xié)會聯(lián)手構(gòu)筑的人才培養(yǎng)和選拔平臺,表現(xiàn)優(yōu)秀的選手非常受微軟、谷歌和百度等IT巨頭青睞[7]。程序設(shè)計競賽全面考驗學(xué)生的學(xué)科綜合技能,側(cè)重考查學(xué)生運用知識解決實際問題的能力,能有效地培養(yǎng)學(xué)生自主學(xué)習(xí)、實踐探索、分析解決實際問題和團隊協(xié)作的能力,目前已受到高校的普遍重視,競賽的門類和級別在不斷豐富,參與的學(xué)生不斷增加[8]。因此,借助程序設(shè)計競賽實施“算法設(shè)計與分析”課程教學(xué)改革,將程序設(shè)計競賽與課程教學(xué)有機融合,建立“以賽勵教、以賽督學(xué)”的教學(xué)模式,能夠有效地提高“算法設(shè)計與分析”課程的教學(xué)質(zhì)量。
程序設(shè)計競賽與“算法設(shè)計與分析”課程密切相關(guān),作為該課程的教師,為了將競賽和課堂教學(xué)的有機融合,除了掌握課程所涉及的知識點外,還需要努力學(xué)習(xí)和熟悉與程序設(shè)計競賽的相關(guān)的知識。不僅需要熟悉程序設(shè)計語言和數(shù)據(jù)結(jié)構(gòu)這些必需的知識,而且還要掌握離散數(shù)學(xué)、數(shù)論、數(shù)值計算、計算幾何、人工智能等相關(guān)知識,并能對其進(jìn)行綜合運用。同時,為了熟悉競賽機制和指導(dǎo)學(xué)生取得優(yōu)良的成績,教師必須花費大量的時間和精力進(jìn)行賽題訓(xùn)練,以提高自身的專業(yè)水平。
2.1 理論教學(xué)改革:課堂講授和翻轉(zhuǎn)課堂相結(jié)合
在教學(xué)過程中,從程序設(shè)計競賽試題中精選一些有趣味性的案例來吸引學(xué)生注意。比如動態(tài)規(guī)劃方法,該方法比較抽象難以理解??梢砸胂嚓P(guān)的競賽題目,并用程序演示動態(tài)規(guī)劃法和其他方法的求解效率,從而引發(fā)同學(xué)的學(xué)習(xí)興趣和求知欲。然后通過循循善誘的啟發(fā)式方法,給出動態(tài)規(guī)劃法的設(shè)計思想和問題的求解過程。
除課堂講授外,利用部分學(xué)時進(jìn)行翻轉(zhuǎn)課堂的研討式教學(xué)。給學(xué)生提供主題、視頻、在線課程及相關(guān)資料,利用團隊參賽模式,讓學(xué)生組成小組,根據(jù)具體的問題進(jìn)行調(diào)研和討論,教師進(jìn)行啟發(fā)式引導(dǎo)。通過讓學(xué)生進(jìn)行研討匯報,自學(xué)能力得到提升,表達(dá)能力得到鍛煉,思維更加縝密,同時團隊協(xié)作精神得到加強。
2.2 實踐教學(xué)改革:課堂競賽和課后交流相結(jié)合
ACM競賽經(jīng)過40多年的發(fā)展,涌現(xiàn)出很多優(yōu)秀的在線評測系統(tǒng),如OJ系統(tǒng)。OJ系統(tǒng)具有實時評判、答題統(tǒng)計和排名等功能[9]。教師利用OJ系統(tǒng)設(shè)定好時間和實踐試題,讓學(xué)生在競賽環(huán)境中實踐,將激發(fā)學(xué)生的斗志,以便充分發(fā)揮各自的潛力。
通常OJ系統(tǒng)提供在線交流功能,當(dāng)學(xué)生在學(xué)習(xí)過程中遇到困難時,利用在線交流功能可以及時獲得解決方法,同時學(xué)生也可以將自己的學(xué)習(xí)心得和成果進(jìn)行共享,從而增加學(xué)生主動學(xué)習(xí)的積極性。
2.3 考核方式改革:重視實踐能力的考核
廣西師范大學(xué)計算機科學(xué)與信息工程學(xué)院“算法設(shè)計與分析”課程的考核方式包含平時成績和期末筆試成績,該考核很難體現(xiàn)學(xué)生利用算法解決實際問題的能力,偏離“算法設(shè)計與分析”課程的教學(xué)目的。改革后的考核內(nèi)容應(yīng)包含課堂表現(xiàn)、手寫作業(yè)、實驗課時安排的任務(wù)和課后上機作業(yè)的完成情況,以及期末的筆試和機試等。此外學(xué)生在程序設(shè)計競賽中的表現(xiàn)作為加分項(加分≤10分,總分≤100分)。
2.4 新增課外活動:提升學(xué)生的學(xué)習(xí)熱情
在學(xué)習(xí)“算法設(shè)計與分析”課程的學(xué)期,教師以競賽的方式組織1~2次比賽活動,表現(xiàn)優(yōu)異的同學(xué)可以適當(dāng)給予獎勵。學(xué)院定期組織與程序設(shè)計競賽相關(guān)的活動,邀請在ACM競賽中取得優(yōu)秀成績的高校指導(dǎo)老師、學(xué)生和參加工作的企業(yè)人員來學(xué)院講學(xué),以激發(fā)學(xué)生學(xué)好專業(yè)知識、參與競賽和提高實踐動手能力的熱情。同時可以充分利用寒暑假的時間來進(jìn)行集中訓(xùn)練,只有多思多想、多做多練、多討論多交流,才能提高自身的能力。
3 結(jié)語
將程序設(shè)計競賽的內(nèi)容和模式引入“算法設(shè)計與分析”課程教學(xué)中,建立“以賽勵教、以賽督學(xué)”的教學(xué)模式,有助于充分調(diào)動教師教學(xué)和學(xué)生學(xué)習(xí)的積極性,拓寬教師的知識面,提高學(xué)生分析和解決實際問題的能力。通過翻轉(zhuǎn)課堂的分組討論以及實踐訓(xùn)練和課外活動,能夠增強學(xué)生的表達(dá)能力和團隊合作意識,從而形成良性的、相互促進(jìn)的學(xué)習(xí)氛圍。
[參考文獻(xiàn)]
[1]呂國英.算法設(shè)計與分析[M].北京:清華大學(xué)出版社,2009.
[2]陳翔.面向算法設(shè)計與分析課程的翻轉(zhuǎn)課堂教學(xué)模式研究[J].計算機教育,2016(8):147-151.
[3]秦董洪,陳智勇.算法設(shè)計與分析課程教學(xué)研究[J].計算機教育,2013(11):98-101.
[4]向金海,任繼平,余文君.“算法設(shè)計與分析”課程教學(xué)與實踐方法探討[J].計算機教育,2012(6):87-93.
[5]嚴(yán)宇,郝淑新.藍(lán)橋杯軟件大賽培訓(xùn)的實踐與思考[J].科技視界,2015(31):143.
[6]陳英,鄭巍,楊豐玉,等.程序設(shè)計類競賽對教學(xué)質(zhì)量的作用及分析[J].高教學(xué)刊,2018(9):92-95.
[7]李玲芝,徐俊,易險峰.依托大學(xué)生計算機程序設(shè)計競賽,探索信息學(xué)科創(chuàng)新型人才培養(yǎng)新模式[J].計算機教育,2009(12):92-93.
[8]楊勃,李文彬,潘理,等.程序設(shè)計競賽在程序設(shè)計類課程教學(xué)改革中的探索研究[J].現(xiàn)代計算機,2017(20):78-81.
[9]陶小梅,黎辛?xí)?ACM競賽驅(qū)動的程序設(shè)計類課程教學(xué)改革研究[J].科技資訊,2017(13):146-147.