王立柱
尊敬的各位專家,各位老師:
我來自天津師范大學管理學院。1998年我們學校進行課程調(diào)整,在強調(diào)深基礎(chǔ)、寬口徑的素質(zhì)教育背景下,我主持進行了C、C++和數(shù)據(jù)結(jié)構(gòu)三門課程的整合。當時,我們學院的計算機基礎(chǔ)課程不僅分散,簡單重復(fù)多,應(yīng)試現(xiàn)象嚴重,而且占用課時量大,與主干課程爭天奪地,而社會又越來越需要既熟悉專業(yè)又掌握信息技術(shù)的復(fù)合型人才。于是,如何在限制課時的情況下夯實學生的計算機基礎(chǔ),提高他們的計算機應(yīng)用能力,就成為我們課程改革的主題。
改革的持久性是我們始料未及的,到如今已整整十年。是學校各級領(lǐng)導的理解和支持,是同行和專家的指導和鼓勵,使我們得以在寬松的環(huán)境中反復(fù)實踐探索。其中經(jīng)歷兩次天津市教改立項,由清華大學出版社出版的教材和課件改版三次。
現(xiàn)在,我們的第3版教材被評為國家“十一五”規(guī)劃教材,我們的課程被批準為2008年教育部-微軟精品課程建設(shè)項目,《計算機教育》雜志對我們的改革進行了一年的連續(xù)報道,對一個普通高校的非計算機專業(yè)來說,這是非常高的榮譽。我借此機會,對教育部專家評委,對清華大學出版社,對微軟亞洲研究院,對《計算機教育》雜志,表示衷心的感謝。同時借此機會,我從三個方面對我們的改革做一個簡要的總結(jié),以求在座的專家和同仁給予更多的指點和幫助。這三個方面分別是:十年的改革回顧、風神的豎琴鳴響、陽光下的珍珠行動。
1十年的改革回顧
十年前,C++剛剛進入教學領(lǐng)域,它不僅概念龐雜,而且打破了傳統(tǒng)的程序設(shè)計方法,一時引起很多人的困惑。但那時它已經(jīng)是軟件設(shè)計的主流語言,而且因為其強大的解釋功能而成為代表軟件應(yīng)用能力的標志性語言,因此我們選擇它作為改革的突破口。
我們首先遇到的難題是,C++新標準的出現(xiàn),使C++和數(shù)據(jù)結(jié)構(gòu)的學習順序發(fā)生沖突:數(shù)據(jù)結(jié)構(gòu)的先修課是C++,而C++的新特性中包含數(shù)據(jù)結(jié)構(gòu),它們互為前提。我們認為,要解決這個沖突,需要C作為過渡,于是整合C、C++和數(shù)據(jù)結(jié)構(gòu)就成為我們主攻的對象。我們可能不是最有能力做好這件事情的人,但是改革使我們成為必須面對這件事情的人。我們的方法是,先用C描述順序表、結(jié)構(gòu)串和鏈表,然后在揭示、分析和克服C的局限性的過程中,自然地引入C++的概念,同時把線性結(jié)構(gòu)的C描述轉(zhuǎn)化為C++描述。C由此成為C++的元語言,C++的概念不再龐雜。最后用成熟的C++描述非線性結(jié)構(gòu)部分,使算法分析和代碼實現(xiàn)相得益彰。
另一個難題是,我們的學生不是一流學生,我們要研究的是程序語言的發(fā)展規(guī)律,C、C++和數(shù)據(jù)結(jié)構(gòu)整合之后,內(nèi)容豐富了,僅僅依靠PPT教學手段是遠遠不夠的,于是我們開發(fā)了基于Authorware的多媒體教學軟件。我們的課件特點是:多級菜單結(jié)構(gòu)與課程的內(nèi)容一一對應(yīng);用光條跟蹤演示每條語句的執(zhí)行過程;代碼、結(jié)構(gòu)、算法和內(nèi)部處理協(xié)同展示;需要處理的數(shù)據(jù)可以由用戶輸入,結(jié)果隨時輸出。課件的效果是,化抽象為直觀,變復(fù)雜為簡單,既可助教又可助學,無限延伸了課堂,打開了學生自主學習的時空。
第三個難題是,授課對象廣,授課內(nèi)容多,實驗課時有限,原來的實驗教學模式遠遠不能滿足需要。于是我們進行了實驗教學改革:選拔優(yōu)秀的高年級學生,通過開設(shè)專業(yè)選修課進行專門的培養(yǎng),然后由他們對低年級學生進行上機和課外輔導,解決了實驗教學的師生比嚴重失調(diào)的矛盾。而且,優(yōu)秀學生的參與帶動了廣大學生自主學習的積極性,同時也促進了理論教學水平的提高。我們第三版教材所取得的成績就得利于這種實驗教學模式的改革。
2讓風神的豎琴鳴響
我們的改革發(fā)生在飛速發(fā)展、急劇變化的信息時代,在各種觀點交匯、甚至有些嘈雜和浮躁的環(huán)境中,我們懷著樸素的感情,從馬克思主義經(jīng)典中尋求指南。
它告訴我們:邏輯不是關(guān)于思維外在形式的學說,而是關(guān)于一切物質(zhì)的、自然的和精神的事物的發(fā)展規(guī)律的學說。這樣,成為科學對象的就不是事物本身,而是事物運動的規(guī)律。于是我們就不再把C、C++、以至Java孤立地對待,而是把它們看作一個發(fā)展過程,我們改革的使命就是發(fā)現(xiàn)這個過程的規(guī)律。
它告訴我們,事物發(fā)展的根本原因在于事物內(nèi)部的矛盾運動。而程序語言設(shè)計的基本矛盾是存儲和處理,數(shù)據(jù)結(jié)構(gòu)就是處理這個矛盾的,于是我們就把數(shù)據(jù)結(jié)構(gòu)作為程序語言發(fā)展的內(nèi)在動力。
它告訴我們,要從具體的學科中找出辯證法的規(guī)律并從學科里加以闡發(fā)。于是我們奮斗十年,反復(fù)實踐探索,以實現(xiàn)程序語言自身發(fā)展的辯證法規(guī)律。由于我們能力有限,走了很多彎路,雖然取得了一點成績,但依然有很多困惑。
是李未院士的《數(shù)理邏輯》一書,在計算機科學和教育領(lǐng)域給出了辯證法規(guī)律深刻而精確的表達,其中版本序列和三個語言環(huán)境的理論肯定了我們改革的方向,堅定了我們繼續(xù)改革的信心,它給予我們的喜悅有如在驚濤駭浪中長期漂泊之后的船夫看到陸地。
在唯物辯證法看來,“一切發(fā)展,不管其內(nèi)容如何,都可以看作一系列不同的發(fā)展階段,它們以一個否定另一個的方式彼此聯(lián)系著?!薄稊?shù)理邏輯》的《事實反駁與修正演算》一章,從領(lǐng)域知識的公理化進程的角度,具體為我們描述出這種“一個否定另一個的”發(fā)展過程。
在唯物辯證法看來,歸納和演繹,不是像很多人所認為的那樣是相互對立的,而正如分析和綜合一樣是必然相互聯(lián)系的,相互補充的?!稊?shù)理邏輯》的“歸納推理和歸納進程”一章給出了這種“相互聯(lián)系、相互補充”的形式描述,給我們提供了綜合運用歸納和演繹方法的機制。
在唯物辯證法看來,形而上學就是在有限的經(jīng)驗基礎(chǔ)上,單純地借助邏輯的力量,一意孤行地追問事物的本質(zhì),想一勞永逸地解決問題。在我們的改革過程中,由于我們對形而上學的局限性沒有清醒的認識,經(jīng)常不自覺地陷入到形而上學的思維模式中,迷失方向。《數(shù)理邏輯》借助程序設(shè)計語言中指針的思想,以計算機實踐經(jīng)驗為基礎(chǔ),用簡單、直觀,能夠被更多人理解的方式證明了歌德爾不完全定理,嚴格地證明了形而上學的反命題,提高了我們防范受形而上學支配的自覺性。
我們做任何事情,都會自覺或不自覺地受某種哲學的支配,如果我們不想受腐朽哲學的主宰,就要清楚地知道辯證唯物主義是在徹底瓦解主客二分思維模式的基礎(chǔ)上顛覆舊哲學的。唯物辯證法在批判主客二分的思維模式時指出:“自然科學和哲學一樣,直到今天還完全忽視人的活動對人的思維的影響,它們一方面只知道自然界,另一方面又只知道思想。”這種思維模式產(chǎn)生了無數(shù)“神秘莫測”、似是而非的精神創(chuàng)造物。
在馬克思看來,一切舊哲學都沒有把人的活動本身理解為客觀的活動。馬克思認為,人與自然不是單純的認知關(guān)系,而是你中有我,我中有你的協(xié)變關(guān)系,它們統(tǒng)一在人的活動過程中,這個過程不僅為主體產(chǎn)生著對象,也為對象產(chǎn)生著主體。自然在這個過程中人化,是人化的自然,人在這個過程中自然化,是感性的自然界。例如,在舊哲學看來,思想是思想,自然界是自然界,但是在馬克思看來,思想離不開語言,而語言就是自然界。
這個統(tǒng)一了人與自然的過程是馬克思本真意義上的實踐活動,可是這個活動需要深刻化、精確化的描述,否則大多數(shù)人難以把握它的精髓,常常會不自覺地在主客二分的舊思維模式中理解和運用馬克思主義的實踐理論,輕易地把人與自然相分離,然后再反過來探討,二者如何統(tǒng)一?例如,我們習慣孤立地談?wù)撊绾螌W生的學習積極性問題,而在馬克思本真意義地實踐活動中,主體本來是積極的,因為這個實踐活動不過是追求著自己目的的人的積極活動,是人的生成方式、存在方式,我們要做的就是精確地描述和系統(tǒng)地實現(xiàn)馬克思的實踐活動。
《數(shù)理邏輯》中的核心理論,三個語言環(huán)境,在計算機科學領(lǐng)域為我們精確地描述了馬克思的實踐活動?!耙话阏f來,一個語言在它作為對象語言時,它的符號和語法對象所取得的準確性和已被人們證明的結(jié)論,在它作為元語言時,就可以用來解釋和說明相應(yīng)對象語言的符號和語法對象,并用來證明該對象語言中不同語法對象之間的關(guān)系。這是人類從事科學研究的基本方法。”這是精確化的辯證唯物主義觀點:人創(chuàng)造了對象,提升了人的感受力,提升了感受力的人,又去創(chuàng)造能夠進一步提升人的感受力的對象。這是一個綿延不絕的過程,而且這個過程是客觀的,需要精確的描述和準確的判斷。
例如,C、C++和Java是程序語言發(fā)展中的版本序列。如果把C++視為對象語言,那么從C++程序集合到C程序集合的一個解釋映射(記做IC++)和C程序集合就構(gòu)成C++的一個模型,而C就構(gòu)成了C++和它的模型的元語言;如果把Java視為對象語言,那么從Java程序集合到C++程序集合的一個解釋映射(記做IJ)和C++程序集合就構(gòu)成Java的一個模型,而C++就構(gòu)成了Java和它的模型的元語言。
從馬克思實踐本體論來看,C、C++和Java依次作為對象語言時,是自然界相對人的生成;依次作為元語言時,是人相對自然界的生成。人與自然界的關(guān)系是協(xié)變的。
我們的改革是在強調(diào)素質(zhì)教育的背景下開始的,李未院士的《數(shù)理邏輯》使我們深刻認識到我們的改革包含著更深刻的素質(zhì)教育的內(nèi)涵。
西方科學的發(fā)展以兩個偉大的成就為基礎(chǔ),一個是形式推理系統(tǒng)即數(shù)理邏輯,另一個是實驗科學。數(shù)理邏輯沒有產(chǎn)生于中國,很多人因此而遺憾,中國傳統(tǒng)文化的特質(zhì)與數(shù)理邏輯的真諦南轅北轍,很多人為之而傷感,他們甚至懷疑我們民族的創(chuàng)新能力。
今天,數(shù)理邏輯的創(chuàng)新出現(xiàn)在中華大地上,而且它將形式理論系統(tǒng)的模本由幾何學擴展到帶有實驗特點的計算機科學領(lǐng)域,使人們結(jié)合日常的計算機操作實踐更容易理解和把握數(shù)理邏輯的概念和方法,特別是,讓辯證唯物主義方法深入人心。
與十九世紀末葉相比,自然科學的變革更加急劇,各種哲學學派和流派更加龐雜,我們必須懂得,任何自然科學,如果沒有充分可靠的馬克思主義哲學論據(jù),是無法與各種貌似科學的思想侵襲和改裝的舊世界觀的復(fù)辟進行斗爭的。
“普通的豎琴在任何人的手里都能發(fā)出聲音;風神的豎琴卻只是當風暴敲擊它的琴弦時才發(fā)出聲音。”在飛速發(fā)展、急劇變化的信息時代,在各種觀點匯集的計算機科學和教育領(lǐng)域,在進步和倒退、改革和保守的對立、沖突、斗爭中,李未院士的《數(shù)理邏輯》一書發(fā)出了鼓舞信心、引航心靈的鳴響。
3陽光下的珍珠行動
馬克思在拯救集哲學之大成的神秘的黑格爾哲學時曾經(jīng)有過宏愿,他說:“先前我讀過黑格爾哲學的一些片段,我不喜歡它那種離奇古怪的調(diào)子。我想再鉆到大海里一次,不過有個明確的目的,這就是要證實精神本性也和肉體本性一樣是必要的、具體的,并且具有同樣的嚴格形式;我不想再練劍術(shù),而只想把真正的珍珠拿到陽光中來?!彼o我們留下了資本論的邏輯,證明了社會經(jīng)濟形態(tài)的發(fā)展是一種自然歷史過程,今天全世界的金融危機證明了馬克思依然是正確的。
《數(shù)理邏輯》把計算機科學和教育領(lǐng)域的唯物辯證法這顆珍珠拿到了陽光中來,給我們指明了方向,剩下的問題是我們有沒有滿腔的熱忱,有沒有眼睛向下的決心,有沒有放下架子、甘當小學生的精神。
作為一般高等院校,我們面臨的困難是:首先,擴招之后,學生的能力差距變大,教學內(nèi)容和進度要照顧大多數(shù),難以滿足優(yōu)秀學生高標準的要求。其次,教師因科研和教學的雙重壓力,難以滿足多方面的要求,特別是像計算機這類實驗性比較強的課程,教師更是力不從心。還有,知識更新快,社會需求變化大,而教學計劃變動相對較慢,課時也有限,難以同步。另外,社會各種不良思想和風氣對學校的教學秩序和學風建設(shè)存在很大的影響。
作為繼續(xù)改革的試驗,我們的合作伙伴,北京聯(lián)合大學商務(wù)學院已經(jīng)開始深化我們的改革,具體做法是:黨委書記親自掛帥,把實驗教學與學生黨員建設(shè)緊密聯(lián)系在一起。意義是:第一,新時期的學生黨員應(yīng)該是學習的骨干,而學生黨建應(yīng)該把學習骨干培養(yǎng)為黨員。第二,我們的改革課程能夠促進、提高學生黨建中的馬克思主義基本理論教育。三,學生黨員應(yīng)該在深化改革,提高學生自主學習的積極性方面發(fā)揮先鋒模范作用。一句話,正確的方向確定之后,黨員干部就是決定的因素。
我們做的事情可能是微小的,但它決不渺小。計算機不應(yīng)該僅僅是計算機專業(yè)的事情,計算機科學和教育的繁榮有賴于更廣大的計算機愛好者的積極參與,請計算機專家和同仁伸出你們的手,我們渴望你們的支持、幫助和指點。海納百川,有容乃大。
同樣的感受給我們同樣的渴望,同樣的歡樂給我們同一首歌。