在清華大學(xué)六教6A216的教室里,,工業(yè)工程系的姜海老師正在講授《數(shù)據(jù)結(jié)構(gòu)與算法分析》課程的第三講,,這場(chǎng)致力于在大數(shù)據(jù)時(shí)代提高學(xué)生的算法分析能力的數(shù)據(jù)實(shí)驗(yàn)正在進(jìn)行,,姜海說:“現(xiàn)在各行各業(yè)都大力推進(jìn)信息化和智能化建設(shè),,積累了海量的數(shù)據(jù),,如何設(shè)計(jì)高效的算法來分析和處理這些數(shù)據(jù)是社會(huì)迫切需要解決的挑戰(zhàn)”,。
2014年以來,,這門課程多次成為全校教評(píng)前5%的優(yōu)秀課程,,先后入選清華大學(xué)精品課,、標(biāo)桿課程,姜老師也曾被提名為工業(yè)工程系“清韻燭光-我最喜愛的教師”,。一名大三的選課同學(xué)說,,“這門課對(duì)算法的學(xué)習(xí)是基礎(chǔ),、必要和全面的,課程涉及的一些經(jīng)典算法和數(shù)據(jù)結(jié)構(gòu)對(duì)本專業(yè)的后續(xù)學(xué)習(xí)很有幫助,,對(duì)自己的編程技能是一種很好的培養(yǎng)”,。
由于課程內(nèi)容偏理論,為了不讓同學(xué)們覺得覺得枯燥乏味,,當(dāng)遇到偏數(shù)學(xué),、難理解的內(nèi)容,老師會(huì)一邊在黑板上推導(dǎo),,一邊讓學(xué)生在課件的空白處記筆記,,希望增加學(xué)生的參與感,讓他們對(duì)學(xué)習(xí)內(nèi)容有更好的理解,,從而體會(huì)到課堂授課的價(jià)值,。同時(shí),課程也結(jié)合老師的科研課題講授如何解決實(shí)際問題,,比如以此前與三菱重工合作開展的“高性能甘特圖繪制算法”課題為例,,向同學(xué)們展示了課題組如何以課堂講授的知識(shí)設(shè)計(jì)算法,把繪制效率提高到了70倍,。
這節(jié)課程從回顧實(shí)證和理論這兩種算法分析手段的優(yōu)劣開始,,帶領(lǐng)同學(xué)們進(jìn)入主題:對(duì)同一種算法的不同實(shí)現(xiàn)進(jìn)行效率比較。手中拿著一踏厚厚的講義,,姜海老師引入了漸進(jìn)分析的概念,,開始介紹不同算法的速度分析的符號(hào)和相應(yīng)的規(guī)則。介紹完基本的運(yùn)算規(guī)則,,他開始帶領(lǐng)同學(xué)們一起證明這些規(guī)則的推理路徑,,與其他課程形成對(duì)比的,這門課的同學(xué)上課很少用電子設(shè)備記筆記,,而是用一支筆,,一沓紙,跟著老師一起推演,。
在自由的發(fā)言,、交流中,同學(xué)們及時(shí)向老師發(fā)問難點(diǎn),,而姜老師會(huì)引導(dǎo)學(xué)生逐一判斷不同情況,,一點(diǎn)一點(diǎn)引導(dǎo)學(xué)生修正并理解這些運(yùn)算法則,用循序漸進(jìn)的方式讓大家理解證明思路,。一個(gè)完整的學(xué)習(xí)過程包含了學(xué)生的思考,、停頓、回答,、被引導(dǎo),、修正,,最后與實(shí)際操作結(jié)合,在這個(gè)過程中,,老師擦了又寫,,用幾塊黑板呈現(xiàn)出一個(gè)規(guī)則的應(yīng)用過程,同學(xué)們下課之后也會(huì)和老師討論,,細(xì)化運(yùn)算過程,,在一種相互碰撞的狀態(tài)中,老師和同學(xué)們完成了更有交互性的課堂學(xué)習(xí),。
對(duì)姜海老師來說,,保持課程吸引力的秘訣就是去換位思考同學(xué)們的時(shí)間價(jià)值,他將教材一個(gè)章節(jié)中最精華的部分提煉出來,,在90分鐘內(nèi)把同學(xué)們自學(xué)需要花費(fèi)一兩天才能看完的內(nèi)容講透,給他們展示了課堂的價(jià)值,。
這門課讓同學(xué)們使用了C語言這種易于犯錯(cuò)的編程語言進(jìn)行練習(xí),,目的是希望用這種需要小心操作的語言培養(yǎng)他們嚴(yán)謹(jǐn)認(rèn)真的態(tài)度。姜老師說:“如果用‘坑’比喻算法實(shí)現(xiàn)里可能出現(xiàn)的bug,,學(xué)生只有在課堂上摔的次數(shù)足夠多,,才能在今后的工作中摔得少?!?/span>
上課的同學(xué)們說:“雖然課程比較偏重?cái)?shù)學(xué)理論,,但姜老師深厚的理論基礎(chǔ)和清晰的講授過程使課堂保持了一種輕松的狀態(tài)”。這門課一方面對(duì)學(xué)生的大學(xué)數(shù)學(xué)能力有基本要求,,因?yàn)樯险n偏重用理論與計(jì)算評(píng)估一種算法,,同時(shí)也有很強(qiáng)的應(yīng)用性,課程結(jié)束后,,同學(xué)們每周要投入相應(yīng)的時(shí)間完成作業(yè),。作業(yè)與課程密切相關(guān):一部分是理論問題,有為了避免同學(xué)產(chǎn)生畏難情緒的基礎(chǔ)題,,也有激發(fā)學(xué)有余力同學(xué)的提高題,;另一部分是計(jì)算機(jī)編程工作,讓同學(xué)們通過實(shí)踐去理解課程講授的理論知識(shí),,驗(yàn)證課堂和作業(yè)里的理論結(jié)果,。
對(duì)此姜海說:“作為一名老師,最需要考慮怎么才對(duì)得住學(xué)生的時(shí)間,。讓學(xué)生意識(shí)到90分鐘的課堂學(xué)習(xí)帶來的收獲要遠(yuǎn)大于逃課去做做別的事情,,這樣的課堂才能成為學(xué)生喜愛的課堂?!?/p>