謝紅俠 王志曉 張辰 劉佰龍



摘要:分析了當(dāng)前主流教學(xué)工具的特點,選取了雨課堂+學(xué)習(xí)通(慕課平臺)+釘釘+在線實驗平臺的線上線下混合教學(xué)模式作為疫情以來的編譯技術(shù)課程的教學(xué)方式。針對線上教學(xué)師生之間的時空距離的特點,設(shè)計了課前慕課自主學(xué)習(xí)、課堂重點知識講解與討論、課堂測試與練習(xí)及課后測評、在線實驗評測系統(tǒng)等教學(xué)環(huán)節(jié),從不同的角度讓學(xué)生參與到教學(xué)中來,最大限度地提供自主學(xué)習(xí)資源與便捷工具。真正做到了停課不停學(xué),切實保障了課程教學(xué)效果,提高了學(xué)生的動手能力及自學(xué)能力。
關(guān)鍵詞: 編譯技術(shù);混合式教學(xué);在線測評;慕課;雨課堂
中圖分類號:G642? ? ? ? 文獻標(biāo)識碼:A
文章編號:1009-3044(2023)01-0175-03
1 引言
在當(dāng)今的環(huán)境下,國內(nèi)很多老師為了提高編譯技術(shù)課程的教學(xué)質(zhì)量,進行了多種教學(xué)改革[1-5]。編譯技術(shù)是計算機科學(xué)與技術(shù)的一門重要的專業(yè)基礎(chǔ)理論課。通過課程的學(xué)習(xí),使學(xué)生獲得所學(xué)內(nèi)容的基本概念、基本理論和基本編譯程序的開發(fā)方法,為學(xué)習(xí)后繼課程和進一步獲得編譯知識奠定必要的基礎(chǔ)。通過各個教學(xué)環(huán)節(jié),培養(yǎng)學(xué)生具有詞法分析、語法分析、語法制導(dǎo)翻譯、中間代碼生成等一般編譯器的開發(fā)原理和方法的能力。為達到這一目的,結(jié)合所學(xué)的在線教學(xué)工具,確立了雨課堂+中國大學(xué)慕課+釘釘+在線實驗平臺的混合教學(xué)模式作為編譯原理課程的在線教學(xué)方式。
2 在線教學(xué)工具的比較與選擇
2.1 各種在線教學(xué)工具的比較
隨著科技的發(fā)展,用于教育的在線工具也如雨后春筍般層出不窮,我們應(yīng)該選擇哪些工具作為我們的教學(xué)工具呢,表1對目前市場上主流的一些教學(xué)工具進行了比較分析。
2.2 在線教學(xué)工具的選擇
通過比較以上多個平臺發(fā)現(xiàn),各個平臺都有各自的優(yōu)勢與不足之處,用單一的在線教學(xué)工具不能滿足課堂教學(xué)的要求,但是可以將它們組合在一起,揚長避短,發(fā)揮各自的長處,從而取得較好的教學(xué)效果。依據(jù)課程特點及教學(xué)要求,結(jié)合在線教學(xué)工具的優(yōu)缺點,選取了雨課堂+學(xué)習(xí)通(MOOC平臺)+釘釘作為編譯技術(shù)課程的混合式教學(xué)平臺。
2.3 實驗平臺的選擇
學(xué)校沒有提供合適的在線實驗平臺編譯技術(shù)課程。學(xué)校已有的實驗平臺只提供了實驗成果提交的平臺無法監(jiān)控學(xué)生做實驗的狀態(tài)。經(jīng)過調(diào)查研究發(fā)現(xiàn)EduCoder是一個由國內(nèi)知名高校、產(chǎn)業(yè)聯(lián)盟和大型企業(yè)共同發(fā)起的新型信息技術(shù)工程教育平臺。EduCoder支持程序設(shè)計、軟件工程、數(shù)據(jù)庫、操作系統(tǒng)、編譯技術(shù)、機器學(xué)習(xí)等全品類計算機專業(yè)方向的教學(xué)、實驗、實訓(xùn)和科研活動。以闖關(guān)的模式循序漸進地進行實訓(xùn)。因此編譯技術(shù)課程選擇該平臺作為實驗平臺。
3 線上線下混合式教學(xué)設(shè)計
3.1 基于MOOC平臺的教學(xué)組織
隨著疫情的發(fā)展,開學(xué)初的線上教學(xué)已成常態(tài)化,為了更有效地開展線上教學(xué),課程組梳理了編譯的知識點,將課程的重點、難點進行了梳理,并根據(jù)教學(xué)的進度進行了知識點的劃分,分工合作完成了知識點的錄制工作。這些知識點涵蓋了以下內(nèi)容:
形式語言與自動機理論中的基本概念、DFA、NFA、正規(guī)文法之間的等價關(guān)系及相互轉(zhuǎn)換;詞法分析中的單詞分類、單詞的正則表達式描述、有限自動機識別單詞的機理與實現(xiàn);自頂向下的語法分析常見的問題、解決方法、不含回溯的遞歸下降分析法以及非遞歸的預(yù)測分析法;自底向上的語法分析的一般模型、活前綴在自底向上的語法分析中的作用、識別活前綴的有限自動機的構(gòu)造、LR(0) 、SLR(1)、LR(1)、LALR(1) 語法分析法及各種方法的對比;語法制導(dǎo)翻譯中的屬性、屬性文法、屬性計算的依賴圖、S屬性文法與自底向上的翻譯、L屬性文法與自頂向下的翻譯;中間代碼生成中的中間代碼的形式、聲明語句的翻譯、表達式語句的翻譯、布爾表達式的翻譯、控制流語句的翻譯。代碼優(yōu)化包括常用代碼優(yōu)化的方法如刪除多余運算(刪除公用子表達式)、合并已知量、復(fù)寫傳播、刪除無用賦值等;局部優(yōu)化技術(shù)如DAG圖的構(gòu)造及利用DAG圖進行局部優(yōu)化;循環(huán)的識別及循環(huán)優(yōu)化常用的技術(shù)如代碼外提、強度削弱、變換循環(huán)控制條件。
以上這些知識點涵蓋了課程的主要內(nèi)容,也是教學(xué)的主要內(nèi)容。首先錄制了這些知識點的視頻講解,接著對知識點進行梳理,為每個知識點構(gòu)建相應(yīng)的練習(xí)題。最后完成在線教學(xué)平臺的搭建。這樣在線上教學(xué)或者混合式教學(xué)中,教師可以方便地通過MOOC平臺布置預(yù)習(xí)任務(wù),課堂習(xí)題和課后作業(yè)及測試,構(gòu)建從課前到課中再到課后全覆蓋的、針對每個學(xué)生的學(xué)習(xí)數(shù)據(jù)的統(tǒng)計,獲取學(xué)生的學(xué)習(xí)狀態(tài),針對學(xué)習(xí)狀態(tài)異常的學(xué)生,可以進行有針對性的輔導(dǎo),提高整體教學(xué)效果。最終實現(xiàn)以面授為主、在線練習(xí)為輔、線上線下相結(jié)合的混合式教學(xué)模式改革。在MOOC教學(xué)平臺中,每個知識點的練習(xí)題為3-5個,主要檢查學(xué)生的基礎(chǔ)知識是否掌握。另外還為每章提供了綜合的練習(xí),這個放在了雨課堂中,方便教師在教授完一章之后,對學(xué)生進行隨堂測試,實時掌握學(xué)生的學(xué)習(xí)情況,并且根據(jù)課堂測試結(jié)果布置相關(guān)作業(yè),對重點、難點的內(nèi)容進行鞏固練習(xí)以加深理解。
3.2 課前預(yù)習(xí)與知識點測評
基于MOOC,課程組構(gòu)建了編譯技術(shù)的在線學(xué)習(xí)平臺,該平臺提供了重點、難點的知識點的視頻講解、課程內(nèi)容的課件及對應(yīng)知識點的練習(xí)題,為學(xué)生課前預(yù)習(xí)及知識點測評做好了詳盡的準(zhǔn)備。對于課程一些重點難點知識點在課前給學(xué)生相關(guān)的MOOC視頻進行觀看預(yù)習(xí),在課堂上推送預(yù)先做好的雨課堂測驗檢驗學(xué)生的學(xué)習(xí)情況,根據(jù)檢驗結(jié)果再有針對性地對相關(guān)知識點進行具體的講解,課后再布置相關(guān)的作業(yè)加強對這部分知識的理解。
3.3 實驗設(shè)計與測評
我校編譯技術(shù)課程的實驗主要注重編譯器前端的設(shè)計與實現(xiàn),分為詞法分析器、語法分析器兩大部分,語法分析器分為遞歸下降分析器和LR分析器兩部分。往年的實驗由學(xué)生根據(jù)詞法分析器、語法分析器的思想,參考教材實現(xiàn)代碼自己編程實現(xiàn),但是學(xué)生在實現(xiàn)過程中對錯誤處理、細節(jié)處理不完善。EduCoder上開設(shè)的編譯課程則是自動化工具,首先把問題形式化表示,然后采用flex、bison將問題形式化描述出來,由工具自動生成代碼,便于學(xué)生學(xué)習(xí)編譯器自動生成的思維方式和編程方式。自2020年開設(shè)的實驗轉(zhuǎn)向自動構(gòu)造編譯器的實驗,提高了學(xué)生的學(xué)習(xí)興趣。達到在實驗中學(xué)理論, 在理論指導(dǎo)下完成實驗,以實驗來加深對理論的理解。
實驗主要選取了詞法分析、語法分析、中間代碼生成三個實驗。其中詞法分析主要是完成Tiny C語言的編譯程序的詞法分析部分實現(xiàn)。要求從左到右掃描每行該語言源程序的符號,拼成單詞,換成統(tǒng)一的內(nèi)部表示(token) 送給語法分析程序。單詞種類包括保留字、標(biāo)識符、字符常量、字符串常量、數(shù)值型常量、運算符等單詞種類的識別。主要目的是讓學(xué)生學(xué)會針對DFA轉(zhuǎn)換圖實現(xiàn)相應(yīng)的高級語言源程序中單詞的識別。通過自己動手編碼深刻地領(lǐng)會狀態(tài)轉(zhuǎn)換圖的含義,逐步理解有限自動機,并且理解詞法分析器的內(nèi)部工作原理。
語法分析實驗包括兩個部分,一個是自頂向下的語法分析,一個是自底向上的語法分析。對于自頂向下的語法分析,實驗給出了將要識別的源程序的上下文無關(guān)文法,要求學(xué)生首先對上下文無關(guān)文法進行檢查,找出文法中存在的左公共因子和文法的左遞歸,接下來要消除左遞歸和提取左公共因子,這樣可以避免回溯和語法分析中死循環(huán)的現(xiàn)象。 采用每個產(chǎn)生式的左邊的文法符號對應(yīng)一個函數(shù)或過程的形式,編寫程序?qū)崿F(xiàn)一個遞歸下降分析器。可以對如下類型的測試用例進行語法分析。
自底向上的語法分析實驗測試用例和自頂向下的語法分析測試用例相同,要求學(xué)生根據(jù)課堂所講授的LR(0) 的語法分析方法,編制程序?qū)崿F(xiàn)對給定的語法進行自底向上語法分析的LR分析器,設(shè)計分析表,對于能力強的同學(xué)可自動構(gòu)造識別活前綴的有限自動機,完成分析表的自動構(gòu)造,能力稍弱的同學(xué)可手工構(gòu)造,對給出的輸入語句進行語法分析,判斷是否符合相應(yīng)的文法要求。自底向上的語法分析實驗的主要目的是掌握LR分析法的思想,學(xué)會特定分析表的構(gòu)造方法,利用給出的分析表結(jié)合高級語言源程序進行LR分析。
中間代碼生成要求學(xué)生在完成了詞法分析、語法分析實驗的基礎(chǔ)上,將程序整合后,結(jié)合語義分析和翻譯模式,將Tiny C源程序翻譯為三地址代碼形式的中間代碼。要求學(xué)生在語法分析器基礎(chǔ)上,對文法進行改造,使得文法能夠進行自底向上的語法翻譯,并且易于生成中間代碼。完成從生成語法樹到生成中間代碼的轉(zhuǎn)換。通過實驗,學(xué)生可以熟悉中間代碼各種不同的表示方法及它們之間的優(yōu)缺點,掌握中間代碼的重要作用以及語義翻譯的實現(xiàn)方法。
3.4 教學(xué)效果
這種教學(xué)方法實施兩年來,教學(xué)質(zhì)量沒有因為線上教學(xué)或線上線下教學(xué)而降低,由于教學(xué)方法的多樣性,還提升了學(xué)生的學(xué)習(xí)興趣取得了較好的教學(xué)效果,圖2為這兩年與線下教學(xué)的成績對比。該圖包含每年兩個行政班同學(xué)編譯技術(shù)成績的分析。其中2019年采取的是線下教學(xué),線上教學(xué)攻擊使用了雨課堂進行課堂知識點的測評。2020—2021年采用了線上線下混合式教學(xué)。從學(xué)生成績段的分布來看,高分段(90分以上)學(xué)生逐年增加,低分段(70分以下)學(xué)生逐年減少,進一步說明了該方法可以提高學(xué)生的學(xué)習(xí)效果。另外多種教學(xué)方法的使用,以及方便快捷的多種在線測試手段也增加了平時成績的客觀性。
4 結(jié)論
本文分析了疫情以來的教學(xué)情況的發(fā)展變化,對各種在線教學(xué)工具進行了分析和比較,結(jié)合本校學(xué)生特點,在實踐中總結(jié)出了一套行之有效的線上線下混合式的教學(xué)方法,通過教學(xué)方法的改革,學(xué)習(xí)了編譯技術(shù)這門課程,使學(xué)生更好地理解了編譯技術(shù)的基本原理、編譯程序的組成及編譯程序的基本設(shè)計方法和主要的實現(xiàn)技術(shù),讓學(xué)生充分認(rèn)識和了解程序設(shè)計語言編譯程序的基本結(jié)構(gòu),并使學(xué)生初步具備編譯程序的開發(fā)能力,進而增強學(xué)生解決問題的能力,為未來從事相關(guān)工作打下堅實的基礎(chǔ)。
參考文獻:
[1] 武瑛,張麗華.新工科背景下基于混合式教學(xué)的編譯原理課程教學(xué)改革[J].電腦知識與技術(shù),2019,15(1):169-170.
[2] 王中卿,朱培培.層次化精準(zhǔn)編譯原理實踐教學(xué)[J].電腦知識與技術(shù),2020,16(20):158-159.
[3] 孫守卿.基于工程教育專業(yè)認(rèn)證的《編譯原理》課程改革[J].電腦知識與技術(shù),2019,15(29):104-106.
[4] 陳義仁,王一賓.編譯原理MOOC的教學(xué)設(shè)計與實踐[J].福建電腦,2020,36(1):44-45.
[5] 劉洪娟,宋經(jīng)平,韓春燕.編譯原理慕課建設(shè)與混合式教學(xué)設(shè)計[J].計算機教育,2020(4):98-101.
[6] 謝紅俠,孟凡榮,閆秋艷,等.移動互聯(lián)環(huán)境下數(shù)據(jù)庫原理混合式教學(xué)研究[J].科教文匯(中旬刊),2020(2):64-65.
[7] 趙永剛.基于釘釘平臺線上教學(xué)策略研究[J].教育藝術(shù),2021(12):31-32.
[8] 陳義仁,王一賓.編譯原理MOOC的教學(xué)設(shè)計與實踐[J].福建電腦,2020,36(1):44-45.
[9] 王敏,方芳.基于超星學(xué)習(xí)通和EduCoder平臺的信息化教學(xué)改革探索[J].電腦知識與技術(shù),2021,17(22):226-227.
【通聯(lián)編輯:王力】