王東,林宏,左欣
摘? 要: 探索“算法設(shè)計與分析”課程的一系列教學(xué)改革措施。將“對分課堂”的新型教學(xué)理念、教學(xué)方法和評價手段融入到教學(xué)過程中,根據(jù)教學(xué)內(nèi)容特點(diǎn)靈活使用對分策略;以程序設(shè)計輔助教學(xué)系統(tǒng)為支撐,完成課程過程性考核評價;建設(shè)優(yōu)質(zhì)課程試題庫、課程資源及拓展學(xué)習(xí)平臺,為學(xué)生提供全面、持續(xù)的學(xué)習(xí)服務(wù)。教學(xué)實(shí)踐證明,這些改革舉措取得較好的教學(xué)效果。
關(guān)鍵詞: 算法設(shè)計與分析; 對分課堂; 教學(xué)改革; 過程性考核
中圖分類號:G642? ? ? ? ? 文獻(xiàn)標(biāo)識碼:A? ? ?文章編號:1006-8228(2022)01-107-03
Exploration on the reform for "Algorithm Design and Analysis" course teaching
Wang Dong, Lin Hong, Zuo Xin
(Guizhou Education University, Guiyang, Guizhou 550018, China)
Abstract: A series of teaching reform measures for the "Algorithm Design and Analysis" course are explored. Integrate the new teaching concept, teaching methods and evaluation means of PAD Classroom into the teaching process, and flexibly use the split strategy according to the characteristics of teaching content; Complete the process assessment and evaluation of the course with the support of Programming Teaching Assistant system; Build a high-quality course question bank, course resources and expand the learning platform to provide students with comprehensive and continuous learning services. Teaching practice has proved that these reform measures have achieved good teaching results.
Key words: Algorithm Design and Analysis; PAD Classroom; teaching reform; process assessment and evaluation
0 引言
“算法設(shè)計與分析”課程是計算機(jī)專業(yè)的一門核心基礎(chǔ)課程,是“數(shù)據(jù)結(jié)構(gòu)”課程的進(jìn)一步延伸和提升,內(nèi)容包括遞歸、分治策略、動態(tài)規(guī)劃、貪心算法、回溯法等[1]?!八惴ㄔO(shè)計與分析”課程的主要目的是通過系統(tǒng)地學(xué)習(xí)算法設(shè)計的主要思想,培養(yǎng)算法設(shè)計和分析的能力,為學(xué)生利用算法解決計算機(jī)及其他學(xué)科實(shí)際問題奠定基礎(chǔ)[2]。該課程的特點(diǎn)是理論性強(qiáng)、概念抽象、知識點(diǎn)廣、需要較扎實(shí)的數(shù)學(xué)基礎(chǔ)[3],這使得教師既不好教,學(xué)生也不好學(xué)。
在“算法設(shè)計與分析”課程的傳統(tǒng)教學(xué)流程中,教學(xué)活動是以教師為中心,授課教師在課堂上完成教學(xué)內(nèi)容的展示,給學(xué)生講解經(jīng)典算法的代碼,學(xué)生是被動的“聽中學(xué)”[4]。這種幾乎全程講授的教學(xué)模式下,師生之間基本無互動,學(xué)生在學(xué)習(xí)過程中如有不理解之處,就容易產(chǎn)生畏難情緒,學(xué)習(xí)主動性就會越來越差,這樣的教學(xué)效果不甚理想。因此,如何改變教學(xué)模式,調(diào)動學(xué)生學(xué)習(xí)的積極性和主動性,提高“算法設(shè)計與分析”課程的教學(xué)效果,是教師在教學(xué)實(shí)踐中必須思考和探索的問題。我們在“算法設(shè)計與分析”課程的教學(xué)實(shí)踐中采用了近年被廣泛應(yīng)用的“對分課堂”新型教學(xué)模式,取得了較好成效。以下討論在教學(xué)實(shí)踐中采取的一些改革舉措。
1 引入對分課堂教學(xué)模式
“對分課堂”是一種立足中國教育實(shí)情,以教育心理學(xué)理論為依據(jù)的新型教學(xué)模式,是傳統(tǒng)課堂與自主課堂的折中融合。其核心理念是將課堂時間一分為二,一半留給教師講授,一半留給學(xué)生進(jìn)行討論,實(shí)質(zhì)上是在講授(Presentation)和討論(Discussion)之間引入一個心理學(xué)中的內(nèi)化(Assimilation)環(huán)節(jié),讓學(xué)生對講授內(nèi)容進(jìn)行吸收之后,有備而來地參與討論,簡稱為 PAD課堂[5]?!皩Ψ终n堂”是一種適合我國教育歷史文化背景的新型教學(xué)模式,該教學(xué)模式并不排斥講授法,它強(qiáng)調(diào)先教后學(xué),合作探究[6]。任何一項(xiàng)新內(nèi)容的學(xué)習(xí),都是從講授開始,教師精講留白,充分而不過分地引導(dǎo);然后學(xué)生獨(dú)立學(xué)習(xí),小組討論,全班交流。這種兩階段的學(xué)習(xí)通過“對分”的形式克服講授式教學(xué)中學(xué)生被動接受的現(xiàn)象,引導(dǎo)學(xué)生參與課堂教學(xué)活動,使學(xué)生通過聽課、自學(xué)、作業(yè)、討論等方式對知識進(jìn)行積極建構(gòu),增加教學(xué)中的師生交流與生生溝通,使教師和學(xué)生在教學(xué)中都發(fā)揮作用。
我們在教學(xué)中使用了PAD教學(xué)法。
從“算法設(shè)計與分析”課程的教學(xué)內(nèi)容看,每一章大致學(xué)習(xí)一種算法策略,首先對算法策略的基本思想、原理、基本性質(zhì)、算法框架進(jìn)行介紹,然后圍繞一系列經(jīng)典案例學(xué)習(xí),每個案例按問題描述、問題分析、算法設(shè)計、算法實(shí)現(xiàn)、算法分析幾個步驟依次展開。對每個算法策略的基本思想、原理及性質(zhì),每個案例的問題描述及基本分析,案例算法的基本設(shè)計思路和算法實(shí)現(xiàn)的關(guān)鍵要點(diǎn)由教師精講。算法的具體實(shí)現(xiàn)通過分組討論、合作探究共同完成。兩階段如何“對分”則根據(jù)案例的復(fù)雜程度選擇不同對分策略。對于比較通俗易懂的案例,采用“當(dāng)堂對分”的策略,以相鄰座位自然分組,每個小組自由交流討論、互相幫助。這樣不但可以對學(xué)生因勢利導(dǎo)、適時點(diǎn)撥,而且可以及時獲得學(xué)生學(xué)習(xí)效果的反饋信息。對于較為抽象、復(fù)雜的案例則使用“隔堂對分”策略,讓學(xué)生有充足的時間進(jìn)行知識內(nèi)化、吸收,教師將算法實(shí)現(xiàn)布置成課后作業(yè),讓學(xué)生在課后完成,此間鼓勵小組間互助交流,教師通過輔助教學(xué)平臺以PDA“亮考幫”的形式收集學(xué)習(xí)過程中遇到的問題。對于共性的問題,在下一次課內(nèi)組織交流討論,或由教師補(bǔ)充講解。
2 實(shí)驗(yàn)教學(xué)改革
“算法設(shè)計與分析”是一門實(shí)踐性很強(qiáng)的課程,其實(shí)驗(yàn)教學(xué)具有舉足輕重的作用。傳統(tǒng)的算法課程教學(xué)普遍存在實(shí)驗(yàn)教學(xué)不夠深入全面的問題,主要體現(xiàn)在教學(xué)以理論為主,實(shí)踐不足,學(xué)生的學(xué)習(xí)主要是“聽課”,課后很少做編程練習(xí)。在實(shí)驗(yàn)課中,又主要以驗(yàn)證性實(shí)驗(yàn)為主,缺少設(shè)計性和綜合性實(shí)驗(yàn),學(xué)生很容易找到現(xiàn)存答案。另外,對實(shí)驗(yàn)作業(yè)的測評仍比較傳統(tǒng),由學(xué)生提交紙質(zhì)的實(shí)驗(yàn)報告,學(xué)生之間的抄襲比較嚴(yán)重,教師批改工作量大,反饋滯后。
我們在實(shí)驗(yàn)教學(xué)中采取了一些針對性的舉措。首先,在課程學(xué)時構(gòu)成上,將實(shí)驗(yàn)學(xué)時完全獨(dú)立成一門課程來開設(shè),有獨(dú)立的學(xué)時學(xué)分要求,有專門的實(shí)驗(yàn)教學(xué)內(nèi)容和實(shí)驗(yàn)課考核標(biāo)準(zhǔn),實(shí)驗(yàn)課與理論課處于同等重要的位置,實(shí)驗(yàn)課考核不合格同樣需要重修,這一定程度上會提高學(xué)生的重視程度。其次,實(shí)驗(yàn)內(nèi)容適當(dāng)增加設(shè)計性和綜合性實(shí)驗(yàn)。除頻繁見到的題目之外,使用從實(shí)際項(xiàng)目中凝練出的實(shí)驗(yàn)題目。一方面,這樣的題目新穎且難易俱備,很難從網(wǎng)上和課本上找到現(xiàn)存答案,能對學(xué)生有更全面的鍛煉和考核。另一方面,讓學(xué)生了解到實(shí)際問題,學(xué)生會感受到“算法設(shè)計與分析”課程的實(shí)用價值,有利于提高學(xué)習(xí)積極性和培養(yǎng)創(chuàng)新意識。
此外,使用程序設(shè)計實(shí)驗(yàn)輔助教學(xué)系統(tǒng)(簡稱PTA)開展實(shí)驗(yàn)教學(xué),該系統(tǒng)能非常方便地進(jìn)行實(shí)驗(yàn)任務(wù)布置和組織測試,具有強(qiáng)大的自動測評、查重與監(jiān)考等功能,該教學(xué)平臺不僅能減少教師批改實(shí)驗(yàn)作業(yè)的工作量,而且能快速獲得學(xué)習(xí)反饋[7]。有了PTA系統(tǒng)的支持,除了實(shí)驗(yàn)學(xué)時之外,鼓勵學(xué)生課后利用空余時間在PTA系統(tǒng)上做題進(jìn)行鍛煉,學(xué)生有更多的時間仔細(xì)思考問題,并且可以相互討論、協(xié)作完成,這樣更有利于鍛煉學(xué)生解決實(shí)際復(fù)雜問題的能力。
3 課程考核評價改革
科學(xué)的考核評價方法對促進(jìn)和激勵學(xué)生的學(xué)習(xí)具有很強(qiáng)的導(dǎo)向作用。傳統(tǒng)課程考核評價常采用以期末考試成績?yōu)橹鞯慕K結(jié)性評價,這種評價方式下,學(xué)生平時的上課出勤率低,常常搞考前突擊,這種課程考核實(shí)際上是過于強(qiáng)調(diào)結(jié)果而忽視過程,并非真正的素質(zhì)教育。在“對分課程”教學(xué)模式下,應(yīng)改變課程考核機(jī)制,以過程考核為重點(diǎn),采用更加全面、立體的課程考核方式,讓課程考核較好的發(fā)揮出診斷、導(dǎo)向、調(diào)控、激勵的功能。
我們首先將課程考核分為平時綜合和期末考試兩部分,兩部分各占50%。平時綜合由課前測試、課堂練習(xí)、課后作業(yè)、其他測試、上課出勤以及加分項(xiàng)目構(gòu)成。其中,課前測試為每次上課前使用十分鐘時間進(jìn)行測試,課前測試的目標(biāo)為考查學(xué)生對上一次課學(xué)習(xí)內(nèi)容的撐握情況。課前測試時間較短,測試內(nèi)容的選取至關(guān)重要,題型上不宜選擇函數(shù)題和編程題,因?yàn)橐皇亲鲞@兩種題型所花的時間相對較長,二是這兩種題型容易在網(wǎng)上搜到答案。程序填空題則是課前測試的最佳題型,該題型將案例算法代碼完全展現(xiàn),又在關(guān)鍵之處留白。若學(xué)生理解了算法的實(shí)現(xiàn)思路,較容易將空白處補(bǔ)充完整,反之則很難做正確。通過課前測試,可以在第一時間了解學(xué)生對教學(xué)內(nèi)容的掌握情況。
課堂練習(xí)安排在教師講授后的獨(dú)學(xué)和小組交流階段完成,題型以函數(shù)題為主。函數(shù)題的主函數(shù)、數(shù)據(jù)結(jié)構(gòu)定義、輸入輸出由系統(tǒng)給出,學(xué)生只需實(shí)現(xiàn)函數(shù)接口部分。課后作業(yè)為每一章的擴(kuò)展練習(xí),作業(yè)量較多,以編程題為主,完成時限從每一章第一次課開始到本章最后一次課結(jié)束,學(xué)生有較充足的思考時間。其他測試則靈活安排,比如單元測試、期中測試。學(xué)生上課出勤情況也是課程考核評價的指標(biāo)之一,出勤率可由課前測試導(dǎo)出,無需額外花時間清點(diǎn)上課人數(shù)。平時綜合的幾個部分適當(dāng)分配占比權(quán)重,在開學(xué)第一次課時就向?qū)W生公布。
課程考核中的期末考試采用在線測評系統(tǒng)進(jìn)行機(jī)考,題型及試題綜合考慮覆蓋度及難易度,這一部分的考核一般是由學(xué)校統(tǒng)一組織,考核的組織比較嚴(yán)格,考試時使用測評系統(tǒng)的防作弊功能,考核結(jié)果能比較真實(shí)的反映學(xué)生的學(xué)習(xí)效果。另外,為提高學(xué)生學(xué)習(xí)積極性,附加了一些加分項(xiàng)目,如:課程學(xué)習(xí)期間獲得軟件設(shè)計師證書、取得MOOC優(yōu)秀證書、參加ACM-ICPC競賽獲獎均可獲得不同程度的加分[8]。
4 加強(qiáng)課程資源建設(shè)
為強(qiáng)化學(xué)生隔堂學(xué)習(xí)的內(nèi)化過程,及時偵測學(xué)習(xí)效果,獲得學(xué)習(xí)反饋,大量的練習(xí)、測試是必不可少的。為此,需要建設(shè)高質(zhì)量的試題庫,才能滿足教學(xué)活動的需要。
首先,試題要能覆蓋不同層次的學(xué)生,要搜集具有一定趣味性、使用不同算法設(shè)計策略、具有不同難度等級的試題。這要求試題要有一定的數(shù)量。其次,從試題的搜集來源看,可以從全國青少年信息學(xué)奧賽、ACM-ICPC競賽題、程序競賽題、公司面試題、教科書中的經(jīng)典問題以及實(shí)際項(xiàng)目中產(chǎn)生的算法題中選取。第三,題型選擇上,盡可能為每個試題都建立三種題型:程序填空題、函數(shù)題和編程題,這樣可以滿足不同教學(xué)場景的應(yīng)用需求,比如在課前測試中主要使用程序填空題,課堂練習(xí)中主要使用函數(shù)題,而課外作業(yè)以編程題為主。
除試題庫建設(shè)外,其他課程資源或?qū)W習(xí)設(shè)施也能幫助和促進(jìn)學(xué)生的自主學(xué)習(xí)。我們整合教研室力量,精心制作課程微課及其資源,形成“微課教學(xué)資源包”,建設(shè)支撐微課展播的小程序?qū)W習(xí)平臺,進(jìn)一步拓展了課程的學(xué)習(xí)空間。
5 結(jié)束語
本文對“算法設(shè)計與分析”教學(xué)實(shí)踐中采取的一些改革舉措進(jìn)行了闡述。分別從引入“對分課堂”教學(xué)模式、實(shí)驗(yàn)教學(xué)改革、課程考核評價改革和課程資源建設(shè)四方面進(jìn)行了探討。這些改革舉措在教學(xué)實(shí)踐中已取得良好成效,學(xué)生的學(xué)習(xí)興趣得到了提高,課堂教學(xué)的互動性得到增強(qiáng),學(xué)生的實(shí)踐能力有了明顯進(jìn)步,部分學(xué)生在課程學(xué)習(xí)期間參加各級程序競賽獲獎,部分學(xué)生取得軟件設(shè)計師證書。下一步將在教學(xué)實(shí)踐中對各項(xiàng)改革舉措繼續(xù)進(jìn)行驗(yàn)證、總結(jié)與改進(jìn),形成更加精細(xì)、有效的實(shí)施方案。
參考文獻(xiàn)(References):
[1] ThomasH.Cormen.算法導(dǎo)論:第2版[M].機(jī)械工業(yè)出版社,2007
[2] 何克晶,張星明,鄭運(yùn)平.算法設(shè)計與分析課程全方位實(shí)踐教學(xué)改革探索[J].計算機(jī)教育,2017(2):45-49
[3] 華偉,張典,姜官男,等.數(shù)據(jù)結(jié)構(gòu)與算法分析立體化教學(xué)模式探索[J].計算機(jī)教育,2018(10):93-96
[4] 范昊,束德勤.《算法設(shè)計與分析》課程教學(xué)方法研究[J].教育教學(xué)論壇,2020,455(9):255-256
[5] 張學(xué)新.對分課堂:大學(xué)課堂教學(xué)改革的新探索[J].復(fù)旦教育論壇,2014,12(5):5-10
[6] 劉紹乾,錢頻,王曼娟,等.對分課堂教學(xué)模式及其成功因素探析[J].教育教學(xué)論壇,2019,13:46-48
[7] 向程冠,熊偉程,熊世桓.OnlineJudge在數(shù)據(jù)結(jié)構(gòu)教學(xué)中的應(yīng)用[J].電子技術(shù)與軟件工程,2019,22:133-134
[8] 尚軍亮,李圣君,孫燕.《算法設(shè)計與分析》教學(xué)研究[J].高教學(xué)刊,2016,21:47-48