創(chuàng)新能力、素質(zhì)教育屬于當(dāng)今教育領(lǐng)域最為熱門的話題了,從學(xué)齡前到大學(xué)教育,無不積極探索和嘗試。這著實是一件可喜之事。然而對于“能力”、“素質(zhì)”的內(nèi)涵,卻是眾說紛紜。其實這的確沒有一個放之四海而皆準(zhǔn)的定義,在不同的教育階段、不同類型的學(xué)校,根據(jù)不同的培養(yǎng)目標(biāo),能力和素質(zhì)的側(cè)重點也是不一樣的。本文結(jié)合作者在清華大學(xué)的教學(xué)實踐,著重分析在大學(xué)本科計算機(jī)程序設(shè)計的基礎(chǔ)課中,如何培養(yǎng)學(xué)生的創(chuàng)新能力。
一、創(chuàng)新能力乃天賦潛能
說到創(chuàng)新能力,往往總覺得是少數(shù)精英才具備的。其實創(chuàng)新能力正是人類與生俱來的能力。創(chuàng)新能力不是空中樓閣,而是實實在在體現(xiàn)在學(xué)習(xí)能力和工作能力之中。學(xué)習(xí)能力是一個人獲取新知識、新信息,掌握新理論和新方法的能力;工作能力是發(fā)現(xiàn)問題、分析問題和解決問題的能力。而創(chuàng)新,就是要發(fā)現(xiàn)別人沒有發(fā)現(xiàn)的問題和現(xiàn)象,得出別人沒有得到的、與眾不同的分析見解,研究出新的理論和方法去解決問題。
從呱呱墜地開始,孩子就睜大探尋的眼睛,不斷地認(rèn)識周圍的世界,對一切新事物充滿好奇,無所畏懼地去嘗試一切,對于玩具也總有自己獨特的新玩法,總有拆開重新裝配的欲望。但是,后天的教育、前人的經(jīng)驗不斷地束縛了這種創(chuàng)新意識。我們現(xiàn)在已經(jīng)意識到這一點,所以大力提倡培養(yǎng)創(chuàng)新能力。其實不如說是保持天賦的創(chuàng)新能力,至多是發(fā)掘人類本身所具有的潛能。當(dāng)然,我并不是說中規(guī)中矩的教育和學(xué)習(xí)前人的經(jīng)驗不重要。無以規(guī)矩不成方圓,前人的經(jīng)驗也是前人創(chuàng)新探索的結(jié)晶,絕對是珍貴的。只是以什么樣的觀點和思想方法去學(xué)習(xí)甚為重要。
二、創(chuàng)新能力的培養(yǎng)關(guān)鍵在于教育思想,基礎(chǔ)課至關(guān)重要
在大學(xué)的課程中,談到創(chuàng)新能力培養(yǎng),便自然聯(lián)系到先進(jìn)的實驗設(shè)備、前沿的科學(xué)技術(shù)、尖端的研究項目。誠然,這些對于培養(yǎng)學(xué)生的創(chuàng)新能力非常有益,但是并非只有具備這些條件才能培養(yǎng)學(xué)生的創(chuàng)新能力。同時這些也都只是外在的條件,教育思想和觀點才是最主要的。在強(qiáng)調(diào)培養(yǎng)學(xué)生能力的今天,我們采用了諸如網(wǎng)絡(luò)教學(xué)、實踐教學(xué)、案例教學(xué)、項目訓(xùn)練,等等新的方法和手段,更多的方法和手段仍在不斷涌現(xiàn)。然而這些都只是外在的形式,形式必須為思想和目標(biāo)服務(wù)才有意義。有了正確的教育思想,在任何條件下以任何形式都能夠充分保護(hù)和發(fā)掘人類的創(chuàng)造性潛能。如果教育者的思想首先受到禁錮,那么一切的先進(jìn)設(shè)備、優(yōu)越條件便都會成為協(xié)助禁錮的工具。反思一下,為什么在自然科學(xué)如此發(fā)達(dá)的今天我們卻感到了學(xué)生創(chuàng)新意識的危機(jī)?
人類創(chuàng)新意識和能力的保護(hù)和發(fā)掘,開始得越早越有益,這也正是我們現(xiàn)在從小提倡素質(zhì)教育的原因之一。在大學(xué)教育階段呢,基礎(chǔ)課相對而言對于創(chuàng)新能力的培養(yǎng)起著最為重要的作用,這一點卻常常被忽略。一談到創(chuàng)新,往往首先想到要通過什么樣的尖端課題培養(yǎng)優(yōu)秀的博士生,要讓教師和學(xué)生在世界頂級刊物發(fā)表優(yōu)秀論文。而基礎(chǔ)課,總是被認(rèn)為與創(chuàng)新不沾邊,只是傳授知識、奠定知識體系結(jié)構(gòu)的基礎(chǔ),這其實正是基礎(chǔ)課教育不被重視的原因。
在學(xué)前教育、基礎(chǔ)教育階段,在大學(xué)的基礎(chǔ)課學(xué)習(xí)階段,培養(yǎng)創(chuàng)新能力的關(guān)鍵在于引導(dǎo)學(xué)生發(fā)現(xiàn)和運用自身潛在的創(chuàng)新精神,養(yǎng)成思想不受禁錮,勇于質(zhì)疑,敢于探索,善于動手實踐自己的獨特想法的基本素質(zhì)。如果說基礎(chǔ)教育階段是從人文角度對這種基本素質(zhì)的全面培養(yǎng),那么大學(xué)的基礎(chǔ)課階段,就是從專業(yè)角度,對創(chuàng)新意識在專業(yè)領(lǐng)域的延伸起著關(guān)鍵作用。如果沒有這種基礎(chǔ)的奠定,在專業(yè)研究領(lǐng)域進(jìn)行創(chuàng)新便成為空談。
三、學(xué)習(xí)能力是創(chuàng)新能力的基礎(chǔ)
要創(chuàng)新,首先需要站在巨人的肩膀上,要學(xué)習(xí)、掌握現(xiàn)有的科學(xué)與技術(shù)。而學(xué)習(xí)過程中采取的觀點和方法是關(guān)鍵。
以計算機(jī)程序設(shè)計類的基礎(chǔ)課為例,這樣的課程一般都是安排在大學(xué)一年級。我們要向?qū)W生講授程序設(shè)計語言、程序設(shè)計方法、算法,以及函數(shù)庫/類庫中對常用算法的實現(xiàn)。如果只是要求學(xué)生學(xué)會這些現(xiàn)有的理論和已經(jīng)實現(xiàn)的技術(shù),并且達(dá)到熟練運用,那么我們就是在扼殺學(xué)生的創(chuàng)造性。為什么這樣說呢?因為如果他不知道有這些現(xiàn)有的成果存在,他發(fā)現(xiàn)需要解決的問題時總會想辦法去解決,而創(chuàng)造就發(fā)生在“想辦法解決”中。但是現(xiàn)在老師告訴他:現(xiàn)在有實現(xiàn)技術(shù)了,你學(xué)會用就可以了,他便不再質(zhì)疑、無需創(chuàng)造了。如果每一門基礎(chǔ)課都這樣,學(xué)生也就習(xí)慣于拿來使用,丟掉了創(chuàng)新意識。
這樣說,并不是不要學(xué)習(xí)。如果不學(xué)習(xí),就丟失和浪費了前人的創(chuàng)造。如果一切總是從盤古開天地研究起,人類就會永遠(yuǎn)停留在懵懂和愚昧狀態(tài)。只是學(xué)習(xí)的時候,不能迷信任何理論,不能依賴任何技術(shù)實現(xiàn)。要有獨立的見解和立場。比如介紹一種程序語言時,首先要以發(fā)展的觀點來介紹。這類課程和教科書上一般都會介紹計算機(jī)程序語言的發(fā)展歷程、程序設(shè)計方法的演變,可是很多老師只是將這些作為開場白,學(xué)生也只是聽熱鬧、聽故事而已,這就沒有達(dá)到目的。介紹歷史和發(fā)展,最主要的是向?qū)W生傳授一種發(fā)展的觀點,讓學(xué)生知道每一種新的理論、方法、技術(shù)都是為了解決什么問題而出現(xiàn)的,還要啟發(fā)學(xué)生,未來他將面臨更多、更復(fù)雜的新問題,那時候,他應(yīng)該去發(fā)展新的理論、方法、技術(shù),去解決新的問題。
在講解程序設(shè)計語言的語法時,如果僅僅講解和驗證語法,學(xué)生會越學(xué)越煩,會覺得語法太多、記不住,會連學(xué)習(xí)興趣都失去了,更談不上什么培養(yǎng)創(chuàng)新能力了。所以應(yīng)該首先提出一些新的問題,讓學(xué)生思考如何解決,當(dāng)學(xué)生發(fā)現(xiàn)用已經(jīng)學(xué)過的語法不能解決,或者不方便解決新問題的時候,啟發(fā)學(xué)生:如果是你來設(shè)計編程語言,你希望設(shè)計什么樣的語句用來解決這種問題呢?這時學(xué)生會有各種各樣的見解。讓大家充分思考,然后引出新的語句,同時說明,這只是一種設(shè)計,目前來說相對比較合理,但是隨著新問題的出現(xiàn),語法還會不斷發(fā)展的。
在基礎(chǔ)課中要鼓勵學(xué)生去反思、去批判現(xiàn)有的程序語言,要珍惜學(xué)生在學(xué)習(xí)過程中迸發(fā)的創(chuàng)新火花。比如經(jīng)常會有學(xué)生質(zhì)疑,為什么一定要這樣寫?為什么那樣寫不行?如果老師簡單地回答:這是語法規(guī)定,你必須遵循,那樣就阻止了學(xué)生質(zhì)疑,而質(zhì)疑正是創(chuàng)新的萌芽。所以應(yīng)該首先肯定學(xué)生的質(zhì)疑精神,然后告訴他:既然這種語言是被廣泛采用的國際標(biāo)準(zhǔn),就一定有它的道理,但是要真正明白其中的道理,你還需要深入學(xué)習(xí)其他課程,比如編譯原理。你的疑問先留著,等你首先理解了這個語言背后依據(jù)的理論和實現(xiàn)技術(shù),你再深入質(zhì)疑。那時候如果你有更好的觀點,可以通過標(biāo)準(zhǔn)組織的途徑,給國際標(biāo)準(zhǔn)提出修改意見,或者設(shè)計出一種新的編程語言。這樣,學(xué)生就會愿意去深入學(xué)習(xí)現(xiàn)有的知識,但是又不迷信任何權(quán)威。
在程序設(shè)計基礎(chǔ)課中總要介紹一些常用算法的,但是又沒有時間詳細(xì)地講算法理論,因為后續(xù)還有計算方法和數(shù)據(jù)結(jié)構(gòu)課程。這時切忌讓學(xué)生死記硬背書上的算法,對每一個簡單算法,都要讓學(xué)生理解為什么是這樣設(shè)計的,而且要鼓勵學(xué)生自己設(shè)計出不同的方法。這時有些學(xué)生就會寫出各種不同的算法,那就引導(dǎo)他簡單地從時間、空間效率,程序的可讀性等比較明顯的角度去評價、對比不同的算法。告訴學(xué)生,如果將來你解決新問題時,沒有現(xiàn)成的算法,或者分析了現(xiàn)有的算法不能滿足你的要求,那你就需要自己研究新的算法了,這就是創(chuàng)新。這時學(xué)生好像豁然開朗:原來創(chuàng)新并不是什么遙不可及的事情!
四、發(fā)現(xiàn)問題和解決問題是創(chuàng)新的開始
所謂創(chuàng)新,直白來講,就是發(fā)現(xiàn)了新的需要解決的問題,在廣泛研究了現(xiàn)有的理論和方法以后,認(rèn)為不能解決,或者解決得不夠好,于是去研究新的理論和方法。所以要能夠創(chuàng)新首先必須善于發(fā)現(xiàn)問題、勇于解決問題。這種素質(zhì)也必須從基礎(chǔ)課開始培養(yǎng),如果在基礎(chǔ)課中學(xué)生習(xí)慣了只完成老師規(guī)定的作業(yè)(包括大作業(yè)),那么做研究的時候要他自己選方向、選題目,就會感到突然和茫然。
在幾門程序設(shè)計課程中,我都是讓學(xué)生自己選題、設(shè)計大作業(yè)。從開學(xué)初就讓學(xué)生自己去發(fā)現(xiàn)有什么問題需要用計算機(jī)來解決,然后通過課程的學(xué)習(xí)逐步設(shè)計解決方法,并實現(xiàn)。在整個過程中,學(xué)生要經(jīng)歷選題(通過調(diào)研發(fā)現(xiàn)問題)、設(shè)計、實現(xiàn)、測試、答辯。當(dāng)然,由于所學(xué)的知識有限,很可能只能解決整個問題的一小部分。但是學(xué)生學(xué)會了如何去發(fā)現(xiàn)問題、分析問題和解決問題,這是學(xué)習(xí)如何研究的開始。如果僅僅完成規(guī)定題目的大作業(yè),學(xué)生只是完成任務(wù),至多達(dá)到技術(shù)培訓(xùn)的目的。
五、學(xué)術(shù)道德是科學(xué)研究的基本素質(zhì)
創(chuàng)新實際上應(yīng)該是一個很自然的過程,對于“新”的探索和研究應(yīng)該是發(fā)自內(nèi)心的,沒有太多功利的。事實上一些偉大的科學(xué)家只是出于對科學(xué)的熱愛、對自然界的執(zhí)著探索去進(jìn)行研究,正是這樣的研究成果為世界創(chuàng)造的巨大了財富,為人類帶來了廣泛的利益。學(xué)生從學(xué)習(xí)階段開始,對研究就不能抱有功利心,而應(yīng)該有更多公益心。只有這樣,將來在研究工作中才能夠真正尊重科學(xué)、尊重他人的成果,才能嚴(yán)謹(jǐn)、誠實,才能做出真正有價值的研究。相反,如果在學(xué)習(xí)基礎(chǔ)課的時候,可以為了分?jǐn)?shù)不擇手段,那么將來在研究工作中為了沽名釣譽(yù)也會不擇手段。
所以在基礎(chǔ)課中,培養(yǎng)學(xué)生良好的學(xué)術(shù)道德便是一個重要任務(wù)。但是這種培養(yǎng)不是通過說教,說教是沒有用的,要通過教學(xué)過程中的每一個環(huán)節(jié),去養(yǎng)成。說到這里,不得不說現(xiàn)在我們整個社會對于養(yǎng)成學(xué)生誠實、善良的品格所發(fā)揮的正面作用不夠,以至于在大學(xué)的基礎(chǔ)課里還要去認(rèn)真培養(yǎng)誠實與善良。如果在大學(xué)本科還不培養(yǎng)的話,那么進(jìn)入研究工作以后,個別人的學(xué)術(shù)道德就很成問題了。
在大學(xué)里,學(xué)生之間抄作業(yè),請別人代寫作業(yè),抄襲論文,考試作弊等現(xiàn)象時有發(fā)生。雖然各個學(xué)校的管理制度越來越嚴(yán),但是個別學(xué)生還是會鋌而走險。在基礎(chǔ)課中,學(xué)生數(shù)量很大,而教師人力卻很少,一味地靠監(jiān)管實際上并不可行。而如果采用正確的引導(dǎo),往往會收到很好的效果。有時候?qū)W生違規(guī),是因為不知道什么是正確途徑,是因為沒有勇氣承擔(dān)自己的失敗或失誤。比如就抄作業(yè)這一現(xiàn)象來說,有些學(xué)生就是不會做,實在完不成作業(yè)。原因呢,可能是沒認(rèn)真學(xué),也可能是能力有限。但是他不想因此而丟分,或者不能承受丟分這個事實,又不認(rèn)為抄襲是欺騙,所以他抄作業(yè)。在我的課上,我允許學(xué)生借鑒別人的作業(yè),但是要明確注明借鑒了誰的,如何借鑒:全抄并且沒看懂、抄了并且看懂了、抄了以后看懂了自己又作了修改(注明修改之處)。然后建議他一定要將這些題目真正學(xué)會。
在完成大作業(yè)和學(xué)期論文的過程中,更要引導(dǎo)學(xué)生正確引用別人的成果。鼓勵學(xué)生就自己的選題廣泛查閱資料,借鑒已發(fā)表的論文和網(wǎng)上開放源碼的程序,然后在這個基礎(chǔ)上做出自己的創(chuàng)新或改進(jìn)。同時在源代碼中、在報告和論文中要清除準(zhǔn)確地注明引用出處。這樣學(xué)生就學(xué)會了如何合法地使用現(xiàn)有的成果,并在前人的研究基礎(chǔ)上創(chuàng)新。
做老師的都遇到過,有些學(xué)生考試不及格就以各種方式向老師求情,有送禮的,有痛哭流涕的,還有與老師爭吵的??吹竭@樣的學(xué)生,我覺得非常痛心。不是因為他一門課沒學(xué)好,而是因為他不能承受這小小一點失敗,卻要求老師與他合謀弄虛作假讓他逃過這一劫。遇到這樣的學(xué)生,我就幫助他學(xué)會接受失敗。失敗的經(jīng)歷也是一種鍛煉,接受失敗,跌倒了自己爬起來也是必須的素質(zhì)。因為在學(xué)生將來的研究工作中失敗一定多于成功,偉大的成就都是建立在眾多失敗的基礎(chǔ)上的。如果一個研究者不能接受失敗,如果失敗了就想到用虛假手段蒙混,那注定是不會得到真正有價值的研究成果的。
基礎(chǔ)課很重要,這似乎總掛在嘴邊上卻又總得不到落實。通常認(rèn)為基礎(chǔ)課只是單純積累知識基礎(chǔ)的,老師只要將知識講清楚就可以了,基礎(chǔ)課中的教學(xué)研究在大學(xué)里是不算研究工作的,甚至不算是工作。這是因為,基礎(chǔ)課與以后的研究工作的關(guān)系,基礎(chǔ)課與創(chuàng)新能力的關(guān)系沒有沒廣泛認(rèn)識。在大學(xué)的基礎(chǔ)課中,重視創(chuàng)新能力的培養(yǎng)不是太早、而是太晚了,這本應(yīng)該是從幼兒教育就開始并貫穿始終的。那么現(xiàn)在我們這些教基礎(chǔ)課的老師,應(yīng)該首先將基礎(chǔ)課教學(xué)與創(chuàng)新能力的培養(yǎng)結(jié)合起來,認(rèn)真研究其中的理論和規(guī)律。這是造福學(xué)生、造福未來的事情。