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