摘要:本文從課程目標(biāo)、教學(xué)理念和課程體系三個方面論述了計算機(jī)基礎(chǔ)類課程的改革方向,并介紹了我系的一些具體措施。
關(guān)鍵詞:基礎(chǔ)課程;教學(xué)改革;課程體系;教學(xué)理念;課程目標(biāo)
中圖分類號:G642
文獻(xiàn)標(biāo)識碼:B
1引言
面向高等學(xué)校非信息類專業(yè)的“計算機(jī)基礎(chǔ)教育課程”,從1990年開始已經(jīng)經(jīng)歷了18年的歷史。這18年來,計算機(jī)基礎(chǔ)教育直接為大學(xué)復(fù)合型人才培養(yǎng)做出了顯著貢獻(xiàn),而且間接地促進(jìn)了計算機(jī)技術(shù)在其他學(xué)科中的應(yīng)用,促進(jìn)了學(xué)科間的交叉與融合。
隨著計算機(jī)技術(shù)發(fā)展越來越快,各個學(xué)科的研究和工程中對計算機(jī)技術(shù)的需求越來越廣泛,計算機(jī)基礎(chǔ)教育系列課程正面臨著前所未有的新挑戰(zhàn):如何在基礎(chǔ)課中體現(xiàn)前沿性與實用性?解決這個問題要從三個方面著手:教學(xué)理念、課程體系、課程內(nèi)容。而教學(xué)理念在其中起著根本作用,它主導(dǎo)著課程體系與課程內(nèi)容的設(shè)計。
我們既要重視基礎(chǔ),又要緊跟前沿,注重課程的實用性和學(xué)生創(chuàng)新能力、創(chuàng)新意識的培養(yǎng)。于是矛盾的關(guān)鍵就是,在非常有限的學(xué)時中,如何組織課程體系結(jié)構(gòu),如何選擇和安排教學(xué)內(nèi)容。我們傳統(tǒng)的教學(xué),講究知識結(jié)構(gòu)的嚴(yán)密性,內(nèi)容的循序漸進(jìn),但是知識爆炸的時代對我們傳統(tǒng)的教學(xué)觀點提出了挑戰(zhàn)。
非信息類專業(yè)的課程計劃中,安排給計算機(jī)類課程的學(xué)時很少,有的專業(yè)可能只學(xué)兩門計算機(jī)課:大學(xué)計算機(jī)基礎(chǔ)、計算機(jī)程序設(shè)計基礎(chǔ)。這樣,我們規(guī)劃課程內(nèi)容的時候,既很困難,于是認(rèn)為,在這么少學(xué)時的基礎(chǔ)課中,不大可能介紹很多的前沿和實用技術(shù)。的確,在如此少的課時中,似乎也只能循序漸進(jìn)地打一點基礎(chǔ),甚至連打基礎(chǔ)都不夠。但是,從另一個角度考慮問題,就會得出不同的結(jié)論。這個角度就是目標(biāo)導(dǎo)向,就是首先要明確我們計算機(jī)基礎(chǔ)教育的根本目的是什么,然后圍繞這個目標(biāo)來制定課程體系和教學(xué)內(nèi)容。
2課程目標(biāo)的變化
由于計算機(jī)科學(xué)和技術(shù)本身的發(fā)展,以及其他學(xué)科對計算機(jī)技術(shù)的需求的變化、人才知識結(jié)構(gòu)要求的變化,導(dǎo)致了計算機(jī)基礎(chǔ)教育課程目標(biāo)的變化。
2.1學(xué)科交叉融合的現(xiàn)狀
目前各學(xué)科的科學(xué)研究中,已經(jīng)不僅以計算機(jī)為工具,而是將計算機(jī)科學(xué)與其他學(xué)科進(jìn)行融合,出現(xiàn)大量跨學(xué)科的研究,這就對人才培養(yǎng)提出了新的要求:非計算機(jī)專業(yè)的學(xué)生不僅要能夠以計算機(jī)技術(shù)為工具,而且要了解計算機(jī)科學(xué),及其研究方法,能夠從事跨學(xué)科的綜合性研究。這就要求我們的課程中不僅要介紹技術(shù),還要將整個計算機(jī)專業(yè)的主要研究方向、原理、方法、技術(shù)都做一個概要性的介紹,為學(xué)生以后的深入學(xué)習(xí)及交叉學(xué)科研究奠定基礎(chǔ)、打開通路。
2.2從普及知識到復(fù)合型人才培養(yǎng)
由于計算機(jī)技術(shù)的日益普及、硬件價格的降低,使得計算機(jī)已經(jīng)不再是專業(yè)人員的專屬工具,而是進(jìn)入了每個家庭,進(jìn)入到了工作、生活、娛樂的每個角落。普及計算機(jī)知識的任務(wù)也已經(jīng)下放到中小學(xué),大學(xué)本科的計算機(jī)課程要以符合型的研究和應(yīng)用人才培養(yǎng)為目標(biāo)。因此不能再以技能和操作入門,而應(yīng)該以計算機(jī)學(xué)科的全面介紹為引導(dǎo),使學(xué)生對學(xué)科概況、研究方法、與其他學(xué)科的交叉融合關(guān)系有一個科學(xué)、全面的認(rèn)識,作為今后學(xué)習(xí)的引導(dǎo)與基礎(chǔ)。這也正式目前各校普遍將原來的“計算機(jī)文化基礎(chǔ)”課改為“大學(xué)計算機(jī)基礎(chǔ)”的目的。
2.3從基本編程技能到應(yīng)用能力和研究能力
計算機(jī)在誕生之初,就是為了輔助人們進(jìn)行科學(xué)計算的,到目前者仍然是計算機(jī)的最基本用途之一。但是由于科學(xué)的發(fā)展,各個學(xué)科研究的內(nèi)容及方法已經(jīng)發(fā)生了很大變化。對計算機(jī)技術(shù)的要求已經(jīng)從最基本的,編寫代碼處理實驗數(shù)據(jù)、用計算支持理論推導(dǎo),發(fā)展為應(yīng)用計算機(jī)技術(shù)進(jìn)行復(fù)雜的模擬與分析。更有將生物學(xué)、數(shù)學(xué)與計算機(jī)科學(xué)相結(jié)合的交叉學(xué)科研究。相應(yīng)地,對學(xué)生的能力要求,也由能夠逐行編寫代碼形成中小規(guī)模計算程序,發(fā)展到需要利用平臺、工具、軟件包進(jìn)行更為復(fù)雜的建模與分析。
我們傳統(tǒng)的基礎(chǔ)教給學(xué)生的逐行自己編寫代碼,效率與可靠性都低,不可能開發(fā)真正有用的大型系統(tǒng),無法適應(yīng)科學(xué)研究中的復(fù)雜需求。正確地選擇和應(yīng)用開發(fā)平臺、軟件構(gòu)件庫、服務(wù),是現(xiàn)在和將來開發(fā)實用系統(tǒng)必須的能力。我們應(yīng)該培養(yǎng)學(xué)生具有系統(tǒng)的觀點,具有應(yīng)用平臺和工具進(jìn)行構(gòu)件組裝的能力。
3教學(xué)理念的變化
課程目標(biāo)的變化給我們帶來的最大挑戰(zhàn)是:在有限的學(xué)時內(nèi),有太多“應(yīng)該”講的內(nèi)容。這幾乎成了我們課程改革的瓶頸,好像很自然的結(jié)論就是:這么點學(xué)時只能打打基礎(chǔ)。果真應(yīng)該得出這樣的結(jié)論嗎?
實際上,不僅是計算機(jī)基礎(chǔ)課程,所有專業(yè)、所有課程都面臨這樣的問題。科學(xué)發(fā)展到了目前的知識爆炸時代,我們在有限的學(xué)時內(nèi)應(yīng)該教給學(xué)生什么,這是一個需要重新思考的問題。當(dāng)然,我們知道要教給學(xué)生能力與方法,而不僅是知識。授人以漁已經(jīng)是一個古老的話題了,但是如何做到,卻永遠(yuǎn)是一個新的課題。下面分別就培養(yǎng)目標(biāo)的兩個方面,以及知識結(jié)構(gòu)的完整性方面談教學(xué)理念的變革
3.1應(yīng)用能力的基礎(chǔ)
具體地,以計算機(jī)程序設(shè)計類課程為例。我們大多數(shù)的基礎(chǔ)課都在將重點放在教學(xué)生如何一行一行地寫程序,尤其以講C語言的居多。但是學(xué)生在他本專業(yè)的學(xué)習(xí)和工作中有多少時候會需要以C語言寫程序呢?他工作中需要的計算機(jī)軟件又有多少是靠少數(shù)幾個人用C語言可以寫出來的呢?這兩個問題的回答是非常明確的:很少。這也是我們普遍認(rèn)識到的。那么如何應(yīng)對呢?這就需要我們從根本上轉(zhuǎn)變教學(xué)理念。我們習(xí)慣的“循序漸進(jìn)”、傳統(tǒng)意義上的“打好基礎(chǔ)”是否應(yīng)該有新的詮釋?
我們知道目前大型的軟件開發(fā)平臺,以及面向?qū)ο蟪绦蛟O(shè)計、泛型程序設(shè)計等程序設(shè)計方法都已經(jīng)從新技術(shù)、新方法變成了常規(guī)技術(shù)、主流方法,而我們的基礎(chǔ)課中還在花大量時間反復(fù)訓(xùn)練學(xué)生如何用指針、結(jié)構(gòu)體寫鏈表程序,如何自己實現(xiàn)各種各樣的查找與排序方法,如何以各種技巧更有效地利用內(nèi)存空間,如何小心翼翼避免數(shù)組越界、非法指針操作等等。有限的、不夠用的學(xué)時都大量的用在這些曾經(jīng)的“基礎(chǔ)”內(nèi)容中了。
我們很多老師,包括我自己都曾認(rèn)為這些是必須的基礎(chǔ),如果不講這些,學(xué)生就不懂得程序設(shè)計的底層原理,就不能寫很好的程序。過去這些的確是必須的基礎(chǔ),因為任何一個程序中這些細(xì)節(jié)都必須由編程者一行一行親自寫。但是計算機(jī)軟件已經(jīng)開始進(jìn)入產(chǎn)業(yè)化時代,與制造業(yè)一樣,工業(yè)化生產(chǎn)和細(xì)化的分工使得應(yīng)用軟件的開發(fā)者必須能夠利用平臺工具和預(yù)先開發(fā)好的框架、組件來快速開發(fā)穩(wěn)定、高效的軟件。因此,對于非信息類專業(yè)的學(xué)生來說,由于他們的任務(wù)不是研究和開發(fā)基礎(chǔ)軟件,因而軟件工程的系統(tǒng)觀點、需求工程方法、建模方法和工具、大型開發(fā)平臺的使用、各種庫(類庫、構(gòu)件庫、服務(wù)庫)的使用才是現(xiàn)在必須的基礎(chǔ)。
那么,沒有很強(qiáng)的基礎(chǔ)編碼能力,能夠使用平臺和組件來開發(fā)軟件嗎?這是我們很多老師的疑問。如果我們借鑒一下制造業(yè)和計算機(jī)硬件行業(yè),這個問題就迎刃而解了。當(dāng)我們出于應(yīng)用的目的需要一臺計算機(jī)時,我們需要去研究計算機(jī)的原理、數(shù)字電路的原理、……然后自己從頭設(shè)計制造一臺機(jī)器嗎?當(dāng)然不需要,我們首先考慮的是基于對我們自己需求的準(zhǔn)確理解和對計算機(jī)系統(tǒng)及其性能指標(biāo)的概要理解,選擇購買一臺整機(jī)。如果現(xiàn)有的機(jī)型不能滿足我們的需求,我們通常會按照需求用現(xiàn)成的組件、框架去定制(自己動手或者由廠家生產(chǎn))。大多數(shù)人使用這些組件時并不清楚其中大規(guī)模集成電路的原理,但是并不影響他成功地使用。計算機(jī)硬件的發(fā)展也經(jīng)歷過軟件發(fā)展同樣的道路,現(xiàn)在薄薄一個筆記本電腦的性能遠(yuǎn)遠(yuǎn)超過了當(dāng)初玻璃房子里一大群機(jī)柜、控制臺、磁鼓等等設(shè)備。那時候的計算機(jī)的確不是誰都能組裝的,它的設(shè)計、制造者需要懂得全部的底層原理,親自設(shè)計和實現(xiàn)所有細(xì)節(jié)?,F(xiàn)在的軟件產(chǎn)業(yè)化進(jìn)程雖然遠(yuǎn)遠(yuǎn)落后于硬件,但是也早已經(jīng)過了必須從底層起步去寫每一個應(yīng)用程序的時代了。
所以,在計算機(jī)基礎(chǔ)課程中,什么是“基礎(chǔ)”應(yīng)該值得重新考慮了。
3.2跨學(xué)科研究能力的基礎(chǔ)
要具有跨學(xué)科的研究能力,就不僅僅是將計算機(jī)技術(shù)作為工具,而是需要對計算機(jī)科學(xué)有深入的理解,能夠?qū)⒂嬎銠C(jī)科學(xué)與他它學(xué)科進(jìn)行融合。學(xué)生要達(dá)到這樣的能力,決不是幾門基礎(chǔ)課可以解決的問題,這需要不同的學(xué)科在專業(yè)課設(shè)置上進(jìn)行結(jié)合、在培養(yǎng)方案中體現(xiàn)融合,這不是本文主要討論的問題。但是我們計算機(jī)基礎(chǔ)教育課程要負(fù)責(zé)給各個專業(yè)的學(xué)生展示計算機(jī)科學(xué)的全貌,要使學(xué)生初步但是全面地認(rèn)識計算機(jī)科學(xué)及其研究方法、關(guān)鍵技術(shù)、發(fā)展方向?,F(xiàn)在各個學(xué)校的計算機(jī)系或者信息學(xué)院普遍都開設(shè)了“概論”課,其實對全校各專業(yè)來說,也都需要一門更為淺顯但不失全面的“概論”課,為學(xué)生選擇今后的研究方向、研究方法奠定一個通識的基礎(chǔ)。
目前各校正在進(jìn)行的“大學(xué)計算機(jī)基礎(chǔ)”課程改革就正在承擔(dān)著這一任務(wù)。
3.3知識體系結(jié)構(gòu)的完整性問題
傳統(tǒng)的教學(xué)要求“循序漸進(jìn)”,但是知識爆炸的時代如果過于強(qiáng)調(diào)課程與課程之間、課程內(nèi)各知識點之間的嚴(yán)格邏輯,就必然要犧牲對前沿知識、最新技術(shù)的引入,犧牲學(xué)生主動探索獲取知識的能力。西方學(xué)校的教學(xué)也是經(jīng)歷了這種觀念變化的。實際上大學(xué)的課程其知識結(jié)構(gòu)中可以“斷點”,尤其是我們針對非信息類專業(yè)開設(shè)的課程,除了講授必備的基礎(chǔ)知識以外,應(yīng)該將重點放在開設(shè)一些具有實用性、前沿性的課程。學(xué)習(xí)這些課程可能需要一些基礎(chǔ),這些基礎(chǔ)應(yīng)該體現(xiàn)在教科書中,而不必都在課堂上講。所以針對非專業(yè)的教材與專業(yè)教材的最大不同點應(yīng)該是知識體系更完整,在每本書中盡量提供一個完整的知識體系,包含必要的基礎(chǔ)知識,這樣老師課上可以只講主要內(nèi)容,可以讓知識點是跳躍的,而教科書的內(nèi)容起到連接跳躍點的功能。
4課程體系改革的措施與規(guī)劃
上述的觀點我們在清華大學(xué)的計算機(jī)基礎(chǔ)教育系列課程中也是剛剛開始嘗試,遠(yuǎn)沒有達(dá)到談及“經(jīng)驗”的地步,這里我簡要地將我們目前正在建設(shè)的課程體系做一個介紹。
清華大學(xué)面向全校的計算機(jī)基礎(chǔ)教育課程體系包含公共基礎(chǔ)系列課程、應(yīng)用專題系列和應(yīng)用延伸系列課程,見圖1。
通識教育核心課程包括:計算機(jī)程序設(shè)計基礎(chǔ)、大學(xué)計算機(jī)基礎(chǔ)兩個系列。建設(shè)原則是:重組基礎(chǔ)、分類分層,設(shè)置了多元化選修課。
其中程序設(shè)計課程涵蓋了面向過程和面向?qū)ο蟮亩喾N程序設(shè)計語言,旨在培養(yǎng)學(xué)生運(yùn)用程序設(shè)計技術(shù)對各專業(yè)科學(xué)計算問題進(jìn)行建模、分析的能力。
大學(xué)計算機(jī)基礎(chǔ)系列課程包括計算機(jī)文化基礎(chǔ)和應(yīng)用專題課程。計算機(jī)文化基礎(chǔ)課程為非計算機(jī)專業(yè)的學(xué)生普及計算機(jī)科學(xué)與技術(shù)的基礎(chǔ)知識,使學(xué)生初步了解計算機(jī)科學(xué)的概況和發(fā)展動態(tài),為進(jìn)一步學(xué)習(xí)計算機(jī)相關(guān)課程作準(zhǔn)備。
應(yīng)用專題課程的主要目的是為一部分計算機(jī)操作技能不足的學(xué)生補(bǔ)基礎(chǔ),使入學(xué)時基礎(chǔ)薄弱的學(xué)生能夠掌握基本技能,適應(yīng)信息化的學(xué)習(xí)、研究環(huán)境。
應(yīng)用延伸系列目前開設(shè)的課程有:
面向理工科院系高年級本科生的并行計算基礎(chǔ),課程目標(biāo)是:為了適應(yīng)計算技術(shù)發(fā)展趨勢,將并行計算技術(shù)作為一種通用計算技術(shù)介紹給非計算機(jī)專業(yè)的同學(xué),促進(jìn)其在專業(yè)計算中的應(yīng)用,重點是掌握并行程序開發(fā)方法和重要并行程序工具。
面向工科院系高年級本科生的嵌入式系統(tǒng)設(shè)計與應(yīng)用,課程目標(biāo)是:介紹嵌入式系統(tǒng)基本知識,學(xué)習(xí)嵌入式系統(tǒng)的一般設(shè)計和實現(xiàn)方法,掌握嵌入式系統(tǒng)的原理性應(yīng)用。
5結(jié)束語
計算機(jī)基礎(chǔ)教育在培養(yǎng)學(xué)生跨專業(yè)的綜合應(yīng)用能力、研究能力方面起著舉足輕重的作用,如何將計算機(jī)科學(xué)與技術(shù)的最新成果、發(fā)展方向及時納入課程中,不僅是課程本身的事情,更關(guān)系到眾多其他學(xué)科的人才培養(yǎng),是一個值得深入研究和實踐的課題。
參考文獻(xiàn):
[1] 馮建華等. 清華大學(xué)計算機(jī)科學(xué)與技術(shù)系教學(xué)評估自評報告[R]. 2007,10.