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