- 相關(guān)推薦
編譯原理實(shí)驗課程教學(xué)設計的改進(jìn)論文
編譯原理課程是計算機科學(xué)與技術(shù)專(zhuān)業(yè)的重要專(zhuān)業(yè)課之一,課程內容抽象,理論性較強,學(xué)生普遍反應難學(xué)難懂,為此設置一定課時(shí)的實(shí)驗課,有助于幫助學(xué)生深入理解概念,提高學(xué)生的邏輯思維能力、實(shí)踐動(dòng)手能力,有助于切實(shí)有效地提高學(xué)生的專(zhuān)業(yè)素質(zhì)。目前編譯原理課程的實(shí)驗設計通常是要求學(xué)生實(shí)現一個(gè)比較完整的編譯程序,或者將其拆分成詞法分析實(shí)驗、語(yǔ)法分析實(shí)驗和語(yǔ)義分析實(shí)驗等幾個(gè)部分,實(shí)驗內容具有一定的難度,讓很多學(xué)生知難而退,難以達到預期的實(shí)驗效果。究其原因是在實(shí)驗設計上與學(xué)生的實(shí)際情況之間出現了諸多偏差,需要對實(shí)驗的設計和組織進(jìn)行改進(jìn),以更好地提高編譯原理實(shí)驗課的教學(xué)效果。
1編譯課程實(shí)驗的問(wèn)題
1.1學(xué)生對課程實(shí)驗定位存在認知誤區
在教學(xué)實(shí)踐中發(fā)現很多學(xué)生對編譯原理實(shí)驗課程的認識上存在很多誤區,這些認識誤區如果不加以及時(shí)糾正,加上課程內容抽象、邏輯性強等特點(diǎn),很容易加重學(xué)生的畏難情緒,產(chǎn)生一系列不利于課程學(xué)習的消極負面影響。
一種認識誤區是簡(jiǎn)單地認為編譯原理的學(xué)習目的就是設計和開(kāi)發(fā)編譯器,認為畢業(yè)后很少有從事編譯器研發(fā)的機會(huì ),所以得出課程學(xué)了沒(méi)用的錯誤結論。實(shí)際上編譯原理包括的形式語(yǔ)言、自動(dòng)機理論等語(yǔ)言定義、翻譯與實(shí)現的基礎知識,可以讓學(xué)生領(lǐng)悟到計算機理論的精髓,可以讓學(xué)生從程序編譯的角度重新審視軟件的開(kāi)發(fā),有助于提高學(xué)生對軟件設計開(kāi)發(fā)的認識,對于今后從事應用軟件、語(yǔ)言開(kāi)發(fā)平臺甚至系統軟件的開(kāi)發(fā)等都是非常有好處的。
另一種認識誤區是將編譯的實(shí)驗混淆于普通的程序設計實(shí)驗,將實(shí)驗重點(diǎn)沒(méi)有放在算法的設計、原理的理解上,而是迷失在具體代碼實(shí)現的細節上。編譯原理課程是一個(gè)綜合性的專(zhuān)業(yè)課,編譯程序使用的一些數據結構和算法是“數據結構”、“離散數學(xué)”以及“算法設計與分析”等課程相關(guān)知識的典型應用 ,能夠進(jìn)一步加深了學(xué)生對相關(guān)課程知識的綜合運用和專(zhuān)業(yè)素質(zhì)的提升。
1.2實(shí)驗內容設計缺少層次性
通常的編譯原理實(shí)驗課的教學(xué)設計,是將學(xué)生已經(jīng)學(xué)過(guò)的一種高級語(yǔ)言的詞法和語(yǔ)法進(jìn)行簡(jiǎn)化,作為實(shí)驗的模型語(yǔ)言。針對編譯過(guò)程的詞法分析、語(yǔ)法分析、語(yǔ)義分析與中間代碼生成、目標代碼生成的四個(gè)重要階段,每個(gè)階段分別設計一個(gè)或多個(gè)實(shí)驗題目,最終合成一個(gè)完整的編譯程序。這樣設計實(shí)驗的好處是與授課內容緊密結合,模塊分解清晰。但存在的問(wèn)題是盡管對高級語(yǔ)言進(jìn)行了簡(jiǎn)化,每個(gè)實(shí)驗仍然存在著(zhù)一系列的“難度階梯”需要學(xué)生跨越,如果在實(shí)驗的設計上僅從學(xué)科的理論體系上考慮,忽視了學(xué)生知識和能力水平的不同層次,只是一種理想化的設計,執行起來(lái)勢必難以達到預期的實(shí)驗效果。
以詞法分析的實(shí)驗設計為例:實(shí)驗要求是給出某模型語(yǔ)言的文法規范,要求編寫(xiě)該語(yǔ)言的詞法分析程序。輸入源程序文件,輸出關(guān)鍵詞、專(zhuān)用符號以及其它標記。實(shí)驗過(guò)程是編寫(xiě)主函數getToken,通過(guò)從文件中讀取字符到緩沖區中并由C語(yǔ)言字符的狀態(tài)轉換圖流程判斷返回一個(gè)字符(Token)。分析出來(lái)的單詞主要分為關(guān)鍵詞,專(zhuān)用符號,標記符號等。
這個(gè)實(shí)驗是編譯階段的第一個(gè)實(shí)驗,在學(xué)生對編譯程序理解不深,很多思維方式和知識框架還沒(méi)有建立起來(lái)的情況下,給很多學(xué)生設置了一系列障礙,如形式化語(yǔ)言、有窮自動(dòng)機的理論等,每一個(gè)障礙對于初學(xué)者都難度不小,這些問(wèn)題同時(shí)出現在一個(gè)實(shí)驗中,會(huì )使相當大一部分學(xué)生因難度過(guò)大而失去學(xué)習興趣。實(shí)際教學(xué)中學(xué)生對編譯程序的認知是循序漸進(jìn)的,很多概念和原理的理解不可能一步到位。而且學(xué)生的知識結構、能力水平參差不齊,有的學(xué)生的先導課程如《數據結構》、《高級程序設計語(yǔ)言》等知識學(xué)得不牢固,有些甚至已經(jīng)淡忘,因此在設計實(shí)驗時(shí)需要首先弄清楚學(xué)生的情況,然后再“對癥下藥”有側重點(diǎn)地進(jìn)行實(shí)驗內容的設計。
1.3實(shí)驗的組織形式比較單一
編譯原理的實(shí)驗組織形式通常是在機房每個(gè)學(xué)生一臺計算機,實(shí)驗課程開(kāi)始后教師介紹實(shí)驗內容、實(shí)驗目的和實(shí)驗要求等,然后每人獨立完成,從設計到實(shí)現都由學(xué)生自己進(jìn)行,教師在實(shí)驗過(guò)程中隨時(shí)解答學(xué)生的疑問(wèn),最后學(xué)生調試完成程序后撰寫(xiě)實(shí)驗報告,教師根據學(xué)生的程序和實(shí)驗報告給出分數。這樣的實(shí)驗組織和成績(jì)的評判形式比較單一,整個(gè)過(guò)程由教師主導,能夠訓練學(xué)生個(gè)體的獨立思考能力和動(dòng)手能力,但學(xué)生之間的交流不夠,實(shí)驗課的大部分時(shí)間都是學(xué)生埋頭寫(xiě)程序,實(shí)驗課氣氛比較枯燥沉悶,對學(xué)生團隊協(xié)作能力的訓練不夠。
2實(shí)驗教學(xué)設計的改進(jìn)
2.1消除學(xué)生的認識誤區
針對學(xué)生簡(jiǎn)單地把編譯原理課程局限在編譯器設計上的認識誤區,教師在授課和實(shí)驗過(guò)程中需要注意結合實(shí)際中運用編譯技術(shù)的實(shí)例,比如常用的文本編輯工具中,很多帶有字詞的檢查和校驗功能,這就是編譯原理技術(shù)中詞法分析技術(shù)的具體應用;很多應用系統中對用戶(hù)輸入的字符串進(jìn)行規則檢查時(shí)常用正則表達式;網(wǎng)絡(luò )搜索引擎對文檔資源進(jìn)行特征分析、提取與描述等工作中都用到編譯的相關(guān)知識……通過(guò)各種現實(shí)生活中的實(shí)例讓學(xué)生明確編譯原理所學(xué)習的知識不僅是計算機專(zhuān)業(yè)理論知識的重要組成,而且編譯程序所使用的一些原理、方法和技術(shù)在非編譯系統的實(shí)際應用中也發(fā)揮了很大作用。
在進(jìn)行實(shí)驗設計時(shí),除了原理性實(shí)驗,可以根據學(xué)生的興趣,安排一些應用型的實(shí)驗,如簡(jiǎn)單的智能輸入法的實(shí)現、識別某些單詞的簡(jiǎn)單聊天機器人程序等,這樣的小實(shí)驗可以激發(fā)學(xué)生的學(xué)習興趣,學(xué)生在這些應用性趣味實(shí)驗中遇到了困難,自然會(huì )進(jìn)一步深入學(xué)習教材中的原理,這樣對基礎理論的掌握也會(huì )更加牢固。
2.2實(shí)驗內容的改進(jìn)
國內外的一些經(jīng)典教材中,通常會(huì )采用一種模型語(yǔ)言的編譯程序作為實(shí)例,如呂映芝等人編著(zhù)的《編譯原理》是以PL/0語(yǔ)言的編譯程序為范例,Alfred V. Aho等人編著(zhù)的《編譯原理》先通過(guò)一個(gè)小的編譯程序范例給學(xué)生帶來(lái)對編譯程序的直觀(guān)感受。通過(guò)實(shí)例的學(xué)習,可以降低學(xué)生的學(xué)習難度,也可以輔助學(xué)生對原理加深理解。在設計實(shí)驗時(shí),可以更大地發(fā)揮這些實(shí)例的作用,事先讓學(xué)生閱讀這些實(shí)例的源代碼,然后增加一個(gè)準備性的實(shí)驗,要求學(xué)生結合已經(jīng)學(xué)習過(guò)C、C++或JAVA等高級程序設計語(yǔ)言,自行對詞法規則和語(yǔ)法規則的簡(jiǎn)化和裁減,設計出適合自己實(shí)驗難度的模型語(yǔ)言,并給出文檔描述。通過(guò)安排這個(gè)準備實(shí)驗,促使學(xué)生復習必須的基礎知識,增加學(xué)生查閱資料的能力和閱讀源代碼的能力,在學(xué)生的認知結構上起一個(gè)鋪墊的作用。
詞法分析、語(yǔ)法分析試驗是編譯原理實(shí)驗的重點(diǎn)。在實(shí)驗內容上,對一些比較復雜的實(shí)驗進(jìn)行拆解。詞法分析實(shí)驗可以拆分成三個(gè)小實(shí)驗:設計源程序掃描器,去除空格和注釋及其他無(wú)關(guān)字符后得到單詞的集合;用自動(dòng)機識別無(wú)符號數或某類(lèi)單詞;設計識別關(guān)鍵詞、標識符等其他類(lèi)型單詞的識別程序。對語(yǔ)法分析實(shí)驗,可以首先以典型的算術(shù)表達式文法為例,設計一個(gè)算術(shù)表達式文法的遞歸子程序分析實(shí)驗,然后在此基礎上安排其他的語(yǔ)法分析實(shí)驗。這樣在內容上也分成了若干層次,更加符合由簡(jiǎn)單到復雜、由特殊到一般的認知規律,也能夠滿(mǎn)足不同知識結構和能力水平的學(xué)生在實(shí)驗中都能得到鍛煉提高的目的。
實(shí)驗難度的設計上應該體現出層次性,形成“階梯狀”的難度層次。每個(gè)實(shí)驗要求分為基本要求、較高要求和探索性實(shí)驗要求三個(gè)層次,基本要求即最低要求,所有學(xué)生都能完成的難度,鼓勵成績(jì)中上的學(xué)生完成較高要求,采用成績(jì)加分、表?yè)P等一些激勵機制,提高興趣,為一些學(xué)有余力的同學(xué)準備探索性實(shí)驗。既能讓優(yōu)秀的學(xué)生“吃得飽”,也保證讓所有學(xué)生“吃得了”,避免一部分學(xué)生因缺乏難度挑戰失去興趣而另一部分學(xué)生因門(mén)檻太高而無(wú)從下手的情況發(fā)生。比如在“利用自動(dòng)機識別無(wú)符號數”的實(shí)驗設計上,基本要求是能夠識別整數,較高要求是識別帶小數的無(wú)符號數,更高要求是能識別帶指數形式的無(wú)符號數,將這一實(shí)驗題目分成三個(gè)層次后,不同學(xué)習水平的學(xué)生都能夠在一個(gè)學(xué)時(shí)內完成實(shí)驗,對自動(dòng)機這一重要工具也有了初步認識,達到了實(shí)驗目的。
2.3實(shí)驗組織形式的改進(jìn)
在實(shí)驗的組織上可以采用協(xié)同式學(xué)習,以小組為單位,通過(guò)教師所提供的實(shí)驗任務(wù)進(jìn)行分析、討論,明確需要解決問(wèn)題的方法,經(jīng)過(guò)一系列的協(xié)同學(xué)習活動(dòng),完成既定的任務(wù),加深對所學(xué)知識的理解。這種組織形式可以培養學(xué)生的團隊協(xié)作能力和學(xué)生之間的相互交流和相互學(xué)習。因為學(xué)生之間的年齡相仿、認知水平相似,交流起來(lái)會(huì )更加順暢和有效。在這個(gè)過(guò)程中能夠提高學(xué)生的參與感,而且通過(guò)團隊協(xié)作解決困難,會(huì )給學(xué)生更多的積極反饋和成就感。
在實(shí)驗內容的設計上,要便于學(xué)生進(jìn)行協(xié)同工作,具有可操作性和合作性,確保小組中每個(gè)成員的任務(wù)飽滿(mǎn)。在小組分配上,根據學(xué)生的興趣讓其自由結合小組,再根據學(xué)生的學(xué)習能力做適當調整,根據學(xué)生的性格特質(zhì)等不同特點(diǎn)讓其在小組中承擔不同角色,如設計人員、開(kāi)發(fā)人員、文檔撰寫(xiě)人員以及兼任的匯報答辯人員等。實(shí)驗實(shí)施階段是協(xié)同模式中最重要的一個(gè)階段,在這個(gè)階段小組要對下達的實(shí)驗任務(wù)進(jìn)行分析,明確任務(wù)的基本要求,掌握解決問(wèn)題的方法及需要具備的知識,在教師的幫助指導下進(jìn)行小組的內部分工及職責的落實(shí),進(jìn)行協(xié)同學(xué)習,同時(shí)教師要對學(xué)生實(shí)驗完成情況進(jìn)行及時(shí)的檢查和指導,直到最終共同完成小組的任務(wù)。
傳統的獨立模式的實(shí)驗中對學(xué)生的評定比較簡(jiǎn)單,根據個(gè)人的完成情況給出成績(jì)。采用分組式協(xié)同模式后,實(shí)驗成績(jì)的評判要做相應的調整,不僅要考核每個(gè)學(xué)生自己承擔的任務(wù)完成情況,還要考核小組共同完成情況?己说膬热萑匀话ǔ绦蚝蛯(shí)驗報告,但除了對每個(gè)學(xué)生獨立完成的程序模塊進(jìn)行檢查外,還需要對小組共同完成的整個(gè)任務(wù)情況進(jìn)行驗收,可以采用匯報和答辯的形式進(jìn)行,每個(gè)小組推選答辯人在面對所有學(xué)生進(jìn)行匯報,然后接受教師和其他小組的提問(wèn)并進(jìn)行答辯,最終成績(jì)的評定除了個(gè)人評定之外還有小組評定,對小組成績(jì)進(jìn)行排序以鼓勵小組間的競爭。
3總結
為了在編譯原理實(shí)驗課中達到教學(xué)目標,根據發(fā)現的問(wèn)題對實(shí)驗課教學(xué)設計進(jìn)行改進(jìn):采用應用型實(shí)驗激發(fā)學(xué)生的興趣,消除對課程的認識誤區;重新設計和組織實(shí)驗內容,更加符合學(xué)生的學(xué)習規律;采用協(xié)同方式組織實(shí)驗培養學(xué)生的團隊合作能力。這些改進(jìn)措施已經(jīng)在教學(xué)實(shí)踐中采用,結果表明有助于降低學(xué)生學(xué)習過(guò)程中的困難,增強學(xué)習興趣,提高實(shí)驗教學(xué)的質(zhì)量。
【編譯原理實(shí)驗課程教學(xué)設計的改進(jìn)論文】相關(guān)文章:
課程設計教學(xué)設計參考,課程設計教學(xué)設計參考論文12-28
功的原理教學(xué)設計04-25
《抽屜原理》教學(xué)設計02-13
《抽屜原理》教學(xué)設計03-09
抽屜原理教學(xué)設計06-27
抽屜原理教學(xué)設計11-09
抽屜原理教學(xué)設計11-09
環(huán)境科學(xué)專(zhuān)業(yè)實(shí)驗課程教學(xué)探索論文(精選5篇)08-15
綜合課程設計論文08-28