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