從2001年起我受系主任的委托承擔(dān)了“程序設(shè)計(jì)基礎(chǔ)”課的教學(xué)任務(wù)。這是給計(jì)算機(jī)系大一新生開的第一門涉及計(jì)算機(jī)的基礎(chǔ)課。當(dāng)年我已65歲,在這之前我一直在講研究生的學(xué)位課“語音信號(hào)的數(shù)字處理”。
對(duì)我來說“程序設(shè)計(jì)基礎(chǔ)”是新課,當(dāng)然有一定的難度。但從我的經(jīng)歷看卻又比較容易上手,因?yàn)槲矣兄笇?dǎo)中國(guó)隊(duì)參加國(guó)際信息學(xué)奧林匹克近20年的經(jīng)驗(yàn)。盡管年過花甲,卻仍壯心不已,要做就要做好。我跟當(dāng)時(shí)的系主任周立柱教授說,請(qǐng)他召集一個(gè)專家會(huì)討論一下課程改革方案和教學(xué)設(shè)計(jì),記得王爾乾、林行良、唐龍、王誠(chéng)等十多位教授參加了討論,給了我很大鼓勵(lì)和幫助。
干好一件事光靠熱情是不行的,特別是教學(xué)工作,需要有正確的教學(xué)理念和教學(xué)思想的指導(dǎo)。為此,我學(xué)習(xí)了教育心理學(xué)和有關(guān)創(chuàng)新學(xué)的書及一些資料,結(jié)合我在清華40年的教學(xué)實(shí)踐,認(rèn)真研究課程的目標(biāo)、定位、內(nèi)容、教學(xué)方法等等。著重開展了兩個(gè)方面的改革:教學(xué)模式的改革和對(duì)學(xué)生學(xué)習(xí)評(píng)價(jià)方式的改革。第一年該課就取得了很好的教學(xué)效果,成為清華大學(xué)的精品課,學(xué)生給予很高評(píng)價(jià),認(rèn)為課程 “授課方式獨(dú)特新穎,深入淺出,啟發(fā)式教學(xué),激發(fā)學(xué)生興趣,調(diào)動(dòng)學(xué)生的積極性,有助于學(xué)生獨(dú)立思考能力的提高。”(引自清華大學(xué)2001年下半年教學(xué)評(píng)估結(jié)果查詢)
1教育理念最為重要
“大學(xué)者,非謂有大樓之謂也,有大師之謂也。”先輩大師為人為學(xué)都給我們做出了榜樣。回想50年前我在自動(dòng)控制系求學(xué)和當(dāng)助教時(shí),多次聆聽鐘士模先生的教誨,深知要想搞好教學(xué)最為重要的是學(xué)習(xí)教育理念。
在新世紀(jì),教育必須培養(yǎng)人的自我決定能力,而不是培養(yǎng)人們?nèi)ミm應(yīng)傳統(tǒng)世界;重要的是要喚醒學(xué)生的力量,培養(yǎng)其自我性、主動(dòng)性、抽象的歸納力和理解力。
在教育的目的和價(jià)值的總體看法上,可持續(xù)發(fā)展教育觀的核心是強(qiáng)調(diào)要將知識(shí)、能力、素質(zhì)融會(huì)貫通于教育的全過程,要求受教育者要關(guān)心他人,學(xué)會(huì)合作、協(xié)調(diào),將能力培養(yǎng)與素質(zhì)教育擺到重要的位置上。認(rèn)為具有較強(qiáng)能力和良好素質(zhì)的人,必須掌握豐富的知識(shí); 能力培養(yǎng)與素質(zhì)教育要部分地通過知識(shí)的傳授來實(shí)施; 能力與素質(zhì)在許多場(chǎng)合下是通過知識(shí)表現(xiàn)出來的。
作為教授,我們應(yīng)該如何傳授知識(shí),怎樣培養(yǎng)學(xué)生的能力? 我以為應(yīng)該推崇以探索為本的教學(xué),努力將知識(shí)型教學(xué)改進(jìn)為研究型教學(xué),引導(dǎo)學(xué)生在不同級(jí)別的探索空間學(xué)習(xí)實(shí)踐,取得經(jīng)驗(yàn),提高能力。
對(duì)理工科的大學(xué)生,能力是技能化知識(shí)的綜合體現(xiàn)。培養(yǎng)能力,要把知識(shí)運(yùn)用的綜合性、靈活性與探索性作為重要內(nèi)容。能力作為個(gè)性的個(gè)別心理特點(diǎn),不是天賦的,而是在后天的教育與實(shí)踐中形成和發(fā)展起來的。能力是各種社會(huì)實(shí)踐的產(chǎn)物,只能在實(shí)踐活動(dòng)中得到提高。能力須以豐富的知識(shí)作支撐。實(shí)踐是能力賴以生長(zhǎng)的土壤。
學(xué)生的良好素質(zhì)是知識(shí)和能力的升華。
素質(zhì)教育是以尊重學(xué)生的主體作用、主動(dòng)精神,注重開發(fā)人的潛能,形成人的健全人格為根本特征的教育。
我以為素質(zhì)教育要求學(xué)生在學(xué)校里學(xué)會(huì):“怎樣做人,怎樣做事,怎樣求知,怎樣健體?!?/p>
作為計(jì)算機(jī)系的教授還有責(zé)任傳承信息道德。所謂信息道德,是維護(hù)信息資源的真實(shí)性與信息處理的社會(huì)責(zé)任感,也是科學(xué)精神與人文精神的結(jié)合。信息道德水平體現(xiàn)著人格水平。信息教育過程也是提高思想道德情操,塑造健康人格的過程。
創(chuàng)造性思維活動(dòng)的基礎(chǔ)是理論指導(dǎo)下的實(shí)踐,有目的的實(shí)踐。在實(shí)踐當(dāng)中積累豐富的經(jīng)驗(yàn),取得真知灼見。
創(chuàng)造性思維離不開工具。工具影響思維?!拔覀兯褂玫墓ぞ哂绊懼覀兊乃季S方式和思維習(xí)慣,從而也將影響著我們的思維能力?!?Edsger Dijkstra 1972年圖靈獎(jiǎng)得主)計(jì)算思維是人類借助通用智力工具求解問題的一條途徑。涉及理解和運(yùn)用計(jì)算機(jī)科學(xué)的基本概念、遞歸思想、抽象化、形式化、枚舉、搜索、啟發(fā)推理等。
創(chuàng)造性思維需要有科學(xué)的世界觀和方法論來導(dǎo)引。
探索性學(xué)習(xí)有助于創(chuàng)造性思維的培養(yǎng)。
從思想方法上要擺脫傳統(tǒng)偏見,思維定勢(shì)往往會(huì)妨礙無偏見地觀察和思考。敢于思考和善于思考應(yīng)該是創(chuàng)造者的座右銘。
通過學(xué)習(xí),我的感悟是:課程改革要以人為本,我們的責(zé)任是把學(xué)生潛能發(fā)掘出來。讓人人都能“自信、自立、自尊、自強(qiáng)”。
下面談?wù)勎覍?duì)這門程序設(shè)計(jì)基礎(chǔ)課的重要性的認(rèn)識(shí)。
程序設(shè)計(jì)強(qiáng)調(diào)數(shù)學(xué)基礎(chǔ),這是因?yàn)椤叭魏问挛锒际橇亢唾|(zhì)的統(tǒng)一體,都有自身的量的方面的規(guī)律,不掌握量的規(guī)律,就不可能對(duì)事物的質(zhì)獲得明晰的認(rèn)識(shí)。數(shù)學(xué)是研究‘量’的科學(xué),數(shù)學(xué)不斷地在總結(jié)和積累各種量的規(guī)律性,因而必然成為人們認(rèn)識(shí)世界的有力工具?!睌?shù)學(xué)文化是人類文化中最基本的文化,馬克思說:“一門科學(xué)只有當(dāng)它達(dá)到了能夠成功地運(yùn)用數(shù)學(xué)時(shí),才算真正發(fā)展了?!彪娮佑?jì)算機(jī)的出現(xiàn)標(biāo)志著數(shù)學(xué)已進(jìn)入了機(jī)器時(shí)代,數(shù)學(xué)文化的進(jìn)步是信息時(shí)代科學(xué)技術(shù)發(fā)展的基礎(chǔ)。
程序設(shè)計(jì)是將數(shù)學(xué)應(yīng)用于解決實(shí)際問題的技術(shù),是讓計(jì)算機(jī)聽命于人的最直接的技術(shù),也可以說是自己主宰自己的人腦延伸的技術(shù)。這樣的認(rèn)識(shí)可能高度還不夠,因?yàn)樵谟辛送ㄓ弥橇ぞ咧?,人們?huì)適應(yīng)性地改變思維方式。學(xué)會(huì)計(jì)算思維是學(xué)生在信息社會(huì)大展宏圖的需要。因此,我提出程序設(shè)計(jì)是大學(xué)生的一個(gè)看家本領(lǐng)。不會(huì)編程的人,只能局限在別人劃定的圈內(nèi)工作,對(duì)于那些劃在圈外,計(jì)算機(jī)能夠勝任,而你又渴望去做的工作,不會(huì)編程的人只能‘望圈興嘆’?!安荒茏屛覀兊暮⒆虞斣谄鹋芫€上”?!拔覀冇胸?zé)任讓那些有理想有抱負(fù)有靈氣又肯吃苦的中國(guó)孩子在起跑時(shí)就能占有先機(jī)。”
以上是我通過學(xué)習(xí)在教育、教學(xué)方面的一些思想認(rèn)識(shí)。也是我進(jìn)行課程改革的思想與心理基礎(chǔ)。
2教學(xué)改革,選定目標(biāo),創(chuàng)出新路
教師是教學(xué)活動(dòng)的直接組織者和實(shí)施者,在教學(xué)中發(fā)揮著極其重要的作用。要把課程改好,我認(rèn)為最主要的是教師教育觀念的轉(zhuǎn)變。實(shí)踐證明,教學(xué)內(nèi)容的選擇,教學(xué)方法的采用都會(huì)直接影響教學(xué)效果和教學(xué)目標(biāo)的實(shí)現(xiàn)。
目前有些學(xué)校的程序設(shè)計(jì)課程仍停留在傳統(tǒng)的教學(xué)模式上,過于注重語句、語法和一些細(xì)節(jié),基本上是以高級(jí)語言自身的體系為脈絡(luò)展開的,沒有把邏輯與編程解題思路放在主體地位上。如何分析問題和解決問題的思路講的很少,對(duì)學(xué)生編程的能力,上機(jī)解題的能力訓(xùn)練不夠,更談不上在教學(xué)中引導(dǎo)學(xué)生研究和探索了。這樣就給后續(xù)課程及研究生階段的課題研究留下了很多麻煩。很多學(xué)生在學(xué)習(xí)這門課時(shí)感到枯燥難學(xué),學(xué)過之后,又不能用之解決問題。
我個(gè)人的經(jīng)歷有些不同,20年來一直在參與輔導(dǎo)中學(xué)生和大學(xué)生參加有關(guān)計(jì)算機(jī)的各種比賽,包括國(guó)際信息學(xué)奧林匹克和ACM世界大學(xué)生程序設(shè)計(jì)競(jìng)賽,通過對(duì)這些編程能手成長(zhǎng)過程的認(rèn)真思考和研究,使我感到很有必要改變我們的課程教學(xué)模式,用先進(jìn)的教學(xué)理念和方法培養(yǎng)一流人才。對(duì)這一問題,我和系領(lǐng)導(dǎo)談了自己的想法,他們非常支持。從2001年9月起,我承擔(dān)了程序設(shè)計(jì)基礎(chǔ)課的教學(xué)任務(wù),并開始對(duì)程序設(shè)計(jì)基礎(chǔ)課程教學(xué)模式進(jìn)行改革。
首先要分析傳統(tǒng)方法的毛病:
(1) 語句、語法講的太多、太細(xì);
(2) 忽視基本問題的求解過程;
(3) 課程中算法意識(shí)淡??;
(4) 不能激發(fā)學(xué)生的學(xué)習(xí)興趣;
(5) 教學(xué)目標(biāo)存在問題。學(xué)了但不會(huì)用,有人很快就忘了。
我們把程序設(shè)計(jì)基礎(chǔ)的目標(biāo)定位為:
(1) 借助程序設(shè)計(jì)的知識(shí)載體,傳授基本問題的求解過程和基本思路;
(2) 建立算法意識(shí),培養(yǎng)良好的思維習(xí)慣;
(3) 從學(xué)科方法論上打基礎(chǔ),培養(yǎng)計(jì)算思維能力和分析問題解決問題的能力。
我們認(rèn)為學(xué)科教育必須走內(nèi)涵發(fā)展道路,在課程中應(yīng)該強(qiáng)調(diào)計(jì)算思維能力、抽象思維能力和邏輯思維能力,注重理性思維和理性實(shí)踐。在解決問題的實(shí)踐中訓(xùn)練觀察能力、思維能力和實(shí)踐能力。
我們分析了教學(xué)設(shè)計(jì)中的幾個(gè)難點(diǎn):
(1) 對(duì)“構(gòu)造性”和“能行性”的把握?!皹?gòu)造性”和“能行性”是計(jì)算機(jī)學(xué)科的獨(dú)有的特點(diǎn),在教學(xué)內(nèi)容的選擇和教學(xué)方法的設(shè)計(jì)上都要顧及這個(gè)特點(diǎn)。
(2) 如何培養(yǎng)計(jì)算思維能力?引出什么問題、通過什么方式來培養(yǎng)計(jì)算思維能力。
(3) 抽象第一與動(dòng)手編程實(shí)踐的關(guān)系。抽象第一是計(jì)算機(jī)學(xué)科教育的一個(gè)基本要求,涉及邏輯思維、形式化、構(gòu)建數(shù)學(xué)模型和算法等等,如果不能顧及學(xué)生的認(rèn)知規(guī)律,無視初學(xué)者的感受,可能就會(huì)難倒學(xué)生或嚇倒學(xué)生。正確處理好理論與動(dòng)手編程實(shí)踐的關(guān)系是十分重要的。
(4) 盡量超越具體語言,又不能沒有上機(jī)的語言環(huán)境。
(5) 初學(xué)者的難點(diǎn)在哪兒?
(6) 怎樣激發(fā)學(xué)生的學(xué)習(xí)興趣?
針對(duì)難點(diǎn)和學(xué)生剛剛?cè)雽W(xué)的實(shí)際,我們的做法是:
(1) 提出課程的定位是培養(yǎng)學(xué)生利用計(jì)算機(jī)編程手段分析問題和解決問題的能力
(2) 提出強(qiáng)化實(shí)踐的教學(xué)設(shè)計(jì);
(3) 提出理性思維和理性實(shí)踐的導(dǎo)學(xué)要求;
(4) 提出“抱西瓜,不撿芝麻”的教學(xué)策略 ;
(5) 提出上課同時(shí)養(yǎng)成良好的編程習(xí)慣;
(6) 提出上機(jī)解題的考試方法;
(7) 提出創(chuàng)設(shè)進(jìn)行因材施教的探索空間。
對(duì)程序設(shè)計(jì)教學(xué)模式進(jìn)行改革,以強(qiáng)調(diào)動(dòng)手實(shí)踐上機(jī)編程為切入點(diǎn);以任務(wù)驅(qū)動(dòng)方式,通過實(shí)例講授程序設(shè)計(jì)的基本概念,基本方法。重點(diǎn)放在思路上,即:在C/C++語言的環(huán)境下,針對(duì)問題進(jìn)行分析,構(gòu)建數(shù)學(xué)模型,理出算法并編程實(shí)現(xiàn),同時(shí)要求養(yǎng)成良好的編程習(xí)慣,在此過程中培養(yǎng)學(xué)生的思維能力和動(dòng)手能力,鼓勵(lì)學(xué)生探索、研究和創(chuàng)新。
在課堂教學(xué)中我們采用了如下的教學(xué)思路:
課堂教學(xué)思路
下面著重談教學(xué)方式與評(píng)價(jià)方式的改革。
(1) 教學(xué)方式的改革
① 強(qiáng)化實(shí)踐
鑒于程序設(shè)計(jì)課是高強(qiáng)度的腦力勞動(dòng),不是聽會(huì)的、也不是看會(huì)的,而是練會(huì)的。只有讓學(xué)生動(dòng)手,他才會(huì)有成就感,進(jìn)而對(duì)課程產(chǎn)生興趣,學(xué)起來才比較從容。因此,我們的基本思想是在理論指導(dǎo)下,讓學(xué)生動(dòng)手、動(dòng)腦,更多地上機(jī)實(shí)踐。因?yàn)閷W(xué)生只有在編寫大量程序之后,才能獲得真知灼見,感到運(yùn)用自如。注重學(xué)生動(dòng)手能力的培養(yǎng)是這門課和以往課程最大的不同之處。
② 鼓勵(lì)和引導(dǎo)探索式學(xué)習(xí)
按照建構(gòu)主義的學(xué)習(xí)理論、學(xué)生作為學(xué)習(xí)的主體在與客觀環(huán)境(指所學(xué)內(nèi)容)的交互過程中構(gòu)建自己的知識(shí)結(jié)構(gòu)。教師應(yīng)引導(dǎo)學(xué)生在解題編程的實(shí)踐中探索其中帶規(guī)律性的認(rèn)識(shí),將感性認(rèn)識(shí)升華到理性高度,只有這樣,學(xué)生才能舉一反三。在這一過程中教師起著很大的引導(dǎo)作用。
③ 突出重點(diǎn)
這門課授課的原則是要學(xué)生“抱西瓜”而不是“摘芝麻”,重點(diǎn)放在思路、算法、編程構(gòu)思和程序?qū)崿F(xiàn)上。語句只是表達(dá)工具,講一些最主要的,細(xì)微末節(jié)的東西根本不講。在教學(xué)設(shè)計(jì)中注重最大限度地調(diào)動(dòng)學(xué)生的積極性,選擇少而精,又能引發(fā)興趣的典型問題,作為開篇,要求學(xué)生帶著問題學(xué),積極思考,與教師互動(dòng),盡量當(dāng)堂學(xué)懂。突出上機(jī)訓(xùn)練,在編寫程序的過程中,提高利用計(jì)算機(jī)這個(gè)智力工具來分析問題和解決問題的能力。
④ 培養(yǎng)良好的編程習(xí)慣
在課上我們非常注意讓學(xué)生養(yǎng)成良好的編程習(xí)慣,即強(qiáng)調(diào)程序的可讀性、規(guī)范性;要求變量必須加注釋;程序構(gòu)思要有說明;學(xué)會(huì)如何調(diào)試程序;盡量使程序優(yōu)化;還要求對(duì)程序的運(yùn)行結(jié)果作正確與否的判斷與分析。
⑤ 注重培養(yǎng)學(xué)生“自學(xué)、動(dòng)手、應(yīng)用、上網(wǎng)”的學(xué)習(xí)習(xí)慣
我們認(rèn)為 在本科階段就應(yīng)該注意培養(yǎng)學(xué)生的自學(xué)能力。很多東西完全是可以自學(xué)的,尤其是計(jì)算機(jī)。計(jì)算機(jī)是實(shí)踐性極強(qiáng)的學(xué)科,所學(xué)的內(nèi)容和要實(shí)踐的東西是一個(gè)整體,所以可以自己動(dòng)手來學(xué),書上看不懂的在機(jī)器上動(dòng)手試試,往往就弄懂了。上網(wǎng)是指充分利用網(wǎng)絡(luò)平臺(tái),提高獲取信息、處理信息和交流信息的能力。
(2) 對(duì)學(xué)生學(xué)習(xí)評(píng)價(jià)方式的改革
考試是檢驗(yàn)學(xué)生學(xué)習(xí)效果、評(píng)價(jià)學(xué)生學(xué)習(xí)業(yè)績(jī)的重要環(huán)節(jié)??荚囎鳛椤爸笓]棒”對(duì)教學(xué)目標(biāo)、教學(xué)過程有著相當(dāng)大的影響。我一直在思考如何進(jìn)行考試改革,如何借助考試環(huán)節(jié)調(diào)動(dòng)和激發(fā)學(xué)生自主學(xué)習(xí)的積極性、創(chuàng)造性等問題。
① 不紙上談兵,不考筆試,不考死記硬背的東西
開學(xué)之初,就向?qū)W生宣布考試方式—上機(jī)解題,判分也是由計(jì)算機(jī)來完成,對(duì)就是對(duì),錯(cuò)就是錯(cuò)。我們平時(shí)比較注意對(duì)學(xué)生學(xué)習(xí)方式的引導(dǎo),讓學(xué)生明白:理論很重要,要在理論指導(dǎo)下,動(dòng)手動(dòng)腦、有條有理地進(jìn)行實(shí)踐。而實(shí)踐才能出真知,動(dòng)手才能學(xué)到真本事。
② 利用資源,補(bǔ)充助教的不足
我系每年都有十多位保送生,他們都是計(jì)算機(jī)競(jìng)賽方面的高手,是“國(guó)家集訓(xùn)隊(duì)隊(duì)員”。與此相反,每年所招新生中有30%的學(xué)生沒有摸過計(jì)算機(jī)。我們把這些“高手”組織起來,給他們起名為“小教員”。在開學(xué)的第一天就把他們介紹給其他同學(xué),并把他們分到各班,讓他們對(duì)該班同學(xué)的學(xué)習(xí)負(fù)起責(zé)任,幫助同學(xué)學(xué)習(xí)。這部分“小教員”真正發(fā)揮了作用,這樣既彌補(bǔ)了師資的不足,同時(shí)也使他們受到了鍛煉,增強(qiáng)了責(zé)任感和團(tuán)隊(duì)精神。
3仍須努力,沒有最好,只有更好。
經(jīng)過7年的實(shí)踐,我們感到在一些方面還要進(jìn)一步努力。譬如:
要進(jìn)一步加大學(xué)生訓(xùn)練環(huán)節(jié)的力度;
要加強(qiáng)對(duì)基礎(chǔ)較差學(xué)生的輔導(dǎo);
要建立一個(gè)因材實(shí)教的機(jī)制,創(chuàng)造條件,讓學(xué)生能有更廣闊的發(fā)展空間;
要建立平時(shí)的督促機(jī)制,讓每一個(gè)學(xué)生真正落實(shí)動(dòng)手實(shí)踐;
要考慮與后續(xù)課程的銜接。
改革是沒有止境的,一流大學(xué)要有一流的課程,沒有最好,只有更好。