• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      計算機專業(yè)學生系統(tǒng)能力培養(yǎng)方法研究

      2018-01-05 16:24:57楊興強劉翔鵬
      軟件工程 2017年11期
      關(guān)鍵詞:課程教學知識點

      楊興強+劉翔鵬

      摘 要:以函數(shù)參數(shù)為例,本文探討了在一個知識點的教學中所包含的計算機系統(tǒng)能力培養(yǎng)問題。在計算機系統(tǒng)的背景下討論一個知識點的微觀教學過程,分析一個知識點在各種課程中的不同呈現(xiàn)形式的基礎(chǔ)上,論述了課程之間在計算機系統(tǒng)能力培養(yǎng)方面的相互合作關(guān)系。提出了在以知識點為單元的教學過程中如何利用不同課程的知識以及它們之間的相互關(guān)系來培養(yǎng)學生系統(tǒng)能力的方法,取得了明顯的實際教學效果。

      關(guān)鍵詞:函數(shù)參數(shù);知識點;系統(tǒng)能力;課程教學

      中圖分類號:TP30 文獻標識碼:A

      Abstract:Taking the function parameter as an example,the paper explores computer system-level ability cultivation in the process of curriculum teaching based on knowledge points.The micro-teaching process is discussed under the background of computer systems.On the basis of analyzing the different presentation forms of one knowledge point in various courses,the paper expounds the cooperation relationship in computer system-level ability cultivation among courses,and presents a method to cultivate computer system-level ability by making full use of the knowledge and the interrelationship of different courses,achieving great practical teaching effects.

      Keywords:function parameters;knowledge point;computer system-level ability;course teaching

      1 引言(Introduction)

      計算機系統(tǒng)能力是指在計算機系統(tǒng)的背景下理解計算機知識體系中的概念和方法,并能綜合運用系統(tǒng)中的各個部分,解決實際問題的能力。它強調(diào)了系統(tǒng)中各部分之間的關(guān)聯(lián)性,反映到教學中就是各課程之間的關(guān)聯(lián)性。然而,目前的計算機專業(yè)教學領(lǐng)域中,隨著各門課程自身的發(fā)展,課程內(nèi)的結(jié)構(gòu)和邏輯性日趨合理,而課程之間、課程與系統(tǒng)之間的隔離卻變得越來越嚴重。這導致對學生們的知識體系的完整性和系統(tǒng)能力的培養(yǎng)受到限制。為了彌補傳統(tǒng)課程之間業(yè)已形成的隔離,國內(nèi)外計算機教育專家做了大量的教學研究工作。

      20世紀末,美國卡內(nèi)基-梅隆大學的R.E.Bryant提出了從程序員的角度、從系統(tǒng)的角度來進行計算機專業(yè)教學的觀點,并出版了《深入理解計算機系統(tǒng)》[1],在計算機教育領(lǐng)域產(chǎn)生了廣泛的影響。該書通過打破課程之間的界限,試圖對計算機系統(tǒng)進行完整而深入的剖析,已被國內(nèi)外很多大學作為計算機系統(tǒng)能力培養(yǎng)的教材。2013年,教育部教執(zhí)委系統(tǒng)研究組王志英等在文獻[2]中介紹了計算機系統(tǒng)能力培養(yǎng)的主要內(nèi)涵及培養(yǎng)需求,闡述了系統(tǒng)能力培養(yǎng)和課程體系設(shè)置的總體思路。2014年,袁春風率先在南京大學和復旦大學開設(shè)了“計算機系統(tǒng)基礎(chǔ)”課程,編寫了系統(tǒng)論述和系統(tǒng)實驗相結(jié)合的教材[3]。隨后,南京大學提出了四縱三橫的課程體系建設(shè)方案,在系統(tǒng)能力培養(yǎng)方面做了深入而系統(tǒng)的工作[4]。清華大學劉衛(wèi)東等[5]調(diào)整課程體系,統(tǒng)一規(guī)劃課程內(nèi)容,并且在實驗教學中將操作系統(tǒng)和計算機組成等課程結(jié)合起來,實現(xiàn)了課程間的融合與貫通。在這樣的課程聯(lián)合中,學生可以在自己設(shè)計完成的CPU上,開發(fā)自己的操作系統(tǒng),并運行自己的應(yīng)用程序。另外北京大學、國防科技大學、北京航空航天大學在系統(tǒng)能力培養(yǎng)方面都做出了各具特色的探討。

      以上研究是基于建立新的課程,或改革現(xiàn)有課程來構(gòu)建計算機系統(tǒng)知識體系架構(gòu),為系統(tǒng)能力培養(yǎng)鋪平道路。他們都是從總體上構(gòu)建系統(tǒng)教學實例,透過典型實例讓學生了解計算機系統(tǒng)內(nèi)部的相互關(guān)聯(lián)。在實際教學過程中,雖然都取得了很好的效果,但也付出了很大的代價,對現(xiàn)有教學體系進行了不小的改動,并且需要更多的課時。本文認為,系統(tǒng)能力體現(xiàn)的不僅是對系統(tǒng)總體框架的把握水平,同時也表現(xiàn)為面對具體問題時的一種思維方式。因此,雖然系統(tǒng)能力涉及整個系統(tǒng)范圍,然而系統(tǒng)能力的培養(yǎng)卻體現(xiàn)在思維的細節(jié)。作為對目前教學研究的補充,本文將系統(tǒng)能力的培養(yǎng)放到課程的微觀方面,即在知識點一級的微觀教學過程中來研究如何培養(yǎng)系統(tǒng)能力。

      下面將以函數(shù)參數(shù)為例,探討在一個知識點中所包含的系統(tǒng)能力培養(yǎng)素材以及如何利用這些素材提升學生的計算機系統(tǒng)能力。

      2 函數(shù)參數(shù)教學實例(Teaching example of the

      function parameter)

      函數(shù)是程序的基本結(jié)構(gòu),參數(shù)傳遞是實現(xiàn)函數(shù)間調(diào)用的基本功能。在計算機專業(yè)本科課程中,一般情況下,學生們是在高級語言課程首先接觸這個知識點。本文通過分析這個知識點,發(fā)現(xiàn)它所蘊含的計算機系統(tǒng)能力培養(yǎng)的素材和背景,并且以這個知識點為例,闡述提高學生計算機系統(tǒng)能力的教學方法。

      以C語言為例,普通的教科書[6]在講解這個知識點時,典型的內(nèi)容如下:(1)形參的概念;(2)實參的概念;(3)形參與實參之間的關(guān)系;(4)演示類似圖1中程序的例子,讓學生獲得函數(shù)調(diào)用的體驗。

      對于單純學習高級程序設(shè)計語言的學生來講,以上關(guān)于函數(shù)參數(shù)傳遞的內(nèi)容就足夠了,完全可以應(yīng)對一般的程序設(shè)計任務(wù)。然而,從計算機專業(yè)的角度看,僅從高級語言的角度理解函數(shù)參數(shù)是不夠的。例如,如果不清楚函數(shù)參數(shù)的傳遞過程,就無法理解緩沖區(qū)溢出的攻擊程序,無法設(shè)計出好的應(yīng)用程序接口,也就無法提高參數(shù)傳遞的效率。endprint

      參數(shù)傳遞依賴的是棧,棧是數(shù)據(jù)結(jié)構(gòu)課程中的概念。如何利用棧來實現(xiàn)參數(shù)的傳遞和函數(shù)的返回,則是編譯原理課程的內(nèi)容。圖2顯示了計算機在執(zhí)行圖1中的程序時,進入子程序foo()后棧的狀態(tài)。當把參數(shù)按一定的順序逐個壓棧時,必須考慮參數(shù)的數(shù)據(jù)類型及它們在內(nèi)存的放置。例如c、k和string所占的字節(jié)數(shù),要解釋清楚需引入計算機組成和編譯原理中的知識。函數(shù)在遞歸調(diào)用時,參數(shù)被遞歸地壓入棧中,隨著遞歸的深入,棧空間會越來越少。程序員稍不注意,其編寫的程序就會導致棧溢出。??臻g為什么會溢出呢?棧所占用的存儲空間是如何分配的?這些問題涉及了操作系統(tǒng)中地址空間的概念以及內(nèi)存分配問題。除了參數(shù)傳遞所涉及的各課程的這些基本概念之外,稍微深入一點就會延伸到參數(shù)個數(shù)可變的情況。例如,在C語言中有printf(...)的例子,Java中還有多態(tài)性。圖3說明函數(shù)參數(shù)涉及了多門課程,必須將這些課程的相關(guān)知識綜合起來理解,才能培養(yǎng)學生從計算機系統(tǒng)的角度全面把握函數(shù)參數(shù)這樣的知識點。在各項應(yīng)用中,能夠從整個計算機系統(tǒng)的范圍內(nèi)尋找解決方案,這正是目前大學所提倡培養(yǎng)的計算機系統(tǒng)能力。

      國內(nèi)外很多大學的計算機專業(yè)教學往往增加一門新課程,以縱向的視角審視計算機系統(tǒng),打破課程之間的界限,從上而下地講解計算機系統(tǒng)的典型操作。例如,針對函數(shù)參數(shù)、文件的操作等,可以跨越高級語言、編譯程序、操作系統(tǒng)、計算機組成多門課程,深入闡釋其概念及實現(xiàn)細節(jié)。這種打破課程界限,從系統(tǒng)范圍思考問題的教學方法對于培養(yǎng)學生的計算機系統(tǒng)能力是非常重要的。

      然而,單獨開設(shè)一門課程的方法也存在一些問題:(1)作為一門課程,僅能將一些典型的知識點在系統(tǒng)范圍內(nèi)展開講授,而系統(tǒng)思維是針對計算機系統(tǒng)的所有方面的。只要計算機系統(tǒng)中的某個對象出現(xiàn)問題,我們一般都需要從系統(tǒng)的角度思考和解決。所以從培養(yǎng)系統(tǒng)能力的角度這樣的課程缺少一定的覆蓋度。(2)這樣的課程涉及現(xiàn)有課程的很多內(nèi)容,要和現(xiàn)有課程有機融合,需要對目前的教學安排做較大的改動。

      本文認為,計算機系統(tǒng)能力的培養(yǎng)不應(yīng)該僅是一門課的任務(wù),應(yīng)該貫穿在和計算機系統(tǒng)相關(guān)的所有課程中。系統(tǒng)能力,一方面是一個長期、綜合培養(yǎng)的結(jié)果,另一方面幾乎在每個知識點上都存在系統(tǒng)能力培養(yǎng)的素材和背景,因此完全可以把系統(tǒng)能力的培養(yǎng)落實到教學的細節(jié)。在后面的兩節(jié),我們將分別討論計算機系統(tǒng)觀的建立和計算機系統(tǒng)能力的培養(yǎng)方法,其著眼點都是基于知識點級的微觀教學。

      3 計算機系統(tǒng)觀(Computer system-level

      perspective )

      在CSC2013[7]中非常明確地引入了計算機系統(tǒng)觀的教學思想:計算機科學專業(yè)的學生應(yīng)當學會從細節(jié)到抽象的多個層次上去理解及思考問題。這種理解及思考應(yīng)當超越計算機系統(tǒng)中各種不同部分的實現(xiàn)細節(jié),包括鑒賞計算機系統(tǒng)的結(jié)構(gòu)以及它的構(gòu)造和分析過程。他們需要識別計算機系統(tǒng)發(fā)揮作用的環(huán)境,包括與人和物理世界的交互。

      本文從兩個方面來詮釋上面關(guān)于計算機系統(tǒng)觀的要求:一是以聯(lián)系的觀點去觀察計算機系統(tǒng)中對象,這包括了計算機系統(tǒng)中的不同層次之間的關(guān)系和同一層次不同部分之間的關(guān)系;二是以抽象的觀點去理解計算機系統(tǒng)中的具體實現(xiàn),從而發(fā)現(xiàn)它們中的共性,包括系統(tǒng)結(jié)構(gòu)和實現(xiàn)方法。

      可見,計算機系統(tǒng)觀是一種大局觀,但它絕不是空泛的理論和原理,而是面向具體問題的。它體現(xiàn)了學生認識問題的深度和廣度。要建立學生的計算機系統(tǒng)觀,教師和學生承擔的角色也是不同的。教師是不能將觀點強加給學生的,而要將背景和知識展現(xiàn)給學生,讓學生自己去認識和體驗。能否形成計算機系統(tǒng)觀,還要依賴于學生個人能否從教師構(gòu)建的教學背景中抽象出自己的觀點。

      計算機系統(tǒng)觀是獲得計算機系統(tǒng)能力的前提,也就是說我們只有用大的視角去看問題,才能在大的范圍內(nèi)解決問題。

      4 面向知識點的系統(tǒng)能力培養(yǎng)方法(Training of

      computer sstem-level ability based on knowledge

      points)

      當學生要解決計算機系統(tǒng)中的某個問題時,需要分析和該問題相關(guān)的所有系統(tǒng)內(nèi)技術(shù)方案,從中找出最優(yōu)的,并評估該方案給系統(tǒng)帶來的各方面的影響。因此,學生獲得計算機系統(tǒng)能力的前提是從系統(tǒng)的角度了解問題。反映到教學中,就是從各門課程的多個角度,去理解并掌握一個知識點。

      假如從某門課程的一個角度去講解一個知識點,稱為該知識點的一個知識片段,那么一個知識點的教學就是由若干個知識片段組成,在每門課程中有一個片段(也可能有若干個)。例如,在匯編語言中都會講到XCHG(intel)指令,用于實現(xiàn)兩個數(shù)據(jù)的交換。在操作系統(tǒng)課程中swap(XCHG)指令可以實現(xiàn)進程間的互斥??梢?,數(shù)據(jù)交換指令這個知識點包含了兩個片段:一個在匯編語言中,一個在操作系統(tǒng)中。而在實際的計算機系統(tǒng)中,數(shù)據(jù)交換指令的這兩個功能是不會局限于課程的。傳統(tǒng)的教學中,每門課程僅介紹一個知識點在本課程內(nèi)的知識片段,課程之間缺少有意識的融合。當然,有經(jīng)驗的教師和主動性強的學生都會在知識點的一個片段的教學過程中,聯(lián)系到其他課程的相關(guān)知識片段。知識點—課程關(guān)系見表1。

      教師現(xiàn)在要做的就是把這種課程之間的聯(lián)系以規(guī)范的形式固定下來,成為教學過程的一個環(huán)節(jié),而不是依賴于個別教師或?qū)W生的經(jīng)驗和主動性。具體做法如下:針對計算機系統(tǒng)中的每個知識點,定義它在各課程中的片段,形成知識點-課程關(guān)系表。當某門課的教師在教授一個知識點時,就去知識點-課程關(guān)系表中查找該知識點在其他課程中的片段。若學生已經(jīng)在其他課程中學習了若干片段,那么教師就有責任將該課程的片段與其他課程的片段結(jié)合起來進行綜合講解。例如,在操作系統(tǒng)中講到線程切換時,需要保存和回復CPU的現(xiàn)場信息,包括CPU的各類寄存器,此時需要結(jié)合計算機組成中已講過的“CPU現(xiàn)場信息”;在操作系統(tǒng)中講到線程調(diào)度時,需要結(jié)合C語言中使用的win32線程和Java語言中的Java線程的相關(guān)知識,如圖4所示。endprint

      顯然,建立知識點-課程關(guān)系表需要各門課程之間緊密的合作才能完成。

      計算機課程的設(shè)置是為了適應(yīng)學校的教學體制,而且機械地分割了計算機系統(tǒng)知識體系。上述知識片段概念的引入體現(xiàn)了各專業(yè)課程對知識體系分割的現(xiàn)實。而知識點-課程關(guān)系表的建立可以有助于重建課程之間在計算機系統(tǒng)知識領(lǐng)域內(nèi)的聯(lián)系。通過這種聯(lián)系,學生可以從計算機系統(tǒng)的角度更全面地理解在課程中所學的知識,為系統(tǒng)觀的建立和獲得系統(tǒng)能力奠定基礎(chǔ)。

      與系統(tǒng)觀的建立過程相一致,學生必須進行跨越學科的大量的實踐訓練,才能獲得真正解決問題的能力。

      5 結(jié)論(Conclusion)

      本文概述了為提高計算機系統(tǒng)能力目前各大學所做的教學研究和采取的措施,提出了系統(tǒng)能力的培養(yǎng)前提是建立系統(tǒng)觀,而建立系統(tǒng)觀的方法就是加強各課程知識點之間的聯(lián)系,構(gòu)造學生完整的計算機系統(tǒng)知識體系。將計算機系統(tǒng)能力的培養(yǎng)這樣一個宏觀問題,落實到在微觀教學中,培養(yǎng)學生以聯(lián)系的觀點觀察、分析計算機系統(tǒng)中的對象,這樣具體、可行的教學過程是本文研究的核心問題。計算機系統(tǒng)能力的培養(yǎng)不僅僅是建立系統(tǒng)觀的問題,更重要的是如何訓練學生們解決實際問題的能力,這是我們將進一步繼續(xù)研究的課題。

      參考文獻(References)

      [1] R.E.Bryant,D.R.O'Hallaron.Computer Systems:A Programmer's Perspective(Third Edition)[M].Upper Saddle River:Prentice-Hall,2015:2-5.

      [2] 王志英,周興社,袁春風,等.計算機專業(yè)學生系統(tǒng)能力培養(yǎng)和系統(tǒng)課程體系設(shè)置研究[J].計算機教育,2013(9):1-6.

      [3] 袁春風.計算機系統(tǒng)基礎(chǔ)[M].北京:機械工業(yè)出版社,2014:2-4.

      [4] 袁春風.計算機系統(tǒng)核心教學內(nèi)容之關(guān)聯(lián)[J].中國計算機學會通訊,2016(9):54-57.

      [5] 劉衛(wèi)東,張悠慧,向勇,等.面向系統(tǒng)能力培養(yǎng)的計算機專業(yè)課程體系建設(shè)實踐[J].中國大學教學,2014(8):48-52.

      [6] 譚浩強.C語言程序設(shè)計[M].北京:清華大學出版社,2014:162-165.

      [7] Joint Task Force on Computing Curricula,ACM and IEEE, Computer Science Curricula 2013:Curriculum Guidelines for Undergraduate Degree Programs in Computer Science, ACM, 2013:23-26.

      作者簡介:

      楊興強(1964-),男,博士,教授.研究領(lǐng)域:計算機圖形學,操作系統(tǒng).

      劉翔鵬(1980-),女,碩士,助教.研究領(lǐng)域:軟件開發(fā).endprint

      猜你喜歡
      課程教學知識點
      一張圖知識點
      一張圖知識點
      第四頁 知識點 殲轟-7A
      一張圖知識點
      一張圖知識點
      小學數(shù)學教學應(yīng)注重培養(yǎng)學生的應(yīng)用意識
      人間(2016年26期)2016-11-03 17:23:08
      淺談微課在PHOTOSHOP課程教學中的實踐
      會計專業(yè)課程教學國際化的探索性研究
      高職物流專業(yè)“物流費用結(jié)算實務(wù)”課程開發(fā)研究
      中國市場(2016年36期)2016-10-19 04:54:40
      高職院校醫(yī)學檢驗技術(shù)專業(yè)提高課程教學質(zhì)量的探討
      科技視界(2016年21期)2016-10-17 18:59:36
      乌拉特后旗| 桐柏县| 安图县| 鲁甸县| 公主岭市| 通山县| 综艺| 罗城| 蒙阴县| 玉环县| 安化县| 法库县| 棋牌| 深泽县| 惠来县| 双流县| 博罗县| 桑日县| 上林县| 那曲县| 德州市| 普定县| 山阳县| 项城市| 定远县| 新兴县| 怀远县| 堆龙德庆县| 丰都县| 开化县| 峨山| 南岸区| 元阳县| 六枝特区| 大悟县| 二连浩特市| 高阳县| 凤冈县| 名山县| 碌曲县| 马龙县|