李志敏 黃蘭英 熊曾剛
摘要:為提高編譯原理課程的教學效果,提出基于CDIO工程教育模式的課程教學方案,闡述編譯原理“案例驅動、模仿提升、資源開放、協作學習”的教學方法,說明教學實施過程中面臨的“雙師型”教師隊伍建設和學生實習實訓平臺建設等問題與對策。
關鍵詞:編譯原理:CDIO工程教育模式;課程教學;項目實訓
引 言
當前,社會經濟發展對計算機科學與技術專業人才的能力與素質要求總結起來主要有如下5個基本層面。
(1)具有扎實的專業基礎知識和終生學習的素質
(2)具有工作經驗和較強的工程應用能力。
(3)善于溝通協調,具有團隊合作能力。
(4)具有較強的自學能力和實踐創新能力。
(5)具備責任心強、認真負責、有擔當、能吃苦耐勞等意志品質。
根據上述人才的市場需求,計算機科學與技術專業畢業生還存在不能滿足市場人才需求的狀況,反映在計算機專業的教學上,面臨如下困局:課程與課程、教師與學生、學校與企業之問相對獨立,缺少協作,沒有形成人才培養的合力二要打破困局,必須明確課程教學是教學質量彤成的“第一現場”,也是影響人才培養質量的關鍵環節。改進課程教學方法是提高人才培養質量的必由之路 。
編譯原理課程具有抽象模型復雜、概念繁多、算法多樣、理論性強等特征。編譯器設計是課程的難點之一,構造完整的編譯器技術難度大,學生畢業后很少有人從事這方面的工作,這就造成很多學生課程學習目標不明確、不知道學什么、為什么學、怎么學的局面。此外,課時少、內容多、教學內容和方法不能適應編譯技術發展的要求、學生課外主動學習的積極性不高,也是編譯原理課程教學效果不佳的原因之一。
實際上,編譯原理作為計算機科學與技術專業的重要專業課程,在計算機專業人才培養上有著極其重要的作用。通過該課程的學習,學生可以得到如下6個方面的訓練 。
(1)掌握和理解編譯系統的結構、工作流程以及編譯程序各組成部分的設計原理和實現技術,獲得分析、設計、實現和維護編譯系統的初步能力。
(2)程序設計語言、操作系統、計算機原理和體系結構等課程是編譯原理的先修課程,編譯原理課程的學習可以加深學生對這些先修課程的理解,提高知識的綜合應用能力。
(3)提高對計算機軟件和硬件系統的總體認識,具備建立抽象模型和編程實現能力。
(4)編譯原理課程中的編譯器架構設計、算法設計等內容,可以為畢業生今后從事相關專業的工作打下堅實基礎。
(5)課程中的經典語言分析方法對于設計一些實用工具和軟件,如自然語言理解、網絡信息處理、網絡協議的分析與實現等,都是必備的基礎知識。
(6)構造編譯器的實踐過程是軟件工程的成功案例,讓學生獲得開發大型應用軟件的經驗。
1 CDIO工程教育理念簡介
CDIO 工程教育模式是能力本位的培養模式,其優勢在于讓學生以主動、團隊合作、課程與課程之問有機聯系的學習方式,獲取與工程實踐相關的知識與能力。CDIO培養大綱將工科畢業生的能力分為工程基礎知識、個人能力、團隊合作能力和T程系統能力4個層面,大綱要求以綜合的培養方式使學生在這4個層面達到預定目標。只有把知識、能力、社會需求融合起來,以能力為導向,以學科知識和社會需要為依托,整合課程組織結構,才能培養出符合社會經濟發展要求的工程技術人才。CDIO工程教育以實際應用項曰的開發過程為主線,提煉出項目開發經歷的構思、設計、實施、運行4個主要環節,培養學生系統開發的能力 。實施CDIO工程教育模式,基本原則是落實“做中學”以及“基于項目的學習”,它體現了現代工程師所應具備的服務于現代工業產品從構思、設計、實現到運行的全過程所必須擁有的基本能力。
2 基于CDIO工程教育模式的編澤原理課程教學方法
課程教學改革從以下4個方面展開。
1)學生分組,導入項目。
課程教學以項目導入的方式開始,首先鼓勵學生搜集編譯基礎理論和技術在計算機應用領域的成功案例;其次引導學生搜集開源的編譯工具,按照支持的源語言和語法分析方法分類。以上兩項前期工作對應CDIO模式的構思部分,需明確客戶的需求,考慮技術、企業戰略和制度等因素,不斷改進概念、技術和商業計劃。
項目的最終目標是用C語言編寫一個PL/O語言處理系統。在教學過程中,學生分成若干個項目組,在教師的指導下編寫項目計劃書,劃分項目的功能模塊;指定各個模塊的負責人,模擬實際項目開發,進行分工協作。
2)案例驅動,模仿提升。
CDIO工程教育模式要充分體現“做中學”,以“項目案例”為載體組織整個教學過程,以案例開發過程安排教學內容,靈活運川啟發式和研究性的教學方法。課程教學要為學生構建項目開發的情景,調動學生的主動性與參與性,提高學生的實踐創新能力。在編譯原理課程教學過程中,我們發現有些學生學習缺乏積極性和主動性,課外缺少自主訓練和探索,雖然通過了課程考核,但是實際只了解到一些基本概念和零碎的知識斷點,不具備運用所學原理和技術進行編譯器開發的能力。
為了培養學生“構思一設汁一實現一運作”編譯系統的技能,我們將編澤原理的學習過程分為模仿和提升兩個階段。
(1)模仿階段的主要目標是以PL/O語言處理系統為案例,引導學生學習基礎知識,掌握基本算法,激發學生興趣。項目開發分為8項子任務,這些任務可在教師的指導下完成 。
任務1:安裝測試用C語言實現的PL/O語言處理系統;完成PL/O語言語法的EBNF描述。
任務2:PL/O編譯程序中詞法分析程序的設計和實現。
任務3:PL/O編譯程序中語法分析程序的設計和實現;自頂向下遞歸調用子程序的方法。
任務4:PL/O編譯程序中語義分析和巾間代碼生成。
任務5:PL/O編譯程序中符號表的設計與實現。
任務6:PL/O編譯程序中運行時的存儲組織。
任務7:PL/O編譯程序中的目標代碼生成。
任務8:PL/O編譯程序各階段整合運行,編寫PL/O語言使用說明書。
教師可展示用C語言實現的案例,要求學生模仿整個實現過程,用Java語言再次實現PL/O語言處理系統。學生則通過此案例,模擬項目開發全過程。
(2)提升階段的主要目標是讓學生學習編譯器開發的流程,學會運用編譯技術進行項目開發。本階段分為以下幾個步驟。
步驟1:編譯器程序設計提高。定義一個待實現的源語言,如PL/O語言的擴充或者C語言的一個子集,要求學生用C或者Java實現編譯程序。
步驟2:編譯技術擴展。引導學生學習面向對象語言編譯技術,如收集整理開源編澤器GCC的資料,描述GCC的總體結構、編譯流程、代碼組織。
步驟3:編譯器實用工具。引導學生學習嵌入式系統編譯器及其工具的應用開發,包括C和Java編譯器開發。
步驟4:項目實訓。引導學生利用編譯技術進行項目開發,如設計開發C語言程序設計自動評分系統、基于語法分析技術的企業名稱識別算法、基于語義分析的數據驅動型漏洞檢測方法、編譯原理在通信協議轉換中的應用、編譯原理在反病毒技術中的研究和應用等。
3)開放資源,自主協作。
CDIO注重自主學習能力的培養,提升學生獨立解決問題的能力,同時也重視團隊協作精神的培養,發揮團隊的力量,協同工作完成任務。
網絡環境下的自主和協作學習要求教師提供充分的網絡資源。在教學中,課程組搜集整理了國內外編譯原理課程的教學資源,整理了各種實用編程語言及其表示規則,設計了適合學生需要的“做中學”項目和任務,并在課程的教學網絡平臺共享,通過開放資源和自主協作的學習,鼓勵學生在課外通過網絡和移動設備開展學習討論,用課外學習彌補課程學時的不足;通過課外自學,充分發揮學生的主觀能動性,鍛煉學生“自主設計、自主實現、自由探索”,引導和鼓勵學生積極組織并參與項目組的學習和研討活動,讓個人融人項目團隊,提升整個團隊的工程實踐能力。
4)考核評價,多點多面。
CDIO注重工程實踐能力的培養,工程實踐能力是各種能力的綜合體現,因此考核評價要兼顧這種特性。
所謂多點主要是指編譯原理具有紛繁復雜的知識點,因此對知識點的考核應以促進學生主動學習、研究性學習為目的,注重對學習過程的考查。教師可通過查看學習記錄、平時作業和練習情況,考核學生對基本知識點的掌握情況;通過小組活動記錄,查看學生在項目組討論中的活躍度,了解學生提出問題的數量和質量以及解決問題的思路,考核學生的知識整合和應用能力。
所謂多面主要是指編譯原理課程在培養學生實踐創新能力方面具有多面性,因此考核評價方式要有利于培養創新能力、實踐技能、解決實際問題能力,從多個層面開展。教師可通過對項目構思與設計展示、子項目實施情況、項目匯報與答辯、學生的自評與互評、教師與企業工程師的評價等多種方式考核學生的專業知識、個人自身能力、團隊合作能力、設計項目和開發系統能力。
3 CDIO模式編譯原理教學實施過程中存在的問題與對策
1)“雙師型”教師隊伍的建設問題
目前,從事編譯理論研究和技術開發的教師不多,有編譯器開發經驗的教師比較缺乏。編譯原理課程“雙師型”教師隊伍奇缺。
湖北省教育廳和湖北工程學院制定政策,資助并鼓勵青年教師進入相關企業與工程師合作解決實踐中的技術難題。同時,湖北工程學院每年派出專業課青年教師到武漢大學、華中科技大學等高校進修深造。通過這兩個途徑,學校可以解決“雙師型”師資隊伍建設的問題。
2)學生實習實訓平臺的建設問題。
畢業生就業難和符合市場需求的應用性人才短缺問題一直是高校、用人單位和畢業生共同的困擾。學生綜合能力是就業成敗的關鍵因素,CDIO工程教育模式強化工程應用實習實訓平臺的建設,希望為解決這種困擾提供幫助。
湖北工程學院與中國航天三江集團公司合作共建的工程實踐教育中心和湖北工程學院國家級大學生創新創業訓練計劃項目已獲得教育部批準。在此基礎上,計算機學院已經與國內10余家IT企業和科研機構合作共建實習實訓基地,校企合作層面深化,操作方案細化,實現與行業需求的無縫對接。
4 結語
基于CDIO工程教育理念的編譯原理課程教學方案的改革,推動了算法與程序設計課程群、操作系統、計算機組成原理、軟件工程實踐等計算機類專業核心課程的建設,大幅度提高學生的創新實踐能力。2014年,湖北工程學院畢業生就業率超過95%,考研錄取率超過20%;非畢業班學生在各類軟件設計大賽中獲得湖北賽區一等獎10項,全國總決賽獎項10項。