• 
    

    
    

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

      面向軟件工程專業(yè)工程化改造“編譯原理”課程

      2009-02-04 05:35:58鄭曉娟
      計算機教育 2009年23期
      關鍵詞:編譯原理工程化軟件工程

      鄭曉娟

      摘要:本文論述了計算機學科“編譯原理”課程在軟件工程專業(yè)進行工程化改造的方法和必要性,創(chuàng)建了“編譯原理”課程工程化實踐教學體系,提出了知識的先期注入、工程化編譯理論以及階梯狀迭代工程實踐項目的教學方法,從根本上解決了該課程教、學、實踐中存在的難講授、難理解和難開發(fā)的“三難”問題,為其他計算機學科核心課程面向軟件工程專業(yè)的工程化改造提供了一定的理論依據(jù)。

      關鍵詞:編譯原理;軟件工程;工程化;知識先期注入;工程化編譯理論;階梯狀迭代教學法

      中圖分類號:G642 文獻標識碼:B

      作為信息產業(yè)的核心和國民經濟信息化的基礎,軟件產業(yè)日益受到國家的高度重視。權威數(shù)據(jù)顯示,我國軟件產業(yè)每年人才需求量近一百萬,然而令人尷尬的是,許多軟件企業(yè)卻招聘不到真正合適的軟件人才。信息社會不斷增長的軟件人才需求與優(yōu)質軟件專業(yè)教育供給不足的矛盾已成為計算機高等教育發(fā)展面臨的一個重要問題。

      2001年12月,經國家教育部和國家計委聯(lián)合發(fā)文批準,全國首批35所示范軟件學院正式成立,目的是批量培養(yǎng)具有國際競爭能力的高層次、應用型、復合型軟件工程人才。自示范軟件學院成立以來,我國軟件工程教育事業(yè)得到了很大發(fā)展,學科建設逐步走向成熟,初步實現(xiàn)了與國際學科發(fā)展的接軌,軟件工程教育實現(xiàn)了歷史性跨越。

      然而,軟件工程是一個迅速發(fā)展的交叉性學科,相關的新概念、新技術、新方法不斷涌現(xiàn),這就要求教育機構要不斷調整策略,以應對專業(yè)的快速變化。尤為突出的是,無論是全國首批35所示范軟件學院還是非示范軟件學院,大部分都根植于計算機學院,因此很多軟件工程專業(yè)學科課程體系與計算機科學與技術專業(yè)基本相似,而計算機科學與技術專業(yè)的教學內容是遠遠不能適應軟件工程學科的發(fā)展要求的。

      從根本上解決上述問題的關鍵是,結合中國軟件產業(yè)和軟件學院已有的硬、軟件基礎設施及辦學的具體情況,研究和定制適合本學院特色的軟件工程學科的課程設置、教學內容、教學方法,形成一個良好的軟件工程學科課程體系,使軟件工程教學更具先進性、目的性和系統(tǒng)性,其中對計算機科學核心課程的工程化改造勢在必行。

      本文將研究計算機學科的“編譯原理”課程在軟件工程專業(yè)如何進行工程化改造,怎樣創(chuàng)建適合軟件工程專業(yè)知識體系要求的“編譯原理”實踐教學,從而在科學的軟件工程學科課程體系的保證下,形成一個融基礎理論、實驗教學、工程實踐為一體的整體化培養(yǎng)機制,以適應軟件工程學科教學要求,使軟件工程學科教學質量得到不斷發(fā)展,使軟件工程專業(yè)教育得到健康穩(wěn)步發(fā)展,培養(yǎng)社會需要的軟件人才。

      1 “編譯原理”的工程化實踐教學體系

      1.1教育教學理念

      工程化實踐教學就是樹立工程化能力培養(yǎng)與基礎理論教學、專業(yè)能力培養(yǎng)并重的教學理念,把工程化教學作為人才培養(yǎng)的核心任務之一,通過全面改革軟件工程專業(yè)的人才培養(yǎng)模式、調整課程體系、充實教學內容、改進教學方法,在教學過程中全面體現(xiàn)能力和職業(yè)素質培養(yǎng)的思路,并將軟件工程知識內容由淺入深、階梯狀、循序漸進地貫穿在工程化實踐教學的各個開發(fā)項目中。

      基于上述軟件工程專業(yè)的知識體系、本科課程設置的指導原則以及工程化實踐教學教育教學理念,下面將給出“編譯原理”課程的工程化實踐教學體系。

      1.2 “編譯原理”的工程化實踐教學體系

      如圖1所示,“編譯原理”課程的工程化實踐教學體系由六個部分組成:編譯原理課程工程化實踐教學環(huán)境、編譯原理理論教學、軟件工程能力培養(yǎng)、階梯狀迭代工程實踐項目、配套教材和評價體系。構建理念為以計算機科學為基礎,以軟件工程為核心,以目標應用為導向。

      1.2.1 “編譯原理”課程工程化實踐教學環(huán)境

      “編譯原理”課程工程化實踐教學環(huán)境由實驗室、項目團隊、教師講座以及團隊匯報組成。

      (1) 實驗室。以工程化培養(yǎng)理念指導教學實驗室建設,為“編譯原理”課程工程化實踐教學提供強有力的基礎設施支持。提供全天開放機房,機房實行開放型管理。項目開發(fā)時間規(guī)定為開時間和閉時間,閉時間為固定時間,要求授課教師到機房現(xiàn)場指導,開時間內,學生可以自由選擇時間,以小組為單位進行自行討論、設計,要求實驗室人員在現(xiàn)場,以便解決設備問題。機房的使用和維護要有嚴格的管理制度,保證項目的順利完成。

      (2) 項目團隊。將4~5個學生分為一個項目小組,一名組長作為負責人;每名學生分配一臺微型計算機,在開發(fā)小組中以分工協(xié)作的方式完成指定的軟件開發(fā)任務,完成項目設計報告,并提交完整的軟件開發(fā)文檔和源代碼。學生在團隊環(huán)境下使用最新的軟件開發(fā)工具,獲得較真實的軟件開發(fā)經驗,提高學生在項目規(guī)劃、隊伍組織、工作分配、成員交流等多方面的能力,培養(yǎng)學生團隊合作及工程項目研發(fā)能力。

      (3) 教師講座。指導教師在整個的項目開發(fā)中縱覽全局,項目的開始、結束及中間的每個模塊都要進行全面的講解、引導和組織。教師要系統(tǒng)講解軟件工程知識點和軟件技術,統(tǒng)一講解項目開發(fā)過程中學生普遍存在的問題,不斷地發(fā)現(xiàn)問題,解決問題。

      (4) 團隊匯報。理論教學中教師唱主角,而工程化實踐教學應讓學生唱主角,讓開發(fā)小組自己擬定演講方案、內容,由教師審核修改后進行匯報演講。這樣可以有效地提高學生總結概括、研究立項、口頭表達、演講和交流溝通的能力,培養(yǎng)學生獨立思考、分析問題的能力和創(chuàng)新能力。

      1.2.2 “編譯原理”理論教學

      由知識的先期注入和工程化理論教學組成。

      (1) 知識的先期注入?!熬幾g原理”課程的理論性較強,整個課程內容由幾個功能模塊組成,學生對課程的完全理解應在最后一個模塊,即課程結束時。鑒于教學內容的特殊性,應在一門程序設計語言之后安排“CO釋程序的面向對象設計與實現(xiàn)”項目,作為前導實踐環(huán)節(jié),配套教材為《C++實戰(zhàn):解釋程序的面向對象程序與設計》。這可以使學生在學習理論之前對程序設計語言的解釋執(zhí)行有較深的理解,由傳統(tǒng)的“填鴨式”被動學習轉變?yōu)閷W生自主式學習。學生對“編譯原理”課程的學習由問“這是什么”變成“這是我需要的什么”,從根本上解決了“編譯原理”課程的教學困難。實踐表明,這種方法在鍛煉學生實踐能力的同時先期注入了理論教學需要的解釋程序的知識和概念,有很好的教學效果。

      (2) 工程化理論教學。編譯程序是龐大而復雜的,這使得如何介紹編譯原理本身就是一個難題。中外編譯原理教材很多,如果從工程化的角度去詮釋編譯程序的實現(xiàn)過程及其原理,即對一個完整的源程序到目標程序的轉換過程進行詳細講解,不失為一個新的途徑。我們的配套教材《編譯程序的實現(xiàn)原理》的編寫形式如下:先給出編譯器的輸入——一個C語言小程序;再給出編譯器的輸出——目標機上的目標語言,完成這樣的轉換需要進行的工作包括詞法分析、語法分析等幾個功能模塊;再針對每個功能模塊給出本模塊的輸入和輸出,如詞法分析為一個C語言小程序,模塊的輸出形式為TOKEN鏈表,完成這樣的轉換需要進行的工作由理論和實現(xiàn)兩部分組成。這種講述方法實現(xiàn)了五化:

      工程化:以對一個完整的源程序到目標程序的轉換作為教學載體介紹編譯程序的實現(xiàn)及其原理,以反映編譯的工程性。

      模塊化:將一個完整的源程序到目標程序的轉換作為總目標,將不同的子轉換作為各個子模塊的目標,以反映編譯的模塊性。

      鏈接化:將一個完整的源程序到目標程序的轉換所需的知識處理成總目標與子模塊、子模塊內所需知識點之間的鏈接,以反映編譯的整體性。

      需求化:將編譯原理內容的平鋪直敘轉換為實現(xiàn)一個完整的源程序到目標程序的轉換的所需知識,解決了編譯內容的龐雜、不分主次、敘述冗長的問題。

      形式化:將形式語言的內容介紹放置在為完成目標所需知識的位置,突出形式語言的地位、內容及其應用。

      1.2.3軟件工程能力培養(yǎng)

      在工程化實踐教學體系中,軟件工程能力的培養(yǎng)是至關重要的。

      軟件工程能力包括軟件需求、軟件設計、軟件構造、軟件工程基礎結構、軟件配置管理、軟件維護等知識單元。有些知識單元在早期學習,以促進學習條件的成熟;而有些知識單元的學習需要一定的成熟條件,應該放在后期講授,如階梯狀迭代工程實踐項目是整個教學過程中理論聯(lián)系實際,培養(yǎng)學生動手能力、觀察能力、分析和解決問題能力、團隊合作以及創(chuàng)新精神的重要環(huán)節(jié)。把軟件工程知識單元分期、分階段引入階梯狀不同開發(fā)項目的全過程,形成了特色鮮明的工程化實踐教育體系,使學生的軟件工程能力在實際項目開發(fā)中得到鍛煉和提升?!熬幾g原理”課程工程化實踐項目內容安排如表1所示。

      “實踐性、個性化、逐步工程化”是工程化人才培養(yǎng)的重要環(huán)節(jié),也是學生成為合格軟件工程化人才的實踐過程。以上教學組織方法既保證了教學的系統(tǒng)性、知識性,又保證了教學案例的先進性和實踐性。

      1.2.4階梯狀迭代工程實踐項目

      編譯器代碼的長度可從10 000行到1 000 000行不等,編寫甚至讀懂這樣一個程序都非易事,更何況是開發(fā),因此編譯器的實現(xiàn)比以前任何課程中學生承擔的設計要大得多、難得多??v觀國內外大學研究現(xiàn)狀,一般都是先設計一個語言,面向過程式或面向對象式,然后對設計的語言進行面向過程或面向對象程序設計方法的開發(fā),早期采用面向過程語言編譯器的面向過程開發(fā),如吉林大學計算機科學與技術學院的編譯原理實踐課程“編譯程序的設計與實現(xiàn)”,近期采用面向過程語言編譯器的面向對象開發(fā),或是面向對象語言編譯器的面向對象開發(fā),如“Modern Compiler Implementation in Java”。無論哪一種,學生都是一次性為具有上百條產生式語法的語言開發(fā)編譯器,難度極大,這使實踐課程的收效甚小。采用階梯狀迭代教學法創(chuàng)建的編譯原理課程工程化實踐項目從根本上解決了這個問題,配套教材為《編譯程序的面向對象程序與實現(xiàn)》。

      如圖1和圖2所示,編譯原理課程工程化實踐項目內容包括“C0解譯程序的面向對象設計與實現(xiàn)”,“C1編譯程序的面向對象設計與實現(xiàn)”,“C2編譯程序的面向對象設計與實現(xiàn)”,“C3編譯程序的面向對象設計與實現(xiàn)”。整體項目的源語言定義為C語言的子集,采用階梯狀迭代教學法后,將源語言定義為C0、C1、C2、C3,Cn是Cn-1的擴展。

      編譯原理課程工程化實踐項目的優(yōu)點有:

      (1) 起點低:降低了開發(fā)難度。學生根據(jù)自己的實際水平選擇源語言級別,有不同收效。從根本上解決了軟件開發(fā)水平低的學生對編譯程序開發(fā)望而生畏甚至放棄的問題。

      (2) 階梯上升:項目內容的選擇不是零散的、隨機的、重疊的,而是相互關聯(lián)的。縱向為編譯理論,是主要內容;橫向為軟件工程,是輔助內容。主要內容將難點分散,處理成階梯狀;輔助內容也將難點分散,同樣處理成階梯狀。

      (3) 迭代發(fā)展:每一個項目需求是前一個項目的擴展,因此,每一次的軟件開發(fā)可以看作是前一次開發(fā)的迭代,使學生面對大型軟件開發(fā)項目中最難處理的用戶需求不斷變更的問題,最大程度地使用重用技術。所有項目的開發(fā)承上啟下、循序漸進、階梯狀迭代發(fā)展,為研究和學習軟件生產線新技術埋下伏筆。

      (4) 知識滲透:將軟件工程核心內容及工程化軟件開發(fā)思想由淺入深逐步滲透到各個項目中,每個項目具有不同級別的培養(yǎng)目標,學生從不同項目循序漸進地掌握工程化軟件開發(fā)理念,降低了工程化軟件開發(fā)的難度。

      階梯狀迭代工程實踐項目發(fā)揮了學生的主體意識,給學生足夠的空間,激發(fā)了學生的活力與創(chuàng)新思維,并培養(yǎng)了學生的“三個能力”(自我管理能力、組織策劃能力、社會實踐能力)和“五種意識”(責任意識、服務意識、創(chuàng)新意識、團隊意識、競爭意識)。

      1.2.5配套教材

      編譯原理課程工程化實踐教學配套教材共有3部,前導教材《C++實戰(zhàn):解釋程序的面向對象程序與設計》與“編譯原理”理論教學知識的先期注入配套;《編譯程序的實現(xiàn)原理》與“編譯原理”工程化理論教學配套;《編譯程序的面向對象程序與實現(xiàn)》與階梯狀迭代工程實踐項目配套,3部教材前后關聯(lián)且各呈完整體系。本套教材為清華大學出版社“編譯原理及其實踐課程的工程化教學課群研究”立項項目,已出版1部,另2部明年中旬出版。

      1.2.6評價體系

      編譯原理課程的工程化實踐教學評價體系包括對學生工程素質和對教學體系的評價。

      學生工程素質的評價采用過程化考核管理標準,即把工程化能力和職業(yè)素質引入學生工程素質的評價體系,加大工程化實踐環(huán)節(jié)的比重,形成專業(yè)理論知識和實踐能力并重的考核體制,將期末一張試卷定成績的考評機制改為由工程化實踐項目、隨堂測驗、論文、面試、考試、團隊等多種形式相結合的評價機制,防止實驗抄襲現(xiàn)象。編譯原理課程考核采取理論知識和工程化實踐項目完成情況的綜合考核方式,工程化實踐項目根據(jù)項目設計報告、軟件開發(fā)文檔、源代碼和運行系統(tǒng)的質量進行考核,學生成績以登記評定方式給出。

      教學體系的評價采用回饋化考核管理標準,即把企業(yè)回饋和畢業(yè)生回饋引入教學體系的評價。對企業(yè)和畢業(yè)生進行跟蹤調查,通過收集企業(yè)和學生的反饋指導教學和實踐項目的設置和修訂,形成良性循環(huán),為進一步提高教學質量打下堅實基礎。

      2結論

      軟件工程是集計算機科學與技術、數(shù)學、經管等多學科的交叉性學科。作為一名軟件工程教育者,我們必須建立一套具有自身特色的工程化人才培養(yǎng)體系,培育具有國際競爭力的一流軟件產業(yè)高級/高端人才,結合軟件工程人才的學科交叉性、偏重實用、職業(yè)定位等特點,系統(tǒng)深入地研究軟件產業(yè)對技術型、管理型的人才需求,注重學生綜合能力和專業(yè)素質的培養(yǎng),才能在計算機系統(tǒng)、軟件工具、軟件工程和管理上循序漸進地提高學生的能力。

      參考文獻:

      [1] Aho, Alfred V., Ravi Sethi, Jeffrey Ullman. Compilers: Principles, Techniques and Tools[M]. Reading, MA: Addison-Wesley, 1986.

      [2] Appel, Andrew W. Modern Compiler Implementation in Java[M]. Cambridge, UK: Cambridge University Press,1997.

      [3] Kenneth C. Louden. Compiler Construction: Principles and Practice[M]. PWS Publishing Company,1997.

      猜你喜歡
      編譯原理工程化軟件工程
      工程化原子重力儀綜述
      計測技術(2021年2期)2021-07-22 09:16:56
      軟件學院編譯原理實踐課程的教學探索
      計算機教育(2016年8期)2016-12-24 10:24:00
      基于MOOC的編譯原理分階段課程教學研究
      計算機教育(2016年9期)2016-12-21 00:32:22
      依托工作室的軟件工程實踐教學研究
      營造興趣啟蒙式學習氛圍的編譯原理首課設計
      計算機教育(2016年7期)2016-11-10 08:48:50
      基于工程教育認證的《軟件工程》課程教學質量建設研究 
      軟件導刊(2016年9期)2016-11-07 22:31:23
      關于提高軟件工程實踐教學質量的幾點思考
      關于如何創(chuàng)新和完善計算機軟件工程管理的探討
      軟件測試工程化模型及應用研究
      “編譯原理”課程教學改革初探
      求知導刊(2016年6期)2016-04-06 01:35:41
      时尚| 浦北县| 调兵山市| 连南| 宣恩县| 日土县| 西乌珠穆沁旗| 乌审旗| 永春县| 班戈县| 彩票| 深水埗区| 九龙城区| 南开区| 乐都县| 和平区| 花垣县| 泸溪县| 塘沽区| 广汉市| 古蔺县| 平顺县| 环江| 阳信县| 大关县| 防城港市| 祁门县| 尉犁县| 乐陵市| 尼木县| 绥中县| 隆林| 祁东县| 边坝县| 漠河县| 和顺县| 汝阳县| 永兴县| 广安市| 连江县| 大石桥市|