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