楊柳 魏秀杰 肖楠
摘要:針對編譯原理課程在計(jì)算機(jī)本科教學(xué)中難講、難學(xué)的特點(diǎn),從理論教學(xué)、教學(xué)方法、實(shí)踐能力培養(yǎng)等方面進(jìn)行了探索,提出了相應(yīng)的解決方法。
關(guān)鍵詞:編譯原理;教學(xué)方法;實(shí)踐能力
編譯原理課程是計(jì)算機(jī)科學(xué)與技術(shù)學(xué)科下各專業(yè)的核心專業(yè)課程,其教學(xué)目標(biāo)是通過教學(xué)實(shí)踐訓(xùn)練學(xué)生的抽象思維能力和動手能力,旨在使學(xué)生掌握程序設(shè)計(jì)語言的形式化描述和編譯的基本理論、原理和技術(shù),并對編譯程序有較為具體的認(rèn)識。使學(xué)生能運(yùn)用所學(xué)過的基本知識、著手開發(fā)系統(tǒng)程序,為今后的工作(理論研究和技術(shù)開發(fā))打下基礎(chǔ)。但由于其內(nèi)容具有較強(qiáng)的理論性和實(shí)踐性,學(xué)生在學(xué)習(xí)過程中感到內(nèi)容抽象、算法復(fù)雜、難于理解,因此“編譯原理”被普遍看作是計(jì)算機(jī)本科教學(xué)中最難講解、最難學(xué)習(xí)的課程。針對這種情況,如何提高這門課程的教學(xué)效果,是一個值得探討的問題。筆者近年來一直從事“編譯原理”課程的教學(xué),對如何改進(jìn)教學(xué)方法和提高教學(xué)效果做了一些研究和探索。
1 明確教學(xué)目標(biāo),增強(qiáng)學(xué)習(xí)興趣
對于編譯原理這門課程,普通高校本科的教學(xué)目標(biāo)是:通過編程語言實(shí)現(xiàn)技術(shù)的學(xué)習(xí),提高學(xué)習(xí)編程語言及在程序開發(fā)中應(yīng)用編程語言的能力,具體解釋如下:提高學(xué)習(xí)、理解和使用編程語言的能力;提高程序排錯的能力,即快速理解、定位和解決在程序開發(fā)與程序運(yùn)行中遇到的問題的能力;提高編寫高質(zhì)量代碼的能力。
另外,由于編譯程序,由于編譯程序作為系統(tǒng)軟件在性能上具有嚴(yán)格的要求,這使得它所使用的算法經(jīng)典、高效,而這些算法、思想和實(shí)現(xiàn)技術(shù)也可廣泛地應(yīng)用于一般軟件的設(shè)計(jì)實(shí)現(xiàn)。如正規(guī)式和有窮自動機(jī)在文本編輯器中的廣泛應(yīng)用,有窮自動機(jī)在字符串查找中的運(yùn)用,必經(jīng)節(jié)點(diǎn)算法在網(wǎng)絡(luò)中的運(yùn)用,由文法來定義網(wǎng)絡(luò)協(xié)議等。在教學(xué)中,可以鼓勵學(xué)生嘗試將編譯程序中的各種算法和技術(shù)應(yīng)用到各個應(yīng)用領(lǐng)域,從而激發(fā)學(xué)生的創(chuàng)造性思維,培養(yǎng)學(xué)生的創(chuàng)新能力,為今后的學(xué)習(xí)打下堅(jiān)實(shí)的基礎(chǔ)。
2 運(yùn)用多種教學(xué)方法,提高教學(xué)效果
“編譯原理”課程具有很多概念和定理,再加上大量復(fù)雜的算法,抽象程度很高,因此要想獲得良好的教學(xué)效果,必須借助形象化教學(xué)手段,使抽象的理論具體化。
2.1 抽象內(nèi)容形象化
編譯程序的主要功能是把用各種語言編寫的源程序翻譯為等價的目標(biāo)程序。既然編譯過程是一種語言的翻譯過程,因此我們就可將編譯程序的工作過程與通常外語資料的翻譯過程進(jìn)行類比,這對于學(xué)生更直觀地了解一個編譯程序一般應(yīng)由哪些部分組成,以及各個組成部分應(yīng)如何進(jìn)行工作等是有助益的。如何進(jìn)行翻譯。概括地講無非是做兩方面的工作;一是進(jìn)行分析,二是進(jìn)行綜合。所謂分析,就是從第一行的第一個字母開始.依次閱讀原文中的各個符號,逐個識別出原文中的各個單詞,然后根據(jù)語法規(guī)則進(jìn)行語法分析,即分析原文中如何由單詞組 成短語和句子,以及句子的種類特點(diǎn)等。此外,在識別單詞和進(jìn)行語法分析的過程中,還要不時地查閱字典,做語法正確性的檢查,進(jìn)行相應(yīng)的語義分析,并做一些必要的信息加工作等等。所謂綜合,就是根據(jù)上述分析所得到的信息,擬定譯稿,進(jìn)行修辭加工,最后寫出譯文。
類似地,編譯程序在其工作過程中,也需做兩方面的工作,即先分析源程序,然后再綜合為目標(biāo)程序。為了便于學(xué)生理解編譯程序在此兩方面應(yīng)包括的工作環(huán)節(jié),將源程序的編譯和外文資料的翻譯兩過程的主要工作列表對比:
通過將自然語言的翻譯過程與編譯程序的工作過程進(jìn)行對比,加深了學(xué)生的印象,又有助于理解為什么將編譯過程劃分成這幾個階段。
2.2 注重教學(xué)方法的靈活運(yùn)用
在師生互動中完成教學(xué)過程 充分發(fā)揮學(xué)生的學(xué)習(xí)主動性,注重啟發(fā)式教學(xué),注重提高學(xué)生的素質(zhì)、培養(yǎng)學(xué)生的創(chuàng)新能力。為及時了解教學(xué)效果和教學(xué)過程中存在的問題,我們在課堂上、課后答疑過程中收集學(xué)生對教學(xué)的反饋意見,并有針對性地予以改進(jìn),使教學(xué)質(zhì)量在師生互動中逐步得到提高。
2.3 實(shí)施多媒體輔助教學(xué)形式
“編譯原理”是一門理論性強(qiáng)的課程,為了使抽象問題形象化,便于學(xué)生對知識點(diǎn)的理解和運(yùn)用,利用多媒體手段,把原理性的重點(diǎn)知識以動畫、圖形形式呈現(xiàn)給學(xué)生,把知識講解化靜為動,培養(yǎng)和激發(fā)學(xué)生的學(xué)習(xí)興趣。在教學(xué)中,對于一些不容易理解的內(nèi)容,可以通過一個動態(tài)的模擬方式來進(jìn)行講解。既可在課堂上演示,也可在課后由學(xué)生自己觀摩,有助于加深學(xué)生對所學(xué)知識的理解。 同時向?qū)W生推薦網(wǎng)上優(yōu)秀的編譯原理課程教學(xué)網(wǎng)站、電子書、算法等資源,拓寬學(xué)生視野。
2.4 探索網(wǎng)絡(luò)教學(xué)方法,提高教學(xué)水平
根據(jù)“編譯原理”課程的特點(diǎn),進(jìn)行網(wǎng)絡(luò)教學(xué)資源平臺的建設(shè),為學(xué)生的學(xué)習(xí)提供豐富的參考資料和教學(xué)指導(dǎo)。通過網(wǎng)絡(luò)教學(xué)平臺綜合學(xué)生問題,在歸納分析的基礎(chǔ)上,不斷改進(jìn)教學(xué)。
3 注重實(shí)踐能力的培養(yǎng)
教學(xué)中,理論與實(shí)踐是相輔相成,互為促進(jìn)的,因此編譯實(shí)驗(yàn)內(nèi)容的合理設(shè)置對搞好整個編譯教學(xué)起著至關(guān)重要的作用。通過實(shí)驗(yàn),學(xué)生能夠更好地理解課程中的基本概念和原理,通過自己動手提高實(shí)踐能力。由于編譯過程每個階段都有特定的方法和技術(shù),故可以針對各個階段設(shè)計(jì)不同的實(shí)驗(yàn),通常這一類的實(shí)驗(yàn)多為驗(yàn)證性的,規(guī)模相對較小,主要是對一、二個知識點(diǎn)和算法的實(shí)踐訓(xùn)練,可以根據(jù)理論教學(xué)的情況靈活安排,這部分實(shí)驗(yàn)內(nèi)容,以驗(yàn)證知識、幫助理解基本知識和實(shí)驗(yàn)基本技能為主。二是設(shè)計(jì)型實(shí)驗(yàn),這類試驗(yàn)可以針對某一語言設(shè)計(jì)和實(shí)現(xiàn)一個相對完整、獨(dú)立的編譯器,或者研習(xí)現(xiàn)有的編譯程序,對其進(jìn)行擴(kuò)充。這種方式的難度根據(jù)語言規(guī)模的不同以及學(xué)生擴(kuò)充程度的不同而有差別,彈性較大,有利于加強(qiáng)學(xué)生對編譯程序的整體認(rèn)識,且能充分鍛煉學(xué)生的編程能力。
4 結(jié)束語
作為ACM 規(guī)定的計(jì)算機(jī)科學(xué)主干課程之一,編譯原理在計(jì)算機(jī)學(xué)科的教學(xué)體系中占有重要地位。作為專業(yè)課教師必須不斷更新理論教學(xué)和實(shí)驗(yàn)教學(xué)的方法,激發(fā)學(xué)生的學(xué)習(xí)興趣和和積極性,努力提高教學(xué)質(zhì)量和教研水平。
參考文獻(xiàn)
[1]竇亮楊,宗源,王婷婷.編譯實(shí)驗(yàn)課程的教學(xué)研究與實(shí)踐[J].計(jì)算機(jī)教育.2009(24) : 8-11.
[2]林奕,康慕寧.軟件教育新形勢下的編譯原理課程體系改革[J].計(jì)算機(jī)教育,2011(11):28-32.
[3]賀汛,吳春寒. 編譯原理教學(xué)中創(chuàng)造性思維能力的培養(yǎng)[J].計(jì)算機(jī)時代,2010(4):54-58.
[4]沈來信,韓靜,楊帆.編譯原理課程的教學(xué)實(shí)踐[J].黃山學(xué)院學(xué)報(bào),2010(5):133-134.
作者簡介:楊柳,女,副教授,主要研究方向:網(wǎng)絡(luò)信息處理,智能規(guī)劃。