袁春風 陳 睿
2006年,教育部啟動碩士研究生招生初試科目改革,于2007年在教育學、歷史學、醫(yī)學門類,2008年在農(nóng)學門類進行專業(yè)基礎綜合科目的全國統(tǒng)考,2009年在計算機一級學科進行計算機專業(yè)基礎綜合科目的統(tǒng)考,并以此作為工學門類全國統(tǒng)考的試點。通過對4年計算機專業(yè)基礎綜合統(tǒng)考科目考試成績的跟蹤和分析,發(fā)現(xiàn)我國高校計算機本科專業(yè)基礎課的教學存在“輕應用、缺關聯(lián)、少綜合、無系統(tǒng)觀”等問題。本文以計算機專業(yè)基礎綜合統(tǒng)考科目中組成原理為例,對相關統(tǒng)計數(shù)據(jù)進行分析,以期對高校計算機本科專業(yè)基礎課的教學改進有所啟示。
計算機專業(yè)基礎綜合統(tǒng)考涵蓋大學計算機本科教學的4門專業(yè)基礎課,滿分150分。其中,數(shù)據(jù)結構和組成原理各占45分,操作系統(tǒng)占35分,計算機網(wǎng)絡占25分。各門課程的考試結果抽樣統(tǒng)計數(shù)據(jù)見表1。
表1顯示,計算機專業(yè)基礎綜合試卷的整體難度偏難,2012年難度值下降較多與抽樣地區(qū)改變有關。在4門課程中,組成原理試題4年的平均難度值最小,故本文以組成原理為例,按照試題考查的能力層次進行分類,得到考查不同能力層次的試題難度如表2所示。其中識記層次考查基本概念或術語的定義,理解層次考查對基本概念內(nèi)涵的理解,包括對相關技術特點的提煉和總結、對處理過程中每個步驟的意義以及各步驟關聯(lián)關系的理解等;簡單應用能力考查考生運用單個概念分析和解決問題的能力;綜合應用能力考查考生運用多個相關概念分析和解決問題的能力。
表1 2009—2012年計算機專業(yè)基礎綜合統(tǒng)考各門課程抽樣統(tǒng)計難度值
表2顯示,就組成原理課程來說,綜合試卷中考查識記的分值較少,考生掌握情況良好;對于理解和簡單應用能力層次,考查分值占全卷的50%左右,難度有所提高;對于綜合應用能力層次,考查分值也占全卷的50%左右,試題難度較高,并且試題涉及的知識點越多難度越高。
表2 2009—2012年組成原理試題按照能力層次劃分的考點分布比例及抽樣統(tǒng)計難度值
從上述抽樣統(tǒng)計數(shù)據(jù)和按考查能力劃分的試題得分情況來看,抽樣數(shù)據(jù)反映出來的情況與考試設計的難度存在一定偏差。是試題偏、難、怪,還是考生對知識的掌握有欠缺,亦或是教學環(huán)節(jié)在對考生的知識傳授和能力培養(yǎng)方面存在一定問題?下面以組成原理試題為例,試圖分析造成這一偏差的原因。
例1:(2012年第43題)
假定某計算機的CPU主頻為80 MHz,CPI為4,并且平均每條指令訪存1.5次,主存與Cache之間交換的塊大小為16B,Cache的命中率為99%,存儲器總線寬度為32位。請回答下列問題。
(1)該計算機的MIPS數(shù)是多少?平均每秒Cache缺失的次數(shù)是多少?在不考慮DMA傳送的情況下,主存帶寬至少達到多少才能滿足CPU的訪存要求?
(2)假定在Cache缺失的情況下訪問主存時,存在0.0005%的缺頁率,則CPU平均每秒產(chǎn)生多少次缺頁異常?若頁面大小為4 KB,每次缺頁都需要訪問磁盤,訪問磁盤時DMA傳送采用周期挪用方式,磁盤I/O接口的數(shù)據(jù)緩沖寄存器為32位,則磁盤I/O接口平均每秒發(fā)出的DMA請求次數(shù)至少是多少?
(3)CPU和DMA控制器同時要求使用存儲器總線時,哪個優(yōu)先級更高?為什么?
(4)為了提高性能,主存采用4體交叉存儲模式,工作時每1/4個存儲周期啟動一個體。若每個體的存儲周期為50 ns,則該主存能提供的最大帶寬是多少?
此題主要考查考生對層次化存儲系統(tǒng)的基本概念和基本原理的理解和掌握情況,考查考生是否真正理解在指令執(zhí)行過程中CPU訪問Cache、主存和磁盤的過程,從而考查考生是否具有運用多個相關概念進行問題分析的能力。為了降低試題難度,對問題描述進行了簡化。考生只要理解CPU訪存過程和每個概念的含義以及概念之間的關聯(lián),就能容易地給出答案。雖然該題涉及的概念和知識點多,但這些知識點都是計算機專業(yè)最核心、最基礎的內(nèi)容,是考生必須掌握的,也是《計算機專業(yè)基礎綜合考試大綱》中明確考查的內(nèi)容,但是考試結果卻非常令人失望,抽樣統(tǒng)計難度只有0.246,有28.6%的考生得分為零,58.7%的考生得6分以下(滿分為12分)。抽樣結果說明,有相當一部分考生在本科學習階段沒有很好地掌握指令執(zhí)行過程中CPU訪存過程這個重要知識,對層次化存儲系統(tǒng)的基本概念和工作原理沒有真正掌握,而且綜合分析問題和解決問題的能力很差。既然此題考查的是課程核心的、基礎的內(nèi)容,考生在課程學習中就應掌握,加之考前復習,不應該有近90%的考生只得到一半分數(shù)以下。經(jīng)調(diào)查教授此門課程的教師,教師反映與教學過程中對課程核心內(nèi)容的強調(diào)不夠,缺乏對概念間相互關系的講解,學生一知半解,而且有的教材內(nèi)容陳舊,存在錯誤,一些授課教師水平有限,只能機械地按照教材內(nèi)容授課,把錯誤的內(nèi)容教給了學生。這一情況尚存在于我國高校特別是地方院校的本科教學中。下面這道題也同樣反映了這種狀況。
例2:(2010年第44題)
某計算機的主存地址空間大小為256 MB,按字節(jié)編址。指令Cache和數(shù)據(jù)Cache分離,均有8個Cache行,每個Cache行中數(shù)據(jù)塊大小為64 B,數(shù)據(jù)Cache采用直接映射方式?,F(xiàn)有兩個功能相同的程序A和B,其偽代碼如下所示:
假定int類型數(shù)據(jù)用32位補碼表示,程序編譯時i,j,sum均分配在寄存器中,數(shù)組a按行優(yōu)先方式存放,其首地址為320(十進制數(shù))。請回答下列問題,要求說明理由或給出計算過程。
(1)若不考慮用于Cache一致性維護和替換算法的控制位,則數(shù)據(jù)Cache的總容量為多少?
(2)數(shù)組元素a[0][31]和a[1][1]各自所在的主存塊對應的Cache行號分別是多少(Cache行號從0開始)?
(3)程序A和B的數(shù)據(jù)訪問命中率各是多少?哪個程序的執(zhí)行時間更短?
Cache技術是現(xiàn)代計算機系統(tǒng)中廣泛使用的一種加快信息訪問的技術,其分塊化思想和訪問局部性原理與程序設計密切相關。本題旨在通過讓考生對比分析兩個源程序實例中數(shù)組元素在Cache中的訪問過程,考查考生對Cache技術的理解程度和運用能力,從而有效地考查考生分析問題和解決問題的能力。本題考查點涵蓋了Cache技術中的各類問題,包括主存地址劃分、Cache的組織結構和訪問過程、Cache行與主存塊的映射方式、訪問局部性和命中率的關系、替換算法等,是一道典型的綜合應用能力測試題。抽樣數(shù)據(jù)顯示其統(tǒng)計難度僅為0.181,是4年試卷中難度最低的一道綜合應用題,得零分的考生占31.2%,考試結果非常不理想。通過分析試題發(fā)現(xiàn),求解問題所要用到的基本概念和基本原理也都是課程中最基礎的核心內(nèi)容,試題內(nèi)容既不偏也不怪,考試結果不理想,說明考生對基本原理的掌握和對所學知識的運用能力都比較欠缺,也反映了在對有關Cache內(nèi)容的教學過程中,教師沒有抓住Cache的本質進行講解,脫離程序設計講Cache,學生無法深入理解Cache的基本原理和實現(xiàn)技術,也無法體會Cache在計算機系統(tǒng)中的重要性。當然,本題將程序設計和Cache結合起來考察,給出的視角比較新,在復習資料中可能很難見到,考生不熟悉,無形中增加了試題難度。但是,如果試題的變化使得幾乎所有考生都不知如何下手,這也在一定程度上說明我們的計算機專業(yè)本科教學在創(chuàng)新型人才培養(yǎng)方面存在缺陷。如果大學培養(yǎng)的都是只會按套路做題、按公式套題的死記硬背式的“人才”,那么我國的高等教育質量從何保證?
例3:(2011年第43題)
假定在一個8位字長的計算機中運行如下類C程序段:
若編譯器編譯時將8個8位寄存器R1~R8分別分配給變量x、y、m、n、z1、z2、k1和k2。請回答下列問題。(提示:帶符號整數(shù)用補碼表示)
(1)執(zhí)行上述程序段后,寄存器R1、R5和R6的內(nèi)容分別是什么?(用十六進制表示)
(2)執(zhí)行上述程序段后,變量m和k1的值分別是多少?(用十進制表示)
(3)上述程序段涉及帶符號整數(shù)加/減、無符號整數(shù)加/減運算,這四種運算能否利用同一個加法器及輔助電路實現(xiàn)?簡述理由。
(4)計算機內(nèi)部如何判斷帶符號整數(shù)加/減運算的結果是否發(fā)生溢出?上述程序段中,哪些帶符號整數(shù)運算語句的執(zhí)行結果會發(fā)生溢出?
本題也是一個典型的應用能力測試題,考查的是將定點數(shù)表示及其加減運算基本原理運用到程序調(diào)試中的能力。定點數(shù)表示及其加減運算基本原理是組成原理課程中最基本、也是最容易理解和掌握的內(nèi)容,按理說得分應該比較高,可是抽樣統(tǒng)計數(shù)據(jù)顯示,難度僅為0.44。其中,得零分的考生占7.1%,得1~6分的占64.5%,得7~9分的占25.6%,得10~11分的僅占2.8%??荚嚱Y果顯示,考生不能很好地將程序設計中的問題與數(shù)據(jù)表示和數(shù)據(jù)運算中的知識聯(lián)系起來,即不能將所學基本原理運用到具體的應用問題中。計算機專業(yè)是一門應用性和實踐性很強的專業(yè),學習概念和原理就是為了應用,如果掌握了概念,弄懂了原理,但是不會應用,那么學習的概念和原理也就失去了意義。本科教學不僅是教授學生掌握知識和概念,更重要的是應該引導學生學會應用,教師應該在學生基礎知識的掌握和實踐能力的培養(yǎng)之間發(fā)揮橋梁作用。
通過分析計算機專業(yè)基礎綜合統(tǒng)考中組成原理試題,發(fā)現(xiàn)考生及高校計算機本科專業(yè)基礎課教學存在如下問題:第一,考生專業(yè)基礎知識較差,對于一些基本概念和基本原理認識和理解不到位,一定程度上反映了本科教學中教師對一些基本概念和原理沒有講清講透;第二,考生分析問題能力較差,遇到問題只會照搬公式套概念,而不會融會貫通地靈活運用,反映了考生在學習和復習過程中普遍存在“死記硬背”現(xiàn)象。由此,也透視出在教學過程中,教師沒有很好地將基本概念和基本原理與實際問題結合起來進行講解,缺乏對考生分析具體問題能力的訓練;第三,考生綜合運用能力較差,缺乏將多個相關知識關聯(lián)起來解決應用問題的意識,說明教學中沒有很好地對學生進行這方面能力的培養(yǎng);第四,考生缺乏對這些專業(yè)基礎課的整體認識和把握,不清楚課程之間的關系,甚至一門課中知識和知識之間的關系都搞不清楚,學到的知識是割裂的,這充分反映出本科教學的弱點,教師沒有意識將所教課程與其他相關課程有機結合,導致學生難以掌握課程的本質和精髓。
從以上分析可以看出,我國高校計算機本科專業(yè)基礎課教學存在著“輕應用、缺關聯(lián)、少綜合、無系統(tǒng)觀”等問題,應從改變教學理念、更新教學內(nèi)容和教學手段、加強教學交流入手,加強課程核心內(nèi)容的教學,加強考生對專業(yè)基礎知識體系的認識,加強學科實際應用知識的教學,加強學生實際應用能力的培養(yǎng),讓本科教育真正成為我國創(chuàng)新型計算機專業(yè)人才培養(yǎng)的搖籃。
從2007年開始的碩士研究生入學考試專業(yè)基礎綜合統(tǒng)考經(jīng)過幾年的檢驗顯示,考試的反撥作用促進了教學的發(fā)展,推動了本科生對專業(yè)基礎知識全面系統(tǒng)的學習。在2007年碩士研究生統(tǒng)考專業(yè)基礎課推出后,一些高校按照考試大綱中規(guī)定的考試內(nèi)容制定其教學內(nèi)容,原來有些沒有開設的課程或者原來課時安排較少的課程被列入學校重點教授的課程之列;再如一些地方院校原來不重視實驗課的教學,甚至連基本的實驗條件都不具備,在2008年農(nóng)學門類開考后,因為考試內(nèi)容中有關于實驗的內(nèi)容,所以這些院校開始引進實驗設備,開設實驗課程。此外,初試統(tǒng)考突出了人才選拔的基本標準,增加了考試的公平性和安全性,顯現(xiàn)了校內(nèi)自命題考試無法比擬的優(yōu)勢,建議繼續(xù)推進碩士研究生招生初試專業(yè)基礎綜合統(tǒng)考科目,以解決目前初試形式繁雜,考務管理任務繁重,入學選拔標準不統(tǒng)一,學校自命試題存在科學性、安全性隱患等問題。
[1]教育部考試中心.2012年全國碩士研究生入學統(tǒng)一考試計算機專業(yè)基礎綜合聯(lián)考考試大綱[M].北京:高等教育出版社.2012.
[2]陳睿.碩士研究生招生考試初試科目改革芻議[J].北京師范大學學報(社會科學版),2008(增刊).