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

“編譯原理”課程教學方法研究與探索

2012-04-29 00:00:00孫士保
中國電力教育 2012年1期

摘要:針對“編譯原理”課程教學中存在的內容抽象、算法復雜等問題,分析了現有的一些研究對策,在任務驅動的“編譯原理”課程教學方法基礎上,結合河南科技大學計算機專業“編譯原理”課程教學的實際,討論了“編譯原理”課程理論教學與實驗教學的具體實施方案,并探索了實驗教學的考核辦法,在實際的實施過程中,取得了令教師、學生都比較滿意的教學效果。

關鍵詞:任務驅動;編譯原理;教學改革;教學實踐

作者簡介:孫士保(1970-),男,河南固始人,河南科技大學電子信息工程學院,副教授,北京航空航天大學計算機學院博士后(北京#8194;100191)。

(河南#8194;洛陽#8194;471003)

基金項目:本文系河南科技大學教育教學改革項目(項目編號:2009Y-016)的研究成果。

中圖分類號:G642.41#8195;#8195;#8195;#8195;#8195;文獻標識碼:A#8195;#8195;#8195;#8195;#8195;文章編號:1007-0079(2012)01-0069-03

隨著信息技術的發展,編譯技術已經成為計算機科學中發展最快的分支之一,它體現了計算機技術發展過程中的重要成果。因此,“編譯原理”課程是信息類計算機專業的一門專業基礎課程,對理論教學和實踐教學起著奠基的作用。通過學習編譯知識,有助于學生從宏觀上把握編程語言;編譯技術涉及到計算機的系統結構、指令集結構以及相關的操作系統,掌握編譯技術有助于更進一步地理解計算機系統;從軟件工程的角度來看,編譯器是一個很好的系統軟件,它所涉及的算法和技術可直接復用于軟件開發的實踐中。如正規式和自動機理論在字符串檢索中的應用,以及用文法的方法來定義網絡協議等,另外,編譯技術在軟件系統安全、現有程序理解和軟件工程中的逆向工程等方面應用廣泛。

一、“編譯原理”課程教學過程中存在的問題及相應解決辦法的探索

“編譯原理”課程是理論性和實踐性的統一體,其中更傾向于實踐。在該門課程的學習過程中涉及到大量抽象的思想和復雜的算法,學生往往難于理解,因此“編譯原理”課程是計算機科學與技術專業本科教學中較難的課程之一。原因如下:(1)該門課程涉及的理論知識抽象、深奧,如自動機理論,學生若想完全理解這些知識需要查閱很多相關的文獻,這為學生學習增加很多負擔。(2)該門課程涉及的一些算法復雜,如自下而上的分析算法LR(k)、向前看的自下而上分析算法LALR(k)等。這些算法計算復雜,涉及內容多,學生掌握它們困難。(3)編譯程序是一個系統軟件,各個模塊之間的接口復雜,學生們往往不能從整體上來理解編譯程序。

針對以上種種情況,國內高校中教授“編譯原理”課程的教師們從不同角度進行了探索。如文獻[1]給出了“編譯原理”課程和內容分解的建議;文獻[2]設計了“編譯原理”課程實踐教學的方法;文獻[3]介紹的對策可以提高學生學習“編譯原理”課程的興趣;文獻[4]對大學生應掌握的編譯知識進行了歸納。這些成果對于“編譯原理”課程理論或實踐教學起到了極大的推動作用,但它們還是采用傳統教學模式,即先講授理論知識,再進行實驗驗證。為了改變這種教學模式,提高學生學習的積極性和主動性,并把學習編譯知識與開發編譯器的實踐結合起來,文獻[5]介紹了河南科技大學從2007級計算機科學與技術專業部分學生中開始采用任務驅動的學習方法。在文獻[5]中對實驗項目的設計、教學計劃的制定、輔導材料的編寫、網絡資源信息平臺的構建、教學資料的開發等進行了探討。本文在文獻[5]的基礎上對“編譯原理”課程的理論教學和實踐教學的具體實施方案進行討論,以強化任務驅動教學過程中邊實踐邊學習的教學方案,提高“編譯原理”的教學效果。

二、“編譯原理”課程教學方法研究與探索

1.提高學生學習的興趣

“編譯原理”課程是一門實踐性較強的課程,任務驅動的學習方法將以前重理論的教學模式轉為重實踐的教學模式,通過完成“編譯原理”課程中的每一個具體實驗反過來再進行書本上理論知識的學習,真正實現學以致用,理論與實踐相結合的教學理念,并實現從難懂的理性知識向直觀的感性知識的轉變。這將極大地調動學生學習的積極性,全面提高學生學習的興趣。這樣學生學習該課程中的原理除了可以用于分析編譯器以外,還對諸如“系統結構”、“人工智能”、“并行處理技術”等課程的學習具有指導作用,并且可以更進一步地幫助學生理解和綜合應用“離散數學”、“高級語言”、“數據結構”、“匯編語言”等專業基礎課程中的知識。

2.合理安排任務驅動的“編譯原理”課程教學內容

在河南科技大學教改項目:任務驅動的“編譯原理”教學方法研究中,我們根據教學大綱的安排,把源語言編譯的工作原理與方法融入一個類C編譯器的開發過程當中,根據開發中的需求來驅駛學生學習書本上的編譯知識,具體方法安排如下:

(1)根據教學大綱合理設計實驗項目。

編譯器是一個大的系統軟件,學習它主要是掌握編譯的方法,所以在設計實驗項目時要從整體上來把握它,而不拘泥于某一個實驗的細節。對于編譯過程中的每一個階段可以設計一個或多個實驗項目,具體每一個項目如何實現不作具體要求。例如,對于語法設計部分是采用自上而下分析還是自下而上分析學生可以自由選擇。但實驗項目的內容要包括必須掌握的編譯知識,還可以設計一些較難的項目留給成績優異的學生在課后完成,以擴展他們的知識。

(2)制定分階式教學內容。

為了讓學生們能夠熟練地掌握任務驅動的“編譯原理”課程教學內容,并理解編譯過程的工作原理和構造方法,我們把書本相關內容按基本要求和高級要求進行分類,全體學生必須完成基本要求的內容,部分優秀學生可以試探完成高級要求的內容。

“編譯原理”課程中學生必須完成基本要求的內容包括:文法和語言部分知識點包括文法、推導/歸約、句型、句子、語言;詞法分析部分知識點包括狀態轉換圖、正規集、正規表達式、有窮自動機(DFA、NFA)的表示方法及相互轉換;語法分析部分知識點包括遞歸子程序法、LL(1)分析法、LR分析法中的SLR(1)和LR(1)的構建方法;語法制導翻譯和中間代碼生成部分知識點包括四種常見的中間代碼:逆波蘭式、四元式、三元式、三地址碼;符號表部分知識點包括符號表的組織方式;目標程序運行時的存儲組織部分知識點包括靜態分配策略;代碼優化部分知識點包括局部優化達到全局優化的目的;代碼生成部分知識點包括目標代碼生成算法。部分優秀學生可以試探完成高級要求的內容包括:文法和語言部分包括規范推導、規范歸約、句柄、上下文無關文法、語法樹、二義性;詞法分析部分包括正規文法、正規式向有窮自動機(DFA、NFA)的轉換;語法分析部分包括算符優先分析法和優先函數、LR分析法的LALR(1)的構建方法;語法制導翻譯和中間代碼生成部分包括常見的語法成分的翻譯;符號表部分包括符號表的查找算法;目標程序運行時的存儲組織部分包括動態棧式分配策略;代碼優化部分包括循環優化以達到全局優化的目的。

(3)適時編寫該課程的輔導材料和構建相應的網絡資源信息平臺。

課后作業是對書本知識的鞏固與復習,為了幫助學生更好地掌握編譯知識,我們針對書本重點和難點編寫了一套學習指導,并給出了相應的習題解析。

任務驅動的“編譯原理”課程教學研究從2008年開始,并在河南科技大學電子信息工程學院2007級計算機科學與技術專業學生開始實施。“編譯原理”重點建設課程網站于2009年3月建立,全部電子教案、教學大綱、教學計劃、課程知識體系、考研試題庫和學習輔導材料在網站建立后就發布到了網站上,學生可以在網上隨時下載這些資料,并可以在交流區與老師或同學交流學習中遇到的問題或分享各種經驗與樂趣;該門課程的評價體系采用網上測評和河南科技大學教務處網站上學生評教的方式進行,讓教師隨時掌握學生對該課程的意見和建議,并及時調整教學進度或方法;友情鏈接可以鏈接到國內一些學校“編譯原理“精品課程網站,實現該課程資源共享,為學生課后復習及深入研究提供了豐富的資源。為了在學生中盡快實施任務驅動的“編譯原理”課程改革成果,2009年9月河南科技大學計算機專業大三學生開始試行該方案,通過實驗項目的實施與相關理論知識的講授,與此同時,找出部分優秀學生,讓他們參與實驗項目設計、實施和評價的全過程,并多方聽取學生的意見,逐步改進該方法的不足之處,該方法越來越趨于完善。

3.靈活運用現代化的教學手段

“編譯原理”課程算法和圖形多,其中算法步驟復雜而且抽象,因此要想讓絕大多數學生掌握編譯知識,必須借助現代化的教學手段,使抽象的理論知識感性化,感性知識娛樂化,讓學生在玩中學、樂中學。因此我們編制了一套把難懂的編譯知識融于動畫效果的多媒體課件,它可以把抽象的算法和理論知識用生動的動畫形式表示出來,在講課的過程中配合板書,細化教學內容,提高教學效果。課后向學生推薦目前全國著名高校“編譯原理”精品課程網站,如中山大學“編譯原理”精品課程網站,網站上有一些實驗教學項目和具體實施方案,我們可以借鑒它們的方案來調整自己的實驗項目及實施方案。充分利用校園網等網絡資源,積極開展網上輔導,定時在網上與學生交流,通過郵件等形式為學生解答學習過程中的各種疑難問題。總之,學校可以根據現有的技術條件為學生學習“編譯原理”提供全方位的幫助。

三、“編譯原理”課程實踐教學方法研究與探索

任務驅動的“編譯原理”課程教學研究以實踐為主導,實驗效果的好壞直接關系著研究項目的成敗,也直接體現了計算機科學與技術專業教學大綱的優劣,這種思想適應現代工程技術型專業教學的需要。因此我們首先提出任務,設計實驗項目;然后講授相關理論知識;最后通過實驗驗證,經過兩年多的實踐證明該方法教學效果良好。但該項研究在實施的過程中也遇到了新的問題:有些學生很快完成任務,有些學生完不成任務。針對這種情況,我們提出多層次、多目標的思想,即確定全體學生必須完成的基礎任務,然后再設定擴展任務,擴展任務分多個等級,難度各不相同,要求也不相同,學生可以按照自己的能力完成不同等級的任務,由于最后效果不同,所以成績也有區別。以下從任務驅動的“編譯原理”課程實驗項目準備、實驗項目實施、實驗過程監督與評價三個階段講述多層次、多目標的“編譯原理”實踐課程教學全過程。

1.任務驅動的“編譯原理”課程實驗項目準備

河南科技大學計算機科學與技術專業的“編譯原理”課程是在本科三年級第一學期開設的,學生們在二年級已經完成“高級語言程序設計”、“數據結構”、“算法設計與分析”等課程的學習,他們已經具備基本的編程能力。任務驅動的“編譯原理”課程是為了向學生系統講授編譯知識、并培養學生開發較大規模軟件的能力。為保證實驗課的順利開展和學生水平的穩步提高,我們在“編譯原理”課程開設之前,讓學生在以下兩個方面做好準備:

(1)熟練掌握高級程序設計語言編程技術。

提高高級程序設計語言編程能力是一個系統工程,它需要在一定的時間范圍內持續地培養,河南科技大學計算機科學與技術專業學生在學習“高級語言程序設計”后有兩周時間的“程序設計課程設計”,該課程主要是讓學生完成一些簡單的程序,如:多功能計算器、文件移位加密與解密、本班同學通訊錄、萬年歷系統、圖書管理系統、一個課題隨機選題程序的設計等;學生學習過“數據結構”后同樣有兩周的“數據結構課程設計”,該課程讓學生們完成難度較大的程序,如:運動會分數統計、飛機訂票系統、簡易文本編輯器、校園導航、數制轉換問題等;學生學習過“算法設計與分析”后也有兩周的“軟件專題訓練”,該課程讓學生在一定的編程基礎上完成中等難度的算法設計問題,如:馬的Hamilton周游路線問題、羅密歐與朱麗葉的迷宮問題、獨立鉆石跳棋問題、n2-1謎問題等。通過這些課程設計的訓練,學生們已經熟練掌握了文件操作、指針操作、數組的使用、結構體與共用體的設計與使用等高級程序設計語言編程技術。

(2)軟件工程開發方法訓練。

河南科技大學計算機科學與技術專業學生學習“軟件工程”課程是在本科三年級第二學期,因此學生此時還沒有系統掌握軟件工程的思想。但我們在學生進行的各種課程設計過程中要求他們逐步掌握分析、設計、編碼、測試、評價等思想,并運用到每一個具體編程任務中去,經過兩年的訓練,絕大多數學生掌握了這樣的軟件工程開發方法,從而改掉了以往教學中拿到題目就動手編程的壞毛病,為今后的各種程序開發提供了技術路線保障。

2.任務驅動的“編譯原理”課程實驗項目實施

基于任務驅動的“編譯原理”課程實驗的主要目的是為了讓學生自已開發一個類C語言的源程序編譯器,該編譯器能夠完成基本的詞法分析、語法分析、語義分析與中間代碼生成和代碼優化等功能,從而起到鍛煉學生的作用。

在任務驅動的“編譯原理”課程實驗的實施過程中,考慮到目前編程語言非常多,其中C語言學生比較熟悉,因此我們以C語言源程序編譯器為依據來進行模仿開發。但由于C語言功能強大,涉及內容太多,短時間內不易完成,所以我們依據C語言的縮小版本,即類C語言。類C語言的數據定義方式、語法、程序結構與C語言及其變種C++語言相似,只是不含嵌套、遞歸和面向對象等特性。

編譯器的開發是一個系統工程,它涉及到編譯的各個方面,對于部分基礎一般的學生來說完成一個簡單的編譯器開發是合適的,但對于部分優秀學生來說只完成編譯器這些基本功能起不到鍛煉的作用。針對目前學生人數多,學生水平參差不齊的特點,我們采用多層次、多目標的教學方法。首先要求全體學生必須完成類C語言編譯器的開發,對于部分優秀學生可以在類C語言編譯器的基礎上增加嵌套、遞歸和面向對象等特性。這樣就把實驗任務分為基礎目標、擴展目標兩個層次,學生可以根據自己的能力、興趣與愛好選做不同層次的題目,從而達到分段培養、分段鍛煉的目的。這樣無論對于優秀學生還是普通學生,同樣都能起到很好的鍛煉作用。

以前我們的實驗課內容主要為了驗證相關理論知識,而任務驅動的“編譯原理”實驗目的是為了解決實際工程問題。這樣就要求學生在確定了實驗內容后,去學習相關的編譯理論知識,變被動學習為主動學習。對于編譯器這樣的系統程序開發必須遵循軟件工程的方法,才能保證開發出的編譯器程序具有高的質量和好的可維護性。為了順利完成開發任務,我們采取的措施是:學生可以單獨完成,也可以由3~4名學生組成的小組協作完成。在分組時,特別強調組內每個成員任務明確,編程時統一命名機制,統一接口標準等。每人在確定了開發任務后,開發時必須遵循需求分析、系統設計、編程實現、模塊測試與集成測試等標準的軟件開發過程中的各種規范,還要求他們在每個階段詳細給出對應的文檔,并對每個階段出現的問題及解決方案給出明確的說明,為他們日后檢查程序提供必要的技術文檔。

3.任務驅動的“編譯原理”課程實驗項目監督

現在的大學實驗課,絕大多數學生能夠按照教師的要求完成,但也有部分學生,他們依賴性強,自覺性差,在學習過程中不夠刻苦,實驗時不愿意多動手,這樣很難達到課程實驗的要求。如何讓自覺性好的學生水平更上一層樓,讓自覺性差的學生提高認識,自覺完成實驗,是教師必須解決的問題。為了正確引導并督促學生完成各項任務,在實踐教學過程中,實驗過程的監督是必要的。

任何一個語言的編譯程序都存在代碼較長、無法當堂測試的問題。采用多層次、多目標的教學方法后,我們采取分散考核的方法,即學生隨時完成任務隨時提出考核要求,全部任務考核完成再進行成績匯總。由于確定任務時分為基礎任務和擴展任務,所以學生完成不同的任務,考核的成績也不相同,成績良好的學生可以提出優秀申請,我們采用公開答辯的方式進行優秀評定。這樣在答辯的過程中,等于他把自己如何分析、如何設計、如何實現的全部過程以及他的創新點向全體學生進行了一次公開說明,這對他本人和別的學生都是一個非常好的形式。對于部分基礎弱的學生,我們可以在該門課程結束前進行考核,這樣讓他有更多的時間來完成他的任務,從而更好地達到課程實驗的目的。

四、結束語

任務驅動的“編譯原理”課程教學方法研究與探索是以課程實踐教學為主線,靠不同的實驗來帶動各章理論知識的學習,這種研究是探索性的,也是開拓性的,學生變被動學習為主動學習,2009年、2010年、2011年已在河南科技大學計算機專業“編譯原理”課程教學中實施該教學方法。在實施過程中絕大多數學生表現出極高的熱情,并有部分學生參與了該項目的研究工作,項目獲得了成功。但在項目實施的過程中也發現了一些問題,主要表現為:(1)本次研究的基礎任務中以結構化程序設計語言為主,在擴展任務中包含了面向對象的內容,但絕大多數學生沒有完成;(2)在語義分析與代碼優化部分有的學生完成不全面;(3)在優秀評定時,申請答辯的學生不多,一方面是時間有限,另一方面學生不積極;(4)考核過程中當一組有3~4名學生時,存在1人完成多人共享的情況。雖說存在問題,但總的來說學生通過該次實驗學習的主動性明顯提高、教學效果良好。

目前項目組成員已經在研究報告的基礎上整理出一本實踐性非常強的“編譯原理”內部資料,準備進一步完善后出版,為以后的教學與改革提供理論及實踐支持。

參考文獻:

[1]何炎祥,伍春香.計算機專業不需要開設編譯原理課程嗎?[J].計算機教育,2009,(4):61-62,85.

[2]張昱,陳意云.編譯原理課程實踐改革探索[J].計算機教育,2008,(8):24-26.

[3]李冬梅,施海虎.“編譯原理”課程的教學研究與探索[J].計算機教育,2008,(8):103-105.

[4]張昱,陳意云,郭宇,等.“編譯原理”課程的教學內容選擇的探討[J].計算機教育,2009,(18):143-146.

[5]張海朝,孫士保,張芳芳.任務驅動的編譯原理課程教學方案研究[J].計算機教育,2010,(10):100-103.

(責任編輯:孫晴)

主站蜘蛛池模板: 国产精品不卡片视频免费观看| 天堂久久久久久中文字幕| 国产精品视频白浆免费视频| 99久视频| 日韩无码视频网站| 99热这里只有成人精品国产| 欧美人人干| 国产色网站| 伊人久久久久久久| 欧美a在线看| 91无码国产视频| 亚洲精品在线观看91| 亚洲,国产,日韩,综合一区| 色天堂无毒不卡| 欧美人与牲动交a欧美精品| 日韩乱码免费一区二区三区| 97在线国产视频| 欧美一区二区三区香蕉视| 国产精品香蕉在线| 人妻精品久久无码区| 1024国产在线| 精品福利网| 乱码国产乱码精品精在线播放| 亚洲v日韩v欧美在线观看| 亚洲h视频在线| 欧洲成人免费视频| 亚洲成人在线免费观看| AV老司机AV天堂| 国产亚洲精久久久久久久91| 欧美色视频在线| 免费一级无码在线网站| 玖玖精品视频在线观看| 亚洲国产成人久久精品软件| 色婷婷综合在线| 在线观看的黄网| 热伊人99re久久精品最新地| 国产成人1024精品下载| 欧美中文字幕第一页线路一| 国产一区自拍视频| 中国毛片网| 国产凹凸视频在线观看| 欧美亚洲第一页| 欧美一区精品| 手机精品福利在线观看| 国产精品片在线观看手机版| 久久精品无码专区免费| 久久香蕉国产线看观看亚洲片| 国产丝袜第一页| 在线无码av一区二区三区| 亚洲综合狠狠| 在线观看av永久| 免费可以看的无遮挡av无码| 无码'专区第一页| 狠狠色香婷婷久久亚洲精品| 国产黄视频网站| lhav亚洲精品| 91成人在线观看视频| 国产丰满成熟女性性满足视频| 99久久精品国产麻豆婷婷| av无码一区二区三区在线| 久久99国产乱子伦精品免| 婷婷亚洲最大| 天天色天天综合网| 天天色综网| 午夜欧美理论2019理论| 亚洲精品国产自在现线最新| 国产视频资源在线观看| 人妻一区二区三区无码精品一区| 色综合五月| 亚洲成年人网| 国产剧情国内精品原创| 亚洲色精品国产一区二区三区| 国产欧美日韩在线在线不卡视频| 亚洲天堂网在线观看视频| 国产国语一级毛片在线视频| 狠狠色丁香婷婷综合| 国内精品九九久久久精品| 视频一区亚洲| 日本亚洲国产一区二区三区| 亚洲不卡影院| 一级毛片不卡片免费观看| 午夜精品久久久久久久无码软件|