石潤(rùn)華 仲紅
摘要:“算法設(shè)計(jì)與分析”是計(jì)算機(jī)專(zhuān)業(yè)的核心課程。該文分別從培養(yǎng)目標(biāo)、學(xué)習(xí)興趣、積極思考、教學(xué)方式、理論與實(shí)驗(yàn)、科研與教學(xué)等多方面探討該課程的教學(xué)實(shí)踐,并引出若干思考。這對(duì)提高這門(mén)課程的教學(xué)效果與教學(xué)質(zhì)量有著重要意義。
關(guān)鍵詞:算法設(shè)計(jì);算法分析;教學(xué)研究;教學(xué)實(shí)踐
中圖分類(lèi)號(hào):G642文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2012)01-0246-03
Several Teaching Practices and Thoughts on Algorithms Design and Analysis
SHI Run-hua, ZHONG Hong
(School of Computer Science and Technology, Anhui University, Hefei 230039, China)
Abstract: Algorithms Design and Analysis is one of core courses in Computer Science and Technology. This paper discussed its several teaching practices from Training Objects, Interest of Study, Active Thoughts, Teaching Method, Theory and Experiment, Scientific Research and Teaching, respectively, and then presented several thoughts. It is significant to improve the teaching effect and quality of Algorithms Design and Analysis for these practices and thoughts.
Key words: algorithm design, algorithm analysis, teaching research, teaching practice
“算法設(shè)計(jì)與分析”是計(jì)算機(jī)科學(xué)與技術(shù)學(xué)科中核心課程之一,主要研究一些基本算法的設(shè)計(jì)策略及算法分析的方法。算法(Algorithm)一詞來(lái)自19世紀(jì)一位波斯數(shù)學(xué)家,它就是計(jì)算的步驟和法則,也就是一系列的將輸入轉(zhuǎn)換為輸出的計(jì)算步驟[1]。也可以簡(jiǎn)單理解為算法是一序列解決問(wèn)題的清晰指令,也就是說(shuō),能夠?qū)σ欢ㄒ?guī)模的輸入,在有限時(shí)間內(nèi)獲得所要求的輸出。算法作為計(jì)算機(jī)軟件技術(shù)中的重要組成部分,其發(fā)展對(duì)提高計(jì)算機(jī)的使用效率以及拓寬其應(yīng)用領(lǐng)域起著重要的作用[2]。目前,在一些211或985高校,算法是本科生的必修課程,也是研究生的核心課程。因?yàn)樗闹匾?,以及有著相?dāng)?shù)碾y度和深度,通常作為計(jì)算機(jī)領(lǐng)域博士生入學(xué)的必考內(nèi)容之一。
盡管“算法設(shè)計(jì)與分析”課程在計(jì)算機(jī)科學(xué)中有著非常重要的地位,但學(xué)習(xí)起來(lái)并不像那些僅僅需要死記硬背的課程,學(xué)好算法不僅僅要求能理解人家已有的對(duì)具體問(wèn)題的求解策略(算法),還要能夠能動(dòng)地利用已學(xué)過(guò)的算法策略去解析新的問(wèn)題。理解算法是一回事,運(yùn)用它去解決問(wèn)題是另一回事。特別對(duì)于一些數(shù)學(xué)基礎(chǔ)薄弱,缺少抽象思維能力的學(xué)生來(lái)說(shuō),能理解算法就已經(jīng)很不容易了,更何況要利用它去解決問(wèn)題、分析問(wèn)題。這使得他們?cè)趯W(xué)習(xí)過(guò)程很吃力,很難學(xué)好它,從而排斥乃至抵制學(xué)習(xí)算法。此時(shí),教就顯得很重要,教得好能提高學(xué)生的學(xué)習(xí)興趣,正確指引他們學(xué)習(xí)的方向,逐步培養(yǎng)他們解決問(wèn)題、分析問(wèn)題的能力;教不好可能適得其反,反而使得他們感到枯燥無(wú)味。
目前,在教授“算法設(shè)計(jì)與分析”課程中,存在如下共性問(wèn)題[3,4]:培養(yǎng)目標(biāo)單一,教學(xué)內(nèi)容固化,教學(xué)方法僵化。結(jié)果勢(shì)必是:學(xué)生學(xué)得很吃力,老師教得也很累。筆者及同課題組多位同事,多年從事不同專(zhuān)業(yè)不同層次的與算法相關(guān)的教學(xué)工作,在教學(xué)過(guò)程中不斷學(xué)習(xí),在學(xué)習(xí)過(guò)程中用心積累,在積累過(guò)程中不斷完善。特別地,針對(duì)以上存在的具體問(wèn)題,不斷思考,努力創(chuàng)新,進(jìn)行了若干實(shí)踐,取得了不錯(cuò)的效果。
1若干實(shí)踐與思考
經(jīng)過(guò)多年的實(shí)踐教學(xué),我們認(rèn)為以下幾點(diǎn)值得同行們借鑒和思考。
1.1培養(yǎng)目標(biāo)的多樣化
算法始終貫穿整個(gè)計(jì)算機(jī)的發(fā)展歷程。甚至有學(xué)者提出“計(jì)算機(jī)科學(xué)就是算法的研究”。理論上,只要是研究算法的內(nèi)容都可以作為“算法設(shè)計(jì)與分析”課程的授課內(nèi)容,因而該課程所覆蓋的內(nèi)容非常廣:既有一些基礎(chǔ)算法的設(shè)計(jì)策略及相應(yīng)的分析方法,例如分治算法、貪心算法、動(dòng)態(tài)規(guī)劃算法、回溯法、分支限界法,又有一些特殊算法,例如圖論算法、幾何算法、組合算法、密碼算法、遺傳算法、蟻群算法等。另外針對(duì)不同的計(jì)算模型,算法研究的內(nèi)容也不盡相同,例如有并行算法、分布式算法、概率算法、量子算法、云計(jì)算乃至普適計(jì)算環(huán)境下的算法。正因?yàn)樗惴ㄋ婕暗膬?nèi)容很廣,所以不可能在有限的時(shí)間內(nèi)向?qū)W生傳授所有的東西,只能根據(jù)具體的培養(yǎng)目標(biāo)選擇相應(yīng)的教學(xué)內(nèi)容。
為了克服培養(yǎng)目標(biāo)單一,以免教學(xué)內(nèi)容固化,我們構(gòu)建了多級(jí)培養(yǎng)目標(biāo)。首先我們構(gòu)建了一個(gè)總體目標(biāo):“通過(guò)系統(tǒng)學(xué)習(xí),使得學(xué)生掌握算法設(shè)計(jì)與算法分析的常用方法;培養(yǎng)學(xué)生由具體到抽象的邏輯思維能力,培養(yǎng)他們計(jì)算的思維、計(jì)算的習(xí)慣”。進(jìn)而,針對(duì)不同的專(zhuān)業(yè)不同的層次,我們制定了相應(yīng)的分級(jí)培養(yǎng)目標(biāo)。分級(jí)培養(yǎng)目標(biāo)更具體,但都要為總體目標(biāo)服務(wù)。正是因?yàn)榉旨?jí)目標(biāo)的不同,導(dǎo)致了所選用的教材及所授課的內(nèi)容也不一樣。
對(duì)于非本專(zhuān)業(yè)的本科層次,例如信息管理、數(shù)學(xué)、電子與信息等專(zhuān)業(yè),學(xué)習(xí)該課程的目的主要在于理解和認(rèn)識(shí),因而其分級(jí)培養(yǎng)目標(biāo)為:“使得學(xué)生能夠理解一些基本算法設(shè)計(jì)的思想,及相應(yīng)的時(shí)空復(fù)雜性,幫助他們進(jìn)一步認(rèn)識(shí)和理解計(jì)算機(jī),掌握計(jì)算的規(guī)律,初步培養(yǎng)他們計(jì)算的思維和習(xí)慣,能夠從計(jì)算的視角去觀察世界”。也即,側(cè)重點(diǎn)是算法設(shè)計(jì)。我們選用自編教材,總學(xué)時(shí)36,所涉及的主要內(nèi)容是一些基礎(chǔ)算法設(shè)計(jì)的方法,例如分治、貪心、動(dòng)態(tài)規(guī)劃、回溯、分支限界,以及一些常用的算法,例如查找、排序、選擇、匹配等。
對(duì)于本專(zhuān)業(yè)的本科層次,包括計(jì)算機(jī)科學(xué)與技術(shù),軟件工程,網(wǎng)絡(luò)工程三個(gè)本科專(zhuān)業(yè),其分級(jí)培養(yǎng)目標(biāo)為:“通過(guò)對(duì)計(jì)算機(jī)算法系統(tǒng)的學(xué)習(xí),掌握算法設(shè)計(jì)的主要方法,培養(yǎng)學(xué)生分析算法復(fù)雜度的初步能力,鍛煉其邏輯思維能力和想象力,并使之了解算法理論的發(fā)展。為獨(dú)立設(shè)計(jì)算法和對(duì)算法進(jìn)行復(fù)雜性分析奠定堅(jiān)實(shí)的基礎(chǔ)”。對(duì)此,我們的教學(xué)側(cè)重點(diǎn)是算法設(shè)計(jì),兼顧算法分析。我們選用王曉東編著《計(jì)算機(jī)算法設(shè)計(jì)與分析》教材。通過(guò)大量具體實(shí)例,重點(diǎn)學(xué)習(xí)分治、動(dòng)態(tài)規(guī)劃、貪心、回溯、分之限界、概率等算法的設(shè)計(jì)思想、求解步驟、分析方法。此外,我們也適當(dāng)增加了一些算法復(fù)雜性分析的方法的內(nèi)容。所用學(xué)時(shí)54+24,增加了24個(gè)機(jī)時(shí)的實(shí)驗(yàn)課,實(shí)驗(yàn)課采用自編講義。
對(duì)于本專(zhuān)業(yè)研究生層次,已經(jīng)具備一定的計(jì)算機(jī)科學(xué)與技術(shù)素養(yǎng),而且其中相當(dāng)一部分學(xué)生因本科期間修過(guò)算法相關(guān)課程,已經(jīng)具備一定的算法設(shè)計(jì)與分析的能力,但也有少數(shù)學(xué)生在本科階段沒(méi)有系統(tǒng)接受過(guò)算法課程的學(xué)習(xí)。因而我們的側(cè)重點(diǎn)是算法分析,兼顧算法設(shè)計(jì),并拓展算法研究?jī)?nèi)容,要求他們掌握一些常用的算法分析的方法,所選用的教材是中文版《算法導(dǎo)論》(潘金貴譯)。它的主要內(nèi)容是研究計(jì)算機(jī)應(yīng)用中常常遇到的實(shí)際問(wèn)題的解法,研究設(shè)計(jì)和分析各種算法的基本原理、方法和技術(shù)。與本科層次相比,增加了一些算法分析的高級(jí)方法,以及針對(duì)于一些高級(jí)數(shù)據(jù)結(jié)構(gòu)的算法??倢W(xué)時(shí)72。其分級(jí)培養(yǎng)目標(biāo)是:“掌握算法設(shè)計(jì)與算法分析的常用方法,以便運(yùn)用這些方法去獨(dú)立設(shè)計(jì)解決各類(lèi)實(shí)際問(wèn)題的算法;利用已有的算法去解決計(jì)算機(jī)科學(xué)與工程領(lǐng)域中較為復(fù)雜的實(shí)際問(wèn)題;對(duì)已有的算法進(jìn)行改進(jìn),使之能更快、更有效地解決問(wèn)題”。
另外,對(duì)于本專(zhuān)業(yè)的博士層次,也開(kāi)設(shè)了算法相關(guān)的選修課程,例如,智能計(jì)算、自然計(jì)算、量子計(jì)算等課程。在我們的教學(xué)體系中,宏觀上有一個(gè)粗線條的總體培養(yǎng)目標(biāo),具體到不同對(duì)象,又有不同的分級(jí)培養(yǎng)目標(biāo)。分級(jí)培養(yǎng)目標(biāo)更具體,形成階梯之勢(shì),都為總體目標(biāo)服務(wù)。
1.2激發(fā)學(xué)生的興趣
在我們的教學(xué)過(guò)程中,始終把激發(fā)學(xué)生的學(xué)習(xí)興趣放在首要位置。但怎樣能激發(fā)大學(xué)生的學(xué)習(xí)興趣呢?實(shí)際上,這不僅僅是這門(mén)課程需要思考的問(wèn)題,也是整個(gè)大學(xué)教育都需要思考的問(wèn)題[5,6]。顯然,為了激發(fā)大學(xué)生的學(xué)習(xí)熱情,僅僅采用小學(xué)、中學(xué)時(shí)的那種“增強(qiáng)科學(xué)的神秘感,展示技術(shù)的力量”的方法行不通。那種因?yàn)槲也恢浪砸獙W(xué)的方式很難再驅(qū)使大學(xué)生。經(jīng)過(guò)我們的調(diào)查發(fā)現(xiàn),多數(shù)學(xué)生對(duì)學(xué)習(xí)失去興趣,主要原因有二:一是缺少專(zhuān)業(yè)理想(進(jìn)而缺少學(xué)習(xí)動(dòng)力);二是因不知而不學(xué)(即對(duì)所學(xué)的科目缺乏了解,缺少積累,更不知道學(xué)有什么用,從而失去學(xué)習(xí)興趣)。
因此為了激發(fā)他們的學(xué)習(xí)興趣,需要引導(dǎo)他們,樹(shù)立遠(yuǎn)大的專(zhuān)業(yè)理想,繼而對(duì)所在學(xué)科、所學(xué)內(nèi)容,能從宏觀上把握、認(rèn)識(shí)、了解、喜愛(ài)、乃至著迷。在教授專(zhuān)業(yè)知識(shí)的同時(shí),我們也很注重以下幾點(diǎn):
幫助學(xué)生樹(shù)立遠(yuǎn)大的專(zhuān)業(yè)理想。在科學(xué)探索上,人類(lèi)有兩大永恒的主題:一是探索外太空;二是探索生命的奧秘。而計(jì)算機(jī)科學(xué)與技術(shù)給這兩大領(lǐng)域的探索帶來(lái)了很大的變化,獲得了一些了不起的成就。啟示學(xué)生應(yīng)該多思考“怎樣利用計(jì)算機(jī)來(lái)涉及這兩大主題,怎樣使自己融入其中,乃至做出推動(dòng)整個(gè)人類(lèi)文明進(jìn)步的工作,在人類(lèi)的文明史上留下自己的烙印”。
簡(jiǎn)要介紹計(jì)算機(jī)的發(fā)展歷程,展望未來(lái)的計(jì)算技術(shù)與未來(lái)的世界。理解什么是計(jì)算,拓展計(jì)算的范疇。實(shí)際上,計(jì)算無(wú)處不在。但怎樣用計(jì)算機(jī)來(lái)計(jì)算?也即“怎樣抽象模型,形式定義,設(shè)計(jì)合適的數(shù)據(jù)結(jié)構(gòu),加上具體的算法策略,最后程序?qū)崿F(xiàn),得到想要的結(jié)果”,這一過(guò)程實(shí)質(zhì)上是一種在計(jì)算機(jī)中模擬具體物理實(shí)在(或系統(tǒng))的動(dòng)態(tài)過(guò)程,從而更好地探詢(xún)這些復(fù)雜系統(tǒng)的內(nèi)在規(guī)律。對(duì)于千千萬(wàn)萬(wàn)的具體問(wèn)題,我們應(yīng)該從哪里著手?怎樣深入分析乃至實(shí)施最終的計(jì)算?或許“算法設(shè)計(jì)與分析”中將會(huì)有答案。它能指引我們用更好的方法求解具體問(wèn)題,并且能夠培養(yǎng)我們計(jì)算的思維和習(xí)慣。
系統(tǒng)概述地介紹“算法設(shè)計(jì)與分析”的主要內(nèi)容,以及它在整個(gè)計(jì)算機(jī)科學(xué)與技術(shù)中的地位。偶爾介紹一些算法在計(jì)算機(jī)科學(xué)中扮演重要角色的例子。例如,密碼破譯中算法與高性能計(jì)算機(jī)之間的博弈。在授課之初,就應(yīng)該讓學(xué)生明確“算法設(shè)計(jì)與分析”所覆蓋的主要知識(shí)和技能。為什么要學(xué)習(xí)該門(mén)課程?學(xué)習(xí)該課程后,我們能做些什么?應(yīng)該怎樣學(xué)?”。
1.3引導(dǎo)學(xué)生積極思考
在教學(xué)過(guò)程中,引導(dǎo)學(xué)生積極思考,也至關(guān)重要,能使學(xué)習(xí)由被動(dòng)變主動(dòng)。經(jīng)過(guò)多年實(shí)踐教學(xué),我們認(rèn)為“多提問(wèn),提好問(wèn)”是引導(dǎo)學(xué)生積極思考的重要措施。但問(wèn)的問(wèn)題不能很隨意,需要經(jīng)過(guò)精心設(shè)計(jì)。為了讓學(xué)生積極思考,教師在教學(xué)之余需要多設(shè)計(jì)問(wèn)題,設(shè)計(jì)好問(wèn)題。問(wèn)題設(shè)計(jì)得好不好,有沒(méi)有吸引力尤為關(guān)鍵。筆者每章每節(jié)均會(huì)留下一些問(wèn)題,讓學(xué)生思考,當(dāng)然也有課堂提問(wèn),鼓勵(lì)學(xué)生及時(shí)作答。結(jié)果最為明顯的效果是“主動(dòng)與我互動(dòng)的學(xué)生多了,學(xué)生間的交流與討論也多了,認(rèn)真聽(tīng)課的多了,作業(yè)完成的質(zhì)量提高了,學(xué)習(xí)的氛圍讓我更滿(mǎn)意了”。例如,講授分治算法的某些實(shí)例時(shí),分的階段多為二分(均分),此時(shí)若引入:“能否三分或多分?若多分結(jié)果(或復(fù)雜性)又如何?”,“用分治算法求解具體實(shí)例時(shí),怎樣改進(jìn)算法所需的時(shí)間復(fù)雜性?”;在學(xué)習(xí)自然歸并排序時(shí),筆者經(jīng)常提出“是否存在自然冒泡排序?或在插入排序(或折半插入排序)中,是否可以一次插入多個(gè)有序的數(shù)?是否也能改進(jìn)其時(shí)間復(fù)雜度”;學(xué)完矩陣連乘問(wèn)題(動(dòng)態(tài)規(guī)劃算法求解)時(shí),喜歡提出“矩陣連乘的每一種計(jì)算方式對(duì)應(yīng)著一種計(jì)算成本(也即一個(gè)整數(shù)),若有n個(gè)矩陣連乘,則至少對(duì)應(yīng)著Ω(2n)個(gè)整數(shù),該問(wèn)題實(shí)質(zhì)上是要從Ω(2n)個(gè)數(shù)中選擇最小數(shù)(對(duì)應(yīng)最佳成本)。那么是否意味著存在比最壞時(shí)間為線性還要優(yōu)的選擇算法?”;“在概率算法中,學(xué)習(xí)計(jì)算π值的隨機(jī)算法后,能否設(shè)計(jì)計(jì)算線段長(zhǎng)度(等于 2或其它無(wú)理數(shù))的隨機(jī)算法?”。
另外,給學(xué)生推薦一些好的課外讀物也有積極的作用。我們推薦的課外讀物不僅是一些教輔讀物,還有一些有關(guān)計(jì)算機(jī)、算法乃至其它自然科學(xué)的人物傳記、科學(xué)史話、科幻預(yù)言等。例如《宇宙、量子和人腦》、《宇宙的起源》、《揭開(kāi)生命的奧秘》等書(shū)或視頻。
總之,課堂教學(xué)固然很重要,但課堂之外的工作也非常重要,其中多設(shè)計(jì)問(wèn)題,設(shè)計(jì)好問(wèn)題很關(guān)鍵。它能引導(dǎo)學(xué)生積極思考,變被動(dòng)學(xué)習(xí)為主動(dòng)學(xué)習(xí)。
1.4教學(xué)方式多樣化
在傳統(tǒng)教學(xué)中,那種填鴨式的教學(xué)方式,只會(huì)使學(xué)習(xí)“算法”相關(guān)的課程變得枯燥,學(xué)生只能被動(dòng)接受,缺少主動(dòng)思考,更談不上所謂的創(chuàng)新能力的培養(yǎng)。教的根本是學(xué),因而教學(xué)方式要能適應(yīng)學(xué)生的需要。所學(xué)的內(nèi)容日新月異,所采用的教學(xué)方式當(dāng)然也要與時(shí)俱進(jìn)。
在我們的教學(xué)過(guò)程中,鼓勵(lì)教學(xué)方式的多樣化:以多媒體和板書(shū)為主,結(jié)合其它教學(xué)方式。多媒體課件的開(kāi)發(fā)應(yīng)用,極大地豐富了教學(xué)手段。但開(kāi)發(fā)、設(shè)計(jì)出具有個(gè)性化的課件需要花費(fèi)教師大量的課外時(shí)間。尤其是動(dòng)與靜的結(jié)合,具體與抽象的變換,需要精心設(shè)計(jì)。另外,多媒體教學(xué)也有局限性,很難滿(mǎn)足“內(nèi)容的有限與思想的無(wú)限”之間的矛盾。而教是一個(gè)動(dòng)態(tài)的過(guò)程。為了體現(xiàn)及時(shí)性,必要的板書(shū)尤為重要。實(shí)際上,板書(shū)更自由,跨度廣,前后關(guān)聯(lián)更緊密。此外,啟發(fā)式教、自主式學(xué)、分組討論等其它教學(xué)形式也是必要的補(bǔ)充。
1.5理論與實(shí)驗(yàn)相輔相成
在“算法設(shè)計(jì)與分析”課程的理論教學(xué)的同時(shí),我們也很重視相應(yīng)的實(shí)驗(yàn)教學(xué)。理論與實(shí)驗(yàn)相輔相成,相得益彰。實(shí)驗(yàn)?zāi)軐?duì)理論加以驗(yàn)證,進(jìn)而能加深對(duì)理論的理解,反過(guò)來(lái),理論又能指導(dǎo)實(shí)驗(yàn)。
針對(duì)不同的專(zhuān)業(yè)不同的層次,我們?cè)O(shè)計(jì)了不同的實(shí)驗(yàn)內(nèi)容,分別以實(shí)驗(yàn)課和課外作業(yè)的形式開(kāi)展。在所有實(shí)驗(yàn)教學(xué)及作業(yè)中,我們?cè)O(shè)計(jì)了四類(lèi)實(shí)驗(yàn):驗(yàn)證類(lèi)、基礎(chǔ)類(lèi)、綜合類(lèi)、設(shè)計(jì)類(lèi)。前三類(lèi)均由老師給定相應(yīng)的實(shí)驗(yàn)內(nèi)容,后一類(lèi)實(shí)驗(yàn)內(nèi)容由學(xué)生獨(dú)立設(shè)計(jì)、開(kāi)展、實(shí)施、驗(yàn)證。整個(gè)實(shí)驗(yàn)進(jìn)程由淺及深,內(nèi)容覆蓋面廣,涉及算法設(shè)計(jì)、算法實(shí)現(xiàn)、算法改進(jìn)等內(nèi)容。整個(gè)實(shí)驗(yàn)(特別是后一類(lèi)實(shí)驗(yàn))的開(kāi)展,取得了不錯(cuò)的成效。加深了學(xué)生對(duì)理論知識(shí)的把握和更深層次的感悟。使學(xué)生在學(xué)習(xí)過(guò)程中更能發(fā)揮主動(dòng)性、能動(dòng)性。主導(dǎo)自己的學(xué)習(xí)目的,修正自己的學(xué)習(xí)行為,更新自己的學(xué)習(xí)內(nèi)容乃至學(xué)習(xí)方式。
1.6科研與教學(xué)并重
教學(xué)不能游離于科研之外,教學(xué)與科研并重,相互促進(jìn),有益補(bǔ)充。良好的科研會(huì)使老師對(duì)某一專(zhuān)業(yè)研究有較深的理解,能更好地把所學(xué)知識(shí)融入其中(也即學(xué)有何用),從而對(duì)教的內(nèi)容、方式、方法有更深的理解、更好的感悟。例如,筆者在教學(xué)的同時(shí),堅(jiān)持科研工作。研究方向?yàn)樾畔踩?,重點(diǎn)研究密碼算法,這為我的教學(xué)工作提供了很多素材,特別是使我對(duì)算法有著更深層次的理解。能夠適時(shí)地把所研究的密碼算法乃至信息領(lǐng)域最新的理論和實(shí)驗(yàn)成果介紹給學(xué)生,讓他們明白學(xué)以致用的地方,激發(fā)他們學(xué)習(xí)專(zhuān)業(yè)知識(shí)的興趣,培養(yǎng)崇尚科學(xué)的品質(zhì)。
有了自己的科研方向及積累,結(jié)合學(xué)生已掌握的知識(shí)結(jié)構(gòu),就可以指導(dǎo)學(xué)生完成一些創(chuàng)新項(xiàng)目或參加一些全國(guó)或國(guó)際上的競(jìng)賽。例如,全國(guó)信息安全大賽、國(guó)際ACM大賽。這勢(shì)必又能提高學(xué)生的學(xué)習(xí)興趣,進(jìn)而幫助自己的教學(xué)工作更全面的開(kāi)展。
另外,老師在科研上的出色工作,必定幫助他在學(xué)生中樹(shù)立更高的威信。反過(guò)來(lái),老師的威信一定程度上能夠促使學(xué)生認(rèn)真學(xué)習(xí)。
2結(jié)束語(yǔ)
“算法設(shè)計(jì)與分析”是一門(mén)理論性與實(shí)踐性兼顧的課程,是計(jì)算機(jī)科學(xué)技術(shù)中面向設(shè)計(jì)、處于核心地位的教育課程。筆者多年從事本科、研究生“算法設(shè)計(jì)與分析”課程的教學(xué)工作,在培養(yǎng)目標(biāo)、學(xué)習(xí)興趣、積極思考、教學(xué)方式、理論與實(shí)驗(yàn)、科研與教學(xué)等多方面,進(jìn)行了有益的嘗試,取得了一些積極的成效。今后還希望在網(wǎng)站資源、考核方式、培養(yǎng)興趣小組等方面繼續(xù)嘗試和探討。
參考文獻(xiàn):
[1]盧開(kāi)澄,譚明術(shù).計(jì)算機(jī)算法設(shè)計(jì)與分析[M].北京,中國(guó)鐵道出版社,1998.
[2]劉波.“算法設(shè)計(jì)與分析”教學(xué)探討[J].高等理科教育,2007(4):78-80.
[3]戴群.“算法設(shè)計(jì)與分析”本科課程教學(xué)研究[J].計(jì)算機(jī)教育,2009(18):70-72.
[4]張銘,耿國(guó)華,陳衛(wèi)衛(wèi),胡學(xué)鋼.數(shù)據(jù)結(jié)構(gòu)與算法課程教學(xué)實(shí)施方案[J].中國(guó)大學(xué)教學(xué),2011(3):56-60.
[5]魏青.《C語(yǔ)言》教學(xué)中學(xué)生學(xué)習(xí)興趣的培養(yǎng)[J].電腦知識(shí)與技術(shù),2010,6(21):5806-5807.
[6]杜丙新,秦國(guó)防.基于興趣驅(qū)動(dòng)的數(shù)據(jù)結(jié)構(gòu)課程教學(xué)探索[J].電腦知識(shí)與技術(shù),2011,7(21):5171-5172, 5174.