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

“編譯原理”實踐課程教學方法研究

2009-12-30 03:41:40
計算機教育 2009年21期
關鍵詞:教學模式

張 晶 金 英 劉 磊

摘要:本文探討了目前國內高?!熬幾g原理”實踐課程的現狀,研究了“編譯原理”實踐課程的“多層次—多目標—多效果”的教學方法,給出了該方法的實施方案和效果。該項研究對深化高校教學改革,更新實踐性教學模式,培養創新型人才具有一定的意義。

關鍵詞:編譯原理;實踐課程;教學模式;創新型人才

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

編譯程序作為連接應用程序和計算機系統的橋梁和紐帶,是不可或缺的一個系統軟件。具備一定的編譯程序設計原理和實現技術也是計算機專業的學生及工作者必備的基礎知識和技能。由于“編譯原理”課程中涉及形式語言、屬性文法等比較抽象的內容,一直被學生認為是較難掌握的一門課程。所以,各高校相應地開設了“編譯原理”實踐課程,希望借此加強學生對理論知識的理解,建立理論和實際的聯系,強化動手能力,促進學生綜合素質的提高。

目前,多數高校在“編譯原理”實踐課教學中采用的都是以實例語言為主導,貫穿整個編譯過程的教學模式。經過幾年的教學實踐,取得了一定的教學效果,但也存在一些問題,比較典型的有以下兩種情況:(1)一般的實踐教學都是采用統一實驗題目,學生分組進行實驗的形式進行。實際上,由于學生水平參差不齊,針對統一的題目,一些水平較低的學生容易產生畏難情緒,而一些水平較高的學生則認為題目有些陳舊,沒有反映最新的應用要求,導致學習興趣降低,教學效果不好;(2)由于編譯程序是一個系統程序,開發一個完整的編譯程序涉及高級程序設計語言、數據結構、算法分析、操作系統、匯編語言、軟件開發方法等領域許多內容的綜合運用。尤其是高級程序設計語言、軟件開發方法等課程,如果基礎不好,學生很難完成既定的任務,即使勉強完成,效果也不是很好:有些同學會抄襲他人的程序,有些同學會給出結構混亂的代碼。

筆者所在教研室實踐了“實例—階段—循環”的教學方法后,取得了較好的教學效果,在對該方法進行實踐、改進、再實踐的基礎上,提出“多層次—多目標—多效果”教學方法。該方法的中心思想是,針對不同水平的學生設定不同難度的題目,不同的題目有不同的要求,學生在不同的要求下達到不同的效果,從而激發每個學生的學習興趣,使每個學生都能通過學習而有所收獲和提高,真正達到培養創新型人才的目標。本方法對其他具有相似特點的課程也同樣適用。

下面從實驗準備、實驗實施、考核三個階段闡述“多層次—多目標—多效果”的“編譯原理”實踐課程教學方法實施的全過程。

1實驗準備

“編譯原理”實踐課程開設的目的是加深學生對編譯理論知識的理解,培養學生開發大型軟件的能力。為保證實踐課取得更好的效果,同時考慮到學生的整體水平和實踐課開設的時間,我們認為在正式進行實踐教學之前,應該使學生在以下三個方面做好準備:

一是編譯基礎理論知識的復習。目前,大多數高校的“編譯原理”理論教學安排在大三上學期進行,實踐教學安排在大三下學期進行。由于理論教學和實踐教學是分開進行的,因此常常會有一些基礎不好、知識掌握不扎實的學生將已經學過的知識忘記,還有的學生理論知識掌握得比較好,但無法在理論知識和實際軟件開發之間建立聯系。所以在學生正式動手之前,有必要由專業指導教師進行理論知識的講解,并通過一些淺顯易懂的例子說明如何在抽象理論和實際實現之間建立聯系,幫助學生明確任務需求。

二是高級程序設計語言編程能力的培養。高級程序設計語言的編譯程序是一個龐大的系統程序,工作量較大,學生必須熟練地掌握編譯的理論知識和程序設計技能。然而,筆者從幾年的實踐發現,有一部分學生沒能按時完成編譯實驗的原因是“高級語言程序設計”課程的學習不夠扎實,編程能力較弱。針對這一現象,我們加強了教師的輔導,即將開發編譯程序中可能用到的相關編程知識提前加以輔導,例如文件相關的操作、指針、數組、結構體等數據結構的設計和使用等,喚醒學生的記憶,提高編程的速度。

三是軟件開發方法的培訓。在以往的教學中,我們經常會遇到這樣的情況,即教師講解完實驗目的和要求之后,仍會有一小部分學生不知從何處下手,還有的學生一拿到題目就動手編程,根本不做分析和設計,代碼通不過測試時,又東一塊西一塊地對代碼進行修正,最后導致代碼一團糟,自己都看不懂。針對以上這些情況,我們倡導學生在實踐中嚴格采用軟件工程的思想進行設計和操作,實踐證明,效果較好。

2實驗實施

“編譯原理”實踐課程的主要內容是要求學生按照編譯程序功能結構的劃分,完成某個程序語言的詞法分析、語法分析、語義分析和代碼生成程序,從而熟悉各個階段的功能和經典算法。本方法在實施階段的重點主要體現在兩個方面:題目多樣化和實現工程化。

2.1題目多樣化

“編譯原理”實踐課程的目的是使學生在掌握編譯程序設計基本理論的基礎上,能夠針對具體的程序設計語言設計并開發出一個可用的編譯程序。由于當前流行的語言都比較龐大,不易處理,因此多數高校都采用小的實例語言模型的方法,較常用的實例語言有PL/0、SNL、tiny C、mini C等。前兩種是Pascal語言的子集,語言具有良好的結構性,但由于Pascal語言在教學和應用中已經很少使用,學生對其語法不熟悉,因此PL/0、SNL不適合繼續作為實例語言。C語言及其變種C++語言,以及近似的Java語言是應用中采用較多的語言,學生對其語法、程序結構、語言特性等都有一定了解,所以C語言的子集比較適合作為實踐課程的教學語言。但即使是C語言的子集,其編譯程序也是非常龐大的,一些基礎較差的學生仍然感覺比較吃力,無法完成整個程序,而對于一些基礎較好的學生,則認為當今主流的程序語言都是面向對象的,特別希望掌握面向對象語言的翻譯機制。

針對目前學生人數增多,學生質量參差不齊,教學質量和檔次得不到保證的情況,本文提出“多層次—多目標—多效果”的教學方法。首先由任課教師將題目分為較低難度、正常難度、較高難度三個等級,難度主要體現在實例語言的語法和語義功能上。

較低難度的語言是指具有表達式語法結構及算術運算、關系運算功能的語言,記為Le,由于沒有聲明部分,因此Le的語義比較簡單。其語法如下:

程序P ::= E

表達式E ::= c | id | (E) | E + E | E * E | E < E | E > E | E = E

正常難度的語言是指具有語句語法結構及子程序功能的語言,記為Ls,其語法如下:

程序P ::= D;S

聲明D ::= Dctv;Df

Dctv ::= Dc; Dt; Dv

Dc ::= const id C | Dc; Dc

Dt ::= type id T | Dt; Dt

Dv ::= var id T | Dv; Dv

Df ::= fun T id module | Df; Df

module ::= params D S

param ::= param id:T

params ::= param | param; params

語句 S ::= skip | ass(id,E) | read(id) | write(E) | if(E, S1, S2) | while(E,S)| seq(S1, S2) | block(Dctv,S) |

call(id, E1, …, En)

語言Ls在語言Le的基礎上,增加了聲明、語句、函數等功能,相應地增加了語義處理、代碼生成的難度和復雜性。

較高難度的語言是指加入面向對象機制的語言,記為Lo,Lo的詞法、語法分析與Ls的詞法、語法分析難度相當,但由于對象機制的加入,Lo的語義分析和代碼生成部分都要增加一些特殊的處理。Lo語法如下:

Prog ::= ClassDecList; VarDecPart; Body

ClassDecList ::= ClassDec |

ClassDec ; ClassDecList

ClassDec::= class cname ;

[super cname;]

[insvar IVDecList;]

[insmethod IMDecList]

end

IVDecList ::= IVDec | IVDec; IVDecList

IVDec ::= VarDec

IMDecList ::= IMDec | IMDec; IMDecList

IMDec ::= Type mid ? ParamDecPart ? FunBody

ParamDecPart ::= VarDecPart

FunBody ::= VarDecPart; Body

VarDecPart ::= var VarDecList

VarDecList ::= VarDec | VarDec; VarDecList

VarDec ::= id:Type

Type::= cname | integer | bool

Body ::= begin StmList end

StmList ::= Stm | Stm; StmList

Stm ::= new?id, cname? |

receiver?mid?RParamList? | id = Exp |

if (Exp, StmList, StmList)| delete (id)

RParamList ::= Exp | Exp, RParamList

receiver ::= id | self

Exp ::= n | x | tt | ff | id.id | Exp+Exp | Exp

由于在題目選擇上增加了靈活性,學生可以根據自己的實力和興趣選做不同的題目,極大地提高了他們的學習積極性。同時對于各個題目以及各個題目每個階段的實現方案,學生可以自由發揮,充分發揮想象力和創造力,無論對于基礎較好的學生還是一般的學生,都能達到很好的鍛煉目的。

2.2實現工程化

實踐課的目的是使學生能夠真正運用所學的知識去解決實際問題,是理論知識的升華。這就要求學生在掌握編譯原理的基礎上,能夠針對具體的程序語言設計并開發出可用的編譯程序。作為一個龐大而復雜的系統程序,編譯程序的開發應該遵循軟件工程的思想和規范的軟件開發過程,才能保證開發出的編譯程序具有較好的質量和可維護性,同時實踐的過程也是對學生軟件開發實戰的一次演練。具體措施如下:

(1) 由于編譯程序較大,課上時間又有限,所以實驗采用分組進行的方式,每個小組由4~5名學生組成,分工協作共同完成。在分工協作的過程中,特別強調明確任務劃分,統一命名規則,重視接口設計等關鍵問題。

(2) 在開發過程中,遵循需求、設計、實現、測試等標準的軟件過程,要求學生在相應的階段給出相應的文檔,明確每個階段要完成的任務,以及相應的解決方案。

3實驗考核

“編譯原理”實踐課程的一個難點在于如何對成績進行評定,因為任何一個語言的編譯程序都存在代碼較長、無法當堂測試的情況。因此,常規考察都是要求學生每個編譯階段提交一個階段性程序或在最后階段提交一個完整的編譯程序。經過幾年的教學實踐,我們發現考核中經常會出現部分代碼雷同和相似的現象,對于成績的評定和考試的公平性有一定的阻礙和影響。采用“多層次—多目標—多效果”的教學方法后,更是對成績的公平性提出了較大的挑戰。顯然,絕對的公平是不存在的,只能在盡可能大的范圍內保證公平。本著公開、公正的原則,我們提出階段考核和匯總考核相結合的成績評定方法,并且采用加權形式,不同難度的題目,其權值也不同。不論哪種難度的題目,都按照編譯過程劃分成幾個階段,并規定每個階段完成的時間。每到一個規定時間,就對學生的當前階段成果進行考核,提供合理化建議,并對考核結果進行記錄,作為匯總考核的參考。在匯總考核階段,采取公開答辯的形式,答辯以小組為單位進行,每個小組負責給指導老師和其他同學展示自己編寫的程序,并講解程序的功能、工作過程和創新點。通過以上措施,較好地避免了以往考核中經常出現的剽竊程序或偷懶現象,同時幫助學生樹立了榮譽感、責任心和成就感,將人格、品德培養融入教學中,真正做到教書育人。

4結語

筆者經過在本校近三屆學生中開展“多層次—多目標—多效果”教學方法的教學活動后,發現教學效果較以往有了很大的提高,不同層次的學生實現了不同的實踐目標,不同的實踐目標鍛煉了不同的能力。任課教師和學生普遍反映,由于題目設定科學合理,極大地提高了學生的學習興趣,興趣帶動了能力的提高,能力的提高促進了創新性成果的產生,形成了很好的良性循環。

參考文獻:

[1] 金成植. 編譯原理實現技術[M]. 北京:高等教育出版社,2007.

[2] 劉磊. 編譯程序的設計與實現[M]. 北京:高等教育出版社,2003.

[3] 趙曦.“編譯原理”實驗教學改革初探[J]. 實驗室科學,2006,8(4):26-27.

[4] 朱莉. 改革實驗教學,培養創新能力[J]. 實驗技術與管理,2003,20(1):70-72.

[5] 方凱晴. 計算機專業實驗教學改革的探討[J]. 實驗室研究與探索,2002,21(1):6-8.

[6] 劉平安. 改革實踐性教學模式 加強學生工程素質培養[J]. 機械工業高教研究. 2002(4):42-45.

[7] 張晶,楊冬,郭德貴,等. 編譯原理實踐課程教學方法研究[J]. 吉林大學學報:信息科學版,2005,8(23):142-144.

猜你喜歡
教學模式
群文閱讀教學模式探討
“思”以貫之“學、練、賽、評”教學模式的實踐探索
體育教學(2022年4期)2022-05-05 21:26:58
關于應用型復合人才培養的教學模式探討
遼寧絲綢(2022年1期)2022-03-29 00:59:06
特殊教育學校在線教學模式探索與實踐
河北農機(2020年10期)2020-12-14 03:14:40
“以讀帶寫,以寫促讀”教學模式的實踐探索
甘肅教育(2020年12期)2020-04-13 06:25:48
“認知-遷移”教學模式在高年級閱讀教學中的應用
“一精三多”教學模式的探索與實踐
“導航杯”實踐教學模式的做法與成效
學習月刊(2015年18期)2015-07-09 05:41:22
5E教學模式對我國中學數學教學的啟示
高中生物教學模式改革之我見
散文百家(2014年11期)2014-08-21 07:17:00
主站蜘蛛池模板: 欧美一级99在线观看国产| 91亚洲视频下载| 国产精品99久久久| 99九九成人免费视频精品| 欧美黑人欧美精品刺激| 亚洲精品无码在线播放网站| 国产无码高清视频不卡| 很黄的网站在线观看| 国产精品无码AV中文| 国产在线观看第二页| 亚洲Aⅴ无码专区在线观看q| 欧美激情,国产精品| 四虎影视8848永久精品| 她的性爱视频| 波多野结衣AV无码久久一区| 欧美精品不卡| 成人无码区免费视频网站蜜臀| 欧美成人午夜视频免看| 国产成人盗摄精品| 日韩无码真实干出血视频| 国产91线观看| 美女毛片在线| 久久人妻系列无码一区| 久久精品aⅴ无码中文字幕| 精品自拍视频在线观看| 亚洲精品无码不卡在线播放| 国产欧美在线| 亚洲视频无码| 91精品伊人久久大香线蕉| 亚洲精品自拍区在线观看| 精品福利视频导航| 午夜精品久久久久久久99热下载| 激情综合五月网| 午夜影院a级片| 国产最新无码专区在线| 亚洲午夜国产精品无卡| 国产人成在线观看| 国产主播在线观看| 2021国产精品自产拍在线| 亚洲一区精品视频在线| 国产91麻豆视频| 午夜视频日本| 国产尤物视频网址导航| 国产国语一级毛片| 婷婷色一区二区三区| 欧美激情综合一区二区| 又粗又大又爽又紧免费视频| 激情六月丁香婷婷| 亚洲欧美不卡中文字幕| 97se亚洲综合不卡| 激情综合激情| 蜜桃视频一区二区三区| 成人国产免费| 不卡无码网| 97精品国产高清久久久久蜜芽| 欧美精品v| 国产乱人激情H在线观看| 超清无码一区二区三区| 超碰91免费人妻| 91网址在线播放| 黄色网址免费在线| 亚洲av色吊丝无码| 日韩一区二区三免费高清| 99re热精品视频国产免费| 欧美伦理一区| 99久久免费精品特色大片| 国产高清毛片| 久草国产在线观看| 黄色网站不卡无码| 欧美色综合网站| 98精品全国免费观看视频| 亚洲精品成人福利在线电影| 亚洲资源站av无码网址| 国产婬乱a一级毛片多女| 久久这里只有精品国产99| 亚洲—日韩aV在线| 国产一区二区免费播放| 亚洲天堂.com| 98超碰在线观看| 伊人色在线视频| 久久国产精品夜色| 夜夜操国产|