- 相關(guān)推薦
編譯原理課程的教學(xué)分析
計算機語(yǔ)言之所以能由單一的機器語(yǔ)言發(fā)展到現今的多種高級語(yǔ)言,就是因為有了編譯技術(shù),它是計算機科學(xué)與技術(shù)中發(fā)展最迅速、最成熟的一個(gè)分支!熬幾g原理”是計算機專(zhuān)業(yè)中一門(mén)非常有用的核心課程,綜合運用編譯理論及多門(mén)前修課程如“數據結構”、“離散數學(xué)”、“操作系統”等課程的相關(guān)知識來(lái)解決高級語(yǔ)言在機器上編譯的一門(mén)課程。該課程的目的是在于系統地向學(xué)生講述編譯系統的結構、工作流程以及編譯程序各組成部分的設計原理和實(shí)現技術(shù),使學(xué)生通過(guò)本課程的學(xué)習,既掌握編譯理論和方法方面的基本知識,同時(shí)也獲得設計、分析和移植編譯程序方面的初步能力,進(jìn)而提高學(xué)生設計多種軟件的素質(zhì)。
1當前教學(xué)中存在的問(wèn)題
由于這門(mén)課程理論性強,內容豐富抽象,具有嚴密的邏輯性,使用到其它課程的知識較多,因此成為計算機專(zhuān)業(yè)諸課程中既難教又難學(xué)的一門(mén)課程。目前該課程在教學(xué)過(guò)程中主要存在以下問(wèn)題:
1)課程內容抽象難理解
編譯程序不同于一般的應用程序,是一個(gè)十分龐大和復雜的系統軟件,它所包含的理論知識較多,抽象度也較高,要求教師在有限的課時(shí)內將課程內容講解清楚,并使學(xué)生接受理解是有難度的。
2)基于面向過(guò)程語(yǔ)言的描述模型
目前,這門(mén)課程中的算法和模型描述是用PASCAL語(yǔ)言或者C語(yǔ)言等面向過(guò)程語(yǔ)言。雖然個(gè)別教材加入了少量關(guān)于面向對象語(yǔ)言編譯技術(shù)的內容,那也是稍加點(diǎn)綴而已,用途較小。然而,面向對象語(yǔ)言已經(jīng)成了高校計算機教學(xué)的主流語(yǔ)言,社會(huì )上大量使用的也是面向對象語(yǔ)言,而我們的編譯原理教學(xué)仍然沿襲舊的面向過(guò)程語(yǔ)言,這種現象嚴重脫離了計算機技術(shù)發(fā)展和社會(huì )實(shí)際需要。
3)課程實(shí)驗設計不合理
目前,大多數高校在“編譯原理”課程的實(shí)驗內容上基本上都是要求學(xué)生能上機實(shí)現一個(gè)小型模型語(yǔ)言的完整編譯程序,或者是分四個(gè)單獨的實(shí)驗(詞法一個(gè)實(shí)驗,語(yǔ)法三個(gè)實(shí)驗),它們的目的是讓學(xué)生加深理解一些編譯理論與算法,這對于一部分學(xué)生來(lái)說(shuō)是不能完成的任務(wù),也不能激發(fā)他們的興趣(他們認為學(xué)習編譯原理就是為了設計編譯器),造成很大部分學(xué)生在動(dòng)手之前就早早放棄了努力,也就不能達到預期的實(shí)驗效果。
4)教學(xué)手段陳舊
目前,“編譯原理”課程主要以理論教學(xué)為主,課時(shí)主要用于形式語(yǔ)言理論與各種語(yǔ)法分析算法、語(yǔ)義分析技術(shù)的講授上,缺乏對實(shí)際編譯器的分析。同時(shí),在講解的時(shí)候一般沒(méi)有輔之以其它形象生動(dòng)的教學(xué)手段,對學(xué)生是采用“灌輸式”的教學(xué)模式,而沒(méi)有采用“啟發(fā)式”、“討論式”等多種教學(xué)模式,因此學(xué)生覺(jué)得授課內容枯燥乏味,激不起他們學(xué)習的興趣。
5)教學(xué)大綱統一
目前,每個(gè)高校計算機相關(guān)專(zhuān)業(yè)包括計算機科學(xué)與技術(shù)、軟件工程、網(wǎng)絡(luò )工程等,學(xué)生也存在不同的層次包括統招的“一本”、“二本”學(xué)生,以及“專(zhuān)升本”學(xué)生等。不同專(zhuān)業(yè)有不同的培養目標,不同的生源造成學(xué)生知識背景和自身素質(zhì)也有差異。在這種情況下,在“編譯原理”課程教學(xué)過(guò)程中實(shí)行統一的教學(xué)大綱顯然不合適。
6)學(xué)生學(xué)習興趣不濃
目前,學(xué)生普遍認為學(xué)習編譯原理就是為了設計編譯器,而大部分學(xué)生今后從事編譯器設計工作的可能性較小,因此覺(jué)得沒(méi)必要學(xué)。另外,目前面向對象的程序設計語(yǔ)言已經(jīng)成為了主流,認為課程主要講授面向過(guò)程的程序設計語(yǔ)言的處理已經(jīng)落伍,因此失去了學(xué)習興趣。
形成以上這些問(wèn)題的原因既有主觀(guān)的也有客觀(guān)的,這些問(wèn)題在我校的編譯原理教學(xué)過(guò)程中也都不同程度地存在。為此,對“編譯原理”課程的教學(xué)內容和教學(xué)方法進(jìn)行探討是十分必要的、有意義的。
2需要解決的問(wèn)題
1)課程內容的調整
“編譯原理”課程內容豐富抽象,理論性和邏輯性很強,所以很多學(xué)生在學(xué)習時(shí)普遍感到枯燥、乏味,難理解,激不起學(xué)習興趣。為此,需要對課程內容合理安排以便收到較好的教學(xué)效果。
a)抓住重點(diǎn),分清主次
由于課程內容涉及較多,學(xué)生往往抓不住重點(diǎn),分不清主次,結果導致勞而無(wú)功。為此,需要根據專(zhuān)業(yè)的不同,學(xué)生層次的不同,在不影響對編譯系統理解的情況下,合理安排授課內容,切不可造成“統一重點(diǎn)的教學(xué)”、“統一層次的教學(xué)”、“統一大綱的教學(xué)”現象。
b)范例式編譯器的剖析
為了幫助學(xué)生對編譯思想和方法的理解,應在教學(xué)過(guò)程中增加一部分內容,即對一個(gè)范例式編譯器進(jìn)行剖析。該范例式編譯器應采用教學(xué)中涉及到的典型編譯思想與方法。學(xué)生在教師的指導下對實(shí)際編譯器代碼進(jìn)行閱讀,將使學(xué)生對抽象的編譯理論與算法有更深刻的認識,從而達到較好的教學(xué)效果。
c)面向對象式語(yǔ)言的描述模型
當前,面向對象式語(yǔ)言已成為主流,而目前課程中的內容卻是圍繞面向過(guò)程式語(yǔ)言展開(kāi)的。為此,需要在教學(xué)過(guò)程中增加一部分內容,即選擇某個(gè)對象式語(yǔ)言來(lái)描述典型的編譯算法。但就目前來(lái)看,以面向對象語(yǔ)言作為源語(yǔ)言來(lái)重新組織編譯原理的教學(xué)內容并不合適。在教學(xué)過(guò)程中應向學(xué)生指明這一點(diǎn),使之有個(gè)正確的認識。
2)實(shí)踐環(huán)節的設計
“編譯原理”也是一門(mén)實(shí)踐性較強的課程,只有通過(guò)實(shí)踐環(huán)節才能讓學(xué)生加深對抽象理論的理解,培養其分析、設計軟件的能力。為此,必須重視實(shí)踐環(huán)節的教學(xué),精心設計實(shí)驗方案,合理組織實(shí)踐訓練(對于不同專(zhuān)業(yè)培養目標、不同類(lèi)別學(xué)生素質(zhì)差異,需設計不同的實(shí)驗方案)。
a)設計合適的實(shí)驗內容
目前,大多數高校在“編譯原理”課程的實(shí)驗內容上基本上都是要求學(xué)生能上機實(shí)現一個(gè)小型模型語(yǔ)言的完整編譯程序,或者是分四個(gè)單獨的實(shí)驗(詞法一個(gè)實(shí)驗,語(yǔ)法三個(gè)實(shí)驗)。這樣的實(shí)驗內容存在一個(gè)缺陷就是不能充分激發(fā)學(xué)生的學(xué)習興趣,因為他們認為學(xué)習編譯就是為設計編譯器,而大部分學(xué)生以后從事這方面工作的可能性較小。為此,我們需要設計一個(gè)能運用編譯理論和技術(shù)去解決實(shí)際問(wèn)題的實(shí)驗。例如,可以給定一個(gè)受限漢語(yǔ)的子集,引導學(xué)生用文法去描述它,然后把它應用到一個(gè)簡(jiǎn)單的自然語(yǔ)言查詢(xún)的程序設計中去。
b)合理安排實(shí)驗課時(shí)間
實(shí)驗時(shí)間安排要具有靈活性,不要一周或兩周一次實(shí)驗,這樣可能和授課的理論內容脫節?梢苑謩e在每個(gè)實(shí)驗的相關(guān)內容講解完后安排這四個(gè)實(shí)驗,并要求學(xué)生記錄下每次實(shí)驗的輸入和輸出形式,實(shí)現理論與實(shí)踐的結合。
c)改進(jìn)實(shí)驗課教學(xué)方法
為了讓實(shí)驗能達到預期的效果,需要做以下工作:一是老師在實(shí)驗前要將準備好的實(shí)驗資料發(fā)放給學(xué)生,讓學(xué)生利用業(yè)余時(shí)間分析、設計實(shí)驗內容;二是老師指導學(xué)生一起討論實(shí)驗所涉及的原理、程序模塊的功能和部分變量的用途;三是學(xué)生在理解的前提下,開(kāi)始進(jìn)行實(shí)驗,老師隨時(shí)進(jìn)行監督指導。最后,在實(shí)驗完成后,老師一定要檢查學(xué)生的完成情況,并給予記錄,學(xué)生則要記錄下所有的實(shí)驗結果。
3)教學(xué)方法的改進(jìn)
“編譯原理”課程抽象性和理論性較高,學(xué)生普遍感到內容難理解,更不能運用編譯技術(shù)所涉及到的思想和方法去解決其他專(zhuān)業(yè)問(wèn)題,學(xué)起來(lái)枯燥、無(wú)味。為此,需要靈活運用多種教學(xué)方法,以激發(fā)他們的學(xué)習興趣和積極性,培養其分析、解決實(shí)際問(wèn)題的能力。
a)多媒體輔助教學(xué)
“編譯原理”課程涉及到形式語(yǔ)言與自動(dòng)機理論,主要包括一些經(jīng)典的語(yǔ)法、語(yǔ)義分析算法。這些理論和算法抽象復雜,不易理解。為此,需要借助多種輔助教學(xué)手段,如CAI課件、CAI教學(xué)系統和教學(xué)網(wǎng)站等。這樣可以把抽象的理論形象化,把知識講解化靜為動(dòng),寓教于樂(lè ),培養和激發(fā)學(xué)生的學(xué)習興趣。
b)師生互動(dòng)式教學(xué)
教學(xué)是由“教”與“學(xué)”兩方面構成的,師生互動(dòng)才能“教”、“學(xué)”相長(cháng),提高教學(xué)效果。在課堂上,應采用“啟發(fā)式”、“討論式”、“提問(wèn)式”等多種教學(xué)模式,以發(fā)散學(xué)生的思維,激發(fā)他們的思考能力;在課后,應通過(guò)教學(xué)網(wǎng)站發(fā)放調查問(wèn)卷等形式及時(shí)獲取學(xué)生對教學(xué)活動(dòng)的意見(jiàn)與建議,學(xué)生也可以通過(guò)BBS系統進(jìn)行交流,以便及時(shí)發(fā)現問(wèn)題進(jìn)而改進(jìn)教學(xué)方法。還可以指定課后的時(shí)間組織小型的師生面對面交流,一方面是答疑,一方面也可以就編譯領(lǐng)域的一些新問(wèn)題、新動(dòng)向進(jìn)行研討,進(jìn)一步激發(fā)學(xué)生的學(xué)習積極性。
4)教材建設和CAI課件制作
目前為止,國內外已有不少關(guān)于“編譯原理”的經(jīng)典教材,因而我們暫時(shí)不打算重新編寫(xiě)授課教材。但從以上分析可知,目前的課程實(shí)驗內容設計卻各不相同,沒(méi)有合適的實(shí)驗教材,因此有必要根據我院特色來(lái)組織編寫(xiě)“編譯原理”課程實(shí)驗教材。同時(shí),我們也將依據我院教學(xué)實(shí)際,重新合理組織教學(xué)內容,圖文并茂,制作精良的CAI課件,以減少板書(shū)的時(shí)間,提高授課效率。
5)教學(xué)網(wǎng)站的建設
開(kāi)發(fā)“編譯原理”網(wǎng)絡(luò )教學(xué)平臺,構建良好的網(wǎng)絡(luò )輔助教學(xué)環(huán)境,實(shí)現學(xué)習、答疑、作業(yè)和考試等各個(gè)教學(xué)環(huán)節的網(wǎng)絡(luò )化,教師和學(xué)生可以很方便的利用該平臺完成幾乎所有教學(xué)活動(dòng),本課程教學(xué)網(wǎng)站主要將分四大模塊:
a)基本信息
包括課程負責人、課程主講人、教學(xué)隊伍、自我評價(jià)、課程建設規劃、課程教學(xué)錄像等相關(guān)信息。
b)課程建設
課程概況:課程簡(jiǎn)介、課程大綱、教學(xué)日歷、教材和參考文獻。
教學(xué)資源:電子教材、電子課件(PPT)、電子課件、參考教案、例題源代碼、習題答案、考試樣卷及參考答案。
實(shí)驗教學(xué):實(shí)驗教學(xué)大綱、實(shí)驗內容、實(shí)驗指導。
在線(xiàn)考試:為學(xué)生提供了模擬筆試、模擬機試和在線(xiàn)考試,實(shí)現了自動(dòng)組卷和評分。
作業(yè)練習:提供了各章的練習題、單元測試題。
作業(yè)提交:主要提供了作業(yè)的發(fā)布與提交等功能。
c)BBS論壇
提供學(xué)生、老師相互之間的交流平臺,以便及時(shí)發(fā)現問(wèn)題進(jìn)而改進(jìn)教學(xué)方法和內容。
d)問(wèn)卷調查
在課后,發(fā)放調查問(wèn)卷及時(shí)獲取學(xué)生對教學(xué)活動(dòng)的意見(jiàn)與建議。
6)CAI教學(xué)系統的研制
CAI教學(xué)系統是輔助教學(xué)的一重要手段,通過(guò)它可以幫助學(xué)生加深對編譯思想和方法的理解與運用,進(jìn)而培養和激發(fā)他們的學(xué)習興趣。我們將考慮按照圖1所示的系統結構圖來(lái)設計“編譯原理”課程的CAI教學(xué)系統。
基本知識播放:提供每章的基本知識點(diǎn)的查詢(xún)和一些基本知識點(diǎn)的程序實(shí)現等。
編譯過(guò)程演示:這是CAI教學(xué)系統主要模塊,提供了詞法、語(yǔ)法、語(yǔ)義分析算法的動(dòng)態(tài)演示,而且還要動(dòng)態(tài)演示中間代碼生成、中間代碼優(yōu)化和目標代碼生成的執行過(guò)程。
自我測試:提供題庫,讓學(xué)生測試自己對所學(xué)知識的掌握情況。
系統維護:隨著(zhù)編譯技術(shù)的發(fā)展,知識的不斷更新,會(huì )出現一些新的概念和算法,因此系統也要隨時(shí)增加新的知識點(diǎn)。另外,隨著(zhù)系統的運行,可能會(huì )發(fā)現一些不正確的地方,也需要及時(shí)修改。
圖1 CAI教學(xué)系統主要模塊
3結束語(yǔ)
“編譯原理”是計算機專(zhuān)業(yè)中一門(mén)重要的課程,通過(guò)本課程的學(xué)習,可以使學(xué)生獲得設計、分析和移植編譯程序方面的初步能力。結合實(shí)際教學(xué)過(guò)程,本文分析了“編譯原理”課程教學(xué)中所遇到的六個(gè)問(wèn)題,探討了需要解決的五個(gè)問(wèn)題,以期望在今后的教學(xué)中能達到較好的效果。
【編譯原理課程的教學(xué)分析】相關(guān)文章:
計算機專(zhuān)業(yè)是否需要開(kāi)設編譯原理課程07-03
編譯原理語(yǔ)法分析上機實(shí)驗讀書(shū)工程匯報06-28
編譯原理對職業(yè)生涯有怎樣的幫助?07-10
化工原理課程設計教學(xué)論文模板07-05
微機原理課程設計04-20
教材分析與導入設計原理07-02
運動(dòng)減肥分析及原理06-06
色彩搭配原理分析及技巧06-22