謝紅俠 王志曉 張辰 劉佰龍



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