劉昌華 管庶安 蔣麗華 易 逵
文章編號:1672-5913(2009)10-0021-03
摘要:本文在IEEE/ACM關于計算(Computing)學科本科教學參考計劃CC2005(Computing Curricula 2005)指導下,針對我國高校應用型本科計算機專業(yè)建設的現(xiàn)狀,提出了基于CC2005的計算學科硬件類課程的內(nèi)容體系改革思路與改革方案,強調(diào)原理和實踐結合,提高應用能力的培養(yǎng)。
關鍵詞:CC2005;計算學科;硬件類課程群;教學改革
中圖分類號:G642
文獻標識碼:B
1引言
在計算機類專業(yè)的課程體系中,無論是專業(yè)基礎課、專業(yè)課還是專業(yè)選修課,基本可以分為兩條主線:一是軟件課程體系;另一個就是硬件課程體系。一般來說,計算機軟件課程在計算機專業(yè)中基本能夠得到重視和加強。計算機硬件課程體系相對比較薄弱。多數(shù)畢業(yè)學生的硬件能力都比較差,基本無法勝任計算機硬件方面的相關設計工作,這將非常不利于我國計算機產(chǎn)業(yè)的發(fā)展。
國內(nèi)很多高校的計算機專業(yè)過分強調(diào)軟件與應用,而缺乏計算機體系結構、計算機系統(tǒng)組成與結構等硬件方向的培養(yǎng)。但是從就業(yè)市場反饋的信息看,計算機軟件人才已經(jīng)供大于求,而熟悉硬件開發(fā)應用或軟硬件結合的人才則供不應求。在計算機科學與技術高速發(fā)展的今天,怎樣才能夠培養(yǎng)出我國計算機產(chǎn)業(yè)發(fā)展所需要的優(yōu)秀人才?應用型本科計算機專業(yè)學生應具備什么樣的計算機硬件知識結構?這是擺在我們計算機專業(yè)特別是從事計算機學科硬件類課程教學的教師面前的一個需要研究、探索的課題。
2CC2005中計算學科硬件類課程內(nèi)容的定位
目前在計算學科教育方面最有代表性和影響力的工作依然是IEEE-CS/ACM組織的Computing Curricula研究工作。
IEEE-CS/ACM一直在跟蹤工業(yè)界對計算領域人才需求和教育界對人才教育培訓的需求、狀況、發(fā)展和存在的問題,并于2001年給出了具有指導性意義的計算學科本科教學參考計劃(Computing Curricula 2001,簡稱CC2001)。我國國內(nèi)專家學者對其進行了詳細研究,并于2002年公布了中國計算機科學與技術學科教程2002(China Computing Curricula 2002,簡稱CCC2002),在國內(nèi)外也產(chǎn)生了很大的影響。繼CC2001推出后,經(jīng)過幾年的跟蹤研究、意見反饋和計劃評議,IEEE/ACM在總結前期工作的基礎上,對原“CC2001”給出的四個專業(yè)方向進行了修改和擴充,并給出了新的評述,于2005年4月發(fā)布了CC2005的草案,并于2005年9月30日發(fā)布了最終版的Computing Curricula 2005。
IEEE-CS/ACM在CC2005中將計算學科分為五個專業(yè),分別是計算機工程(Computer Engineering-CE)、計算機科學(Computer Science-CS)、信息系統(tǒng)(Information System-IS)、信息技術(Information Technology-IT)和軟件工程(Software Engineering-SE)。針對每個專業(yè)的特點和要求,CC2005提出了支撐每個專業(yè)的知識構架,由底向上分別是:計算機硬件與結構(Computer Hardware and Architecture)、系統(tǒng)基礎(System Infrastructure)、軟件方法與技術(Software Methods and Technologies)、應用技術(Application Technologies)和信息系統(tǒng)結構(Organizational Issues & Information Systems)共五個層次。每一個層次又分“趨于理論”與“趨于應用”兩個方向,計算學科知識空間圖如圖1所示,基于上述層次,CC2005對每個知識層次的課程體系、知識點進行了詳細的規(guī)劃。例如,計算科學(CS)專業(yè)、計算機工程(CE)專業(yè)和軟件工程(SE)專業(yè)的知識需求如圖2、圖3和圖4所示??梢钥闯?,CS和CE專業(yè)更加注重計算機硬件與結構以及系統(tǒng)結構等計算機底層方面的理論和應用知識,而SE專業(yè)則注重系統(tǒng)基礎、軟件方法與技術、應用技術以及信息系統(tǒng)結構等方面應用型的知識,與計算機硬件與體系結構稍有覆蓋。
圖2CS專業(yè)對計算學科各層次知識的要求
CC2005明確指出計算機科學(CS)和計算機工程(CE)專業(yè),都應該掌握計算機底層的“計算機硬件與結構”方面的課程知識。圖5列出了計算學科五個專業(yè)(即計算機科學CS、計算機工程CE、軟件工程SE、信息系統(tǒng)IS和信息技術IT)對應各個硬件類知識域?qū)嵤┑姆萘?分最大值max與最小值min),份量輕重分0(最輕級)到5級(最重級)。我們可以看出除了計算機工程,其它四個對計算機硬件知識的要求都可以不用太深重。
3計算學科硬件類課程的實施現(xiàn)狀
目前我國高校計算學科硬件類課程基本是參照IEEE- CS/ACM的指導性計劃而設置的,基本上保持了與國際上計算機發(fā)達國家的課程設置的一致性,推動了計算學科教育的積極、穩(wěn)妥發(fā)展。根據(jù)CC2005的體系結構,計算學科硬件課程群核心內(nèi)容和普通知識點主要體現(xiàn)在以下幾門課程中:數(shù)字邏輯、計算機組成原理、計算機通信與接口技術、計算機體系結構。在實際教學過程中,各門課程相互之間內(nèi)容銜接較多;有些內(nèi)容在多門課中重復出現(xiàn),使學生以為學過,降低注意力,并對課程設置產(chǎn)生不滿情緒;各門課程內(nèi)容的關聯(lián)沒有統(tǒng)一整理實施,課程組織缺乏系統(tǒng)性;與軟件技術知識聯(lián)系的不夠,如與C語言、操作系統(tǒng)等軟件課程學習的關聯(lián)性強調(diào)的不夠,使得學生沒有形成完整的知識體系,即軟硬件知識融會貫通,例如要使學生知道計算機如何實現(xiàn)C語言中的變量定義、指針、循環(huán)、過程調(diào)用和返回,如何用操作系統(tǒng)提供的接口改變硬件的工作等。究其原因,是現(xiàn)有教學內(nèi)容陳舊,與實際應用脫節(jié),遠遠落后于現(xiàn)代計算機硬件技術的發(fā)展,對學生缺少吸引力。
4計算學科硬件類課程改革方案
培養(yǎng)應用型本科生,要求各院校根據(jù)本科生的培養(yǎng)目標,學院擁有的教學資源和社會對人才的需求來制定培養(yǎng)計劃并給予可行的實施方案,并不要求所有學校千篇一律。沒有一個標準教學模式,又要使培養(yǎng)出的學生有自己的特色、能被社會廣泛認可,各學校每年都在為如何在有限的教學時間內(nèi)對計算學科如此眾多的知識域進行取舍、整合,制定出一個契合培養(yǎng)目標的教學計劃而探索。對此,我們以專業(yè)需求為基礎,以CC2005的5個層次中的核心內(nèi)容構建計算學科硬件類課程群,課程包括:數(shù)字邏輯、計算機組成原理、計算通信與接口技術、計算機系統(tǒng)結構、單片機原理與應用、嵌入式系統(tǒng)、計算機維護、EDA技術等課程,把培養(yǎng)學生的硬件素養(yǎng)、硬件開發(fā)能力定為系列課程目標。根據(jù)CC2005的精神,我們把計算機硬件類課程群課程劃分為三個層次,即基礎層、系統(tǒng)層、應用層,其結構如圖6所示:
圖6計算學科硬件類課程群結構
基礎層課程,主要是“數(shù)字邏輯”課程,從2006年開始對該課程教學內(nèi)容進行了改革,2007年立項為武漢工業(yè)學院重點課程,2009年又立項為武漢工業(yè)學院精品課程,我們編寫出版了教材,在課程中引入可編程器件、HDL語言,引入FPGA技術的介紹及實驗項目,又更新了實驗設備,主要思路是讓學生掌握數(shù)字電路的基本知識和EDA設計方法,能夠設計一般的數(shù)字邏輯部件及簡單的數(shù)字系統(tǒng)。所以在課程結束后安排了1周的課程設計,學生可以在FPGA芯片上運用VHDL設計如電子鐘、秒表、交通燈控制器、多功能音樂盒、電子搶答器等簡單的數(shù)字系統(tǒng)。
系統(tǒng)層課程有“計算機組成原理”、“計算機通信與接口技術”、“計算機體系結構”。其中“計算機組成原理”課程重點介紹基于模型機的CPU組成原理與結構體系,包括數(shù)據(jù)在機器中的表示、總線系統(tǒng)、外圍設備接口、存儲器組織與結構、指令系統(tǒng)、中央處理器(含運算器與控制器)、流水與并行處理等內(nèi)容,其中重點是數(shù)據(jù)在機器中的表示、總線系統(tǒng)、存儲器組織與結構、中央處理器等內(nèi)容。計算機通信與接口技術主要講解典型接口(如并行、串行、定時、DMA、中斷、A/D及D/A)以及新型的USB和IEEE1394接口技術,基于Windows操作系統(tǒng)的MFC的編程技術。計算機體系結構課程則基于實際的計算機模型,介紹計算機系統(tǒng)設計所必須了解和掌握的基礎知識和專業(yè)知識,包括計算機體系結構的基本概念、設計原則、關鍵技術(流水線技術和并行處理技術)以及性能評價方法等,課程的主要目標是使學生能夠系統(tǒng)全面地理解計算機體系結構技術的基本思想,掌握分析和設計計算機系統(tǒng)的方法,并對計算機系統(tǒng)軟硬件功能進行合理分配,達到最佳性能/價格比。
應用層的課程,由前二層主要課程的課程設計及專業(yè)選修課、綜合課程設計組成,主要在三個方面的應用:
(1) 數(shù)字系統(tǒng)的設計,運用硬件描述語言設計計算機接口及整個應用系統(tǒng),如“EDA技術” ;
(2) 計算機應用系統(tǒng)設計,包括硬件電路、應用軟件,如“單片機應用” ;
(3)“嵌入式系統(tǒng)”課程培養(yǎng)學生復雜系統(tǒng)設計能力,“嵌入式系統(tǒng)”也專門定制了ARM9的試驗設備和編寫了實驗指導書。
在應用層的教學中,強調(diào)的是“實踐教學”的重要性采用靈活的教學方法和教學形式,包括小組討論、專題報告、大作業(yè)、專業(yè)論文等形式,注重學生學習的主體作用,重點培養(yǎng)學生的創(chuàng)新性與自主學習能力。
本課程群建設中,不是以單一的課程為單位設計實驗,而是按照整個課程群來設計一體化的實驗環(huán)境與實驗內(nèi)容,將“數(shù)字邏輯”、“計算機組成原理”、“計算機體系結構”的實驗有機地結合在一起,創(chuàng)建良好的實驗環(huán)境,靈活運用實驗室、開放式實驗室、實習基地等多種手段,盡量多地為學生創(chuàng)造條件,同時通過實驗課程、開放實驗、大作業(yè)、課程設計、競賽等多種手段和形式培養(yǎng)學生的研究能力與團隊精神。
5計算學科硬件類課程教學內(nèi)容的系統(tǒng)性
硬件和軟件知識是相輔相成的,它們都包含豐富的知識和先進的技術。計算機硬件知識必須對計算機的體系結構、組成及其核心技術進行系統(tǒng)的描述,以使學生能學到先進的硬件知識。硬件知識的學習對學生理解計算機軟件的工作有著非常大的幫助,尤其是系統(tǒng)軟和底層軟件。而學到計算機軟件知識后,再學習計算機硬件知識,會對軟件的載體——硬件、硬件組成、硬件的工作原理以及軟件是怎樣依附干硬件的全過程有一個飛躍的認識。只有這樣,學生的計算機知識才能達到一個完美的統(tǒng)一。他們才能學到計算機的系統(tǒng)知識,而不是殘缺的計算機知識,最終達到對計算機系統(tǒng)軟、硬件基本知識的融會貫通。而目前計算機軟硬件教學之間卻基本分離。教師之間缺乏足夠的溝通。學生盡管學習了一些計算機硬件接口知識,但在使用高級語言對硬件進行編程時卻無從下手;盡管學習了“操作系統(tǒng)”和“網(wǎng)絡技術”等課程,卻不知道在嵌入式系統(tǒng)如何應用相關理論。當需要綜合運用軟硬件知識來解決問題時,多數(shù)學生都是一籌莫展。這些都說明,在計算機教學體系中軟硬件課程間的結合存在問題,學生的知識結構缺乏完整性和系統(tǒng)性。因此,必須在軟硬件課程的教學內(nèi)容中進行適當?shù)拇┎?。例如“操作系統(tǒng)”課程中的CPU調(diào)度、內(nèi)存管理與“計算機組成原理”和“計算機體系結構”課程中的許多知識都密不可分,在理論課程教學中提及相應課程知識,可以引導學生思考,建立必要的知識關聯(lián)。在“微機原理及接口技術”的課程中,可以加入一些利用高級語言對硬件進行編程的實例,既可激發(fā)學生的興趣,又可提高學生對硬件的編程能力。另外,計算機硬件課程之間還存在重疊和互補的關系,教學中也應注意相互次序和互補,以保證教學知識的系統(tǒng)性和完備性。
6結束語
我們希望通過對計算學科硬件類課程的及知識體系進行全局優(yōu)化和改革,解決硬件類課程之間缺乏相應得銜接、課程講述的知識點相互重復、某些需要講述的知識點沒能在相關課程間做好統(tǒng)籌安排而未講述等一系列課程內(nèi)容的定位問題。同時通過新技術的學習、研究,選擇一定的新技術作為相關課程講述的知識點,解決課程內(nèi)容過于陳舊、跟不上科學技術發(fā)展的腳步等問題。在新的課程群設置中,以學科方向和模塊為核心,凝聚課程群的設置,同時將其與專業(yè)培養(yǎng)計劃相適應。在設置課程群的時候,打破“系、專業(yè)”的限制,使不同專業(yè)的教師根據(jù)學科課程方向凝聚一起。根據(jù)計算機學科發(fā)展以及信息科技發(fā)展情況,及時、動態(tài)地調(diào)整課程群內(nèi)核心課程、選修課程的設置,甚至每一門課程具體內(nèi)容的設置。
參考文獻:
[1]ACM/AIS/IEEE-CS,Computing Curricula 2005[OL/S],http://www.acm.org/education/curric_vols/CC2005-March06Final.pdf.
[2] 教育部高等學校計算機科學與技術教學指導委員會.《高等學校計算機科學與技術專業(yè)發(fā)展戰(zhàn)略研究報告暨專業(yè)規(guī)范(試行)》[M]. 北京:高等教育出版社,2006.
[3] 蔣宗禮.以能力培養(yǎng)為導向提高教育教學水平:大學計算機課程報告論文集,2007[C]. 北京:高等教育出版社,2008.
[4] 劉昌華.數(shù)字邏輯EDA設計與實踐: MAX+plusII與QuartusII雙劍合壁[M]. 北京:國防工業(yè)出版社,2006.