999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2009-02-04 05:35:58鄭曉娟
計算機教育 2009年23期

鄭曉娟

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

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

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

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

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

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

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

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

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

1.1教育教學理念

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

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

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

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

1.2.1 “編譯原理”課程工程化實踐教學環境

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

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

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

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

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

1.2.2 “編譯原理”理論教學

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

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

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

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

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

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

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

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

1.2.3軟件工程能力培養

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

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

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

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

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

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

編譯原理課程工程化實踐項目的優點有:

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

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

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

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

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

1.2.5配套教材

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

1.2.6評價體系

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

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

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

2結論

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

參考文獻:

[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.

主站蜘蛛池模板: 中国国语毛片免费观看视频| 国产男女免费完整版视频| 欧美成人综合视频| 国模极品一区二区三区| 成人伊人色一区二区三区| 特级毛片8级毛片免费观看| 国产精品男人的天堂| 国产麻豆福利av在线播放| 欧美日韩国产系列在线观看| 天堂亚洲网| 97超碰精品成人国产| 3D动漫精品啪啪一区二区下载| 99热这里只有精品5| 亚洲AV永久无码精品古装片| 国产免费好大好硬视频| 久久不卡国产精品无码| 日本黄色a视频| 一级成人a毛片免费播放| 国产精品观看视频免费完整版| 欧美日本中文| 任我操在线视频| 精品视频福利| 日韩免费无码人妻系列| 欧洲欧美人成免费全部视频| 色偷偷男人的天堂亚洲av| 无码人中文字幕| 日韩一区二区在线电影| 亚洲综合专区| 日韩午夜福利在线观看| 99这里只有精品6| 亚洲天堂自拍| 美女无遮挡被啪啪到高潮免费| 亚洲国产综合自在线另类| 美女免费黄网站| 狼友视频一区二区三区| 亚洲AV色香蕉一区二区| 婷婷综合缴情亚洲五月伊| 99精品伊人久久久大香线蕉| 精品乱码久久久久久久| 99精品影院| 99ri精品视频在线观看播放| 国产一二三区在线| 91口爆吞精国产对白第三集 | 亚洲欧美在线综合一区二区三区| 国产资源免费观看| 国产第三区| 曰AV在线无码| 这里只有精品免费视频| 国产男女免费完整版视频| 亚洲精品在线影院| 国产菊爆视频在线观看| 亚洲国产欧美国产综合久久| 91精品专区国产盗摄| 男人天堂亚洲天堂| 2020极品精品国产| 国产第一页亚洲| 国产精品美乳| 国产高潮流白浆视频| 一级黄色欧美| 亚洲av无码人妻| 国产福利在线观看精品| 91亚洲国产视频| jizz在线观看| 色婷婷综合激情视频免费看| 国产幂在线无码精品| 欧美一区二区福利视频| 好吊妞欧美视频免费| 国产精品天干天干在线观看| 久久性视频| 久久频这里精品99香蕉久网址| 日韩欧美网址| 国产成人一级| 国产毛片基地| 国产成人精品在线1区| 久久成人国产精品免费软件| 成年A级毛片| 在线亚洲天堂| 麻豆国产精品一二三在线观看| 任我操在线视频| 久久精品中文无码资源站| 久久香蕉国产线| 精品三级网站|