孟文文 張新 程知
關(guān)鍵詞: 編譯原理; 學(xué)習(xí)通; 智慧課堂; 線上教學(xué); 線下教學(xué)
0 引言
隨著物聯(lián)網(wǎng)和大數(shù)據(jù)等信息化技術(shù)的發(fā)展和普及,高校教育的教學(xué)信息化得到了飛速發(fā)展[1]。線上線下相融合的智慧化教學(xué)方式正在逐漸取代傳統(tǒng)的線下課堂教學(xué)方式,微課和翻轉(zhuǎn)課堂等新型教學(xué)手段在教學(xué)過程中屢見不鮮[2],可以更好地激發(fā)學(xué)生自學(xué)和主動探究的能力,進而提高教學(xué)質(zhì)量,達到培養(yǎng)學(xué)生學(xué)習(xí)能力的目的[3]。
編譯技術(shù)與計算機專業(yè)相關(guān)的工作密切相關(guān),通過對編譯技術(shù)的學(xué)習(xí),可以深入地理解編譯原理和日常開發(fā)工作中使用的開發(fā)語言的關(guān)系,理解程序是如何被計算機識別并執(zhí)行的,有助于培養(yǎng)學(xué)生解決復(fù)雜工程問題的能力,在技術(shù)道路上可以走得更遠。
1 編譯原理課程概述
編譯原理課程是合肥學(xué)院人工智能與大數(shù)據(jù)學(xué)院計算機科學(xué)與技術(shù)專業(yè)學(xué)生的一門重要專業(yè)課程,該課程同時具備很強的理論性和實踐性。通過對該課程的學(xué)習(xí),讓學(xué)生在掌握編譯器構(gòu)造原理和設(shè)計方法的同時,可以提高對計算機系統(tǒng)的整體認知,培養(yǎng)其對計算機復(fù)雜工程問題的解決能力[4]。課程從形式語言理論的角度進一步認識與理解程序設(shè)計語言及其與編譯程序的聯(lián)系[5],提高學(xué)生的邏輯推理能力和抽象思維能力。具體來講,通過對該課程的學(xué)習(xí),學(xué)生應(yīng)達到如下三個具體目標:
1) 要求學(xué)生理解編譯軟件系統(tǒng)的基本科學(xué)問題,掌握編譯程序的基礎(chǔ)理論和基本方法,培養(yǎng)可以利用形式化方法描述語言對編譯軟件系統(tǒng)進行分析描述、模塊劃分并建立模型的能力。
2) 要求學(xué)生掌握LL(1)、LR、遞歸子程序等典型方法,進一步強化學(xué)生形式化描述、算法分析、功能模塊化等專業(yè)意識,培養(yǎng)其運用合理方法和技術(shù)完成復(fù)雜軟件系統(tǒng)設(shè)計與實現(xiàn)的能力。
3) 要求學(xué)生掌握在系統(tǒng)設(shè)計與實現(xiàn)過程中,具備對多種方法、工具、環(huán)境的比較、評價和選擇的能力,例如選擇實現(xiàn)詞法分析和語法分析方法、實現(xiàn)途徑、開發(fā)語言和環(huán)境等。
2 編譯原理課程教學(xué)現(xiàn)狀
編譯原理課程要求學(xué)生掌握編譯程序構(gòu)造的基本原理、設(shè)計方法和實現(xiàn)技術(shù),具有設(shè)計、實現(xiàn)、分析和維護編譯程序等方面的基本技能。編譯原理課程主要包括理論教學(xué)和實驗教學(xué)兩部分,從學(xué)生的教學(xué)反饋與實際教學(xué)效果來看,學(xué)生對于該課程的知識掌握情況較差,具體原因有以下三個方面:
1)編譯原理課程的先修課程包括程序設(shè)計語言、數(shù)據(jù)結(jié)構(gòu)與算法、計算機組成原理、操作系統(tǒng)等諸多專業(yè)核心課程。學(xué)生對于上述先修課程的掌握程度會直接影響學(xué)生對該門課程的理解程度。計算機科學(xué)與技術(shù)專業(yè)開設(shè)編譯原理課程的時間是大三的第二學(xué)期,此時學(xué)生的學(xué)業(yè)情況已經(jīng)基本穩(wěn)定,如果對專業(yè)核心課程知識掌握不夠牢固,在編譯原理課程的學(xué)習(xí)中會遇到很大的挑戰(zhàn)。
2)編譯原理課程的相關(guān)理論知識涉及面廣,而且抽象復(fù)雜不容易理解。學(xué)生對知識的理解很容易停留在表面,無法理解計算機系統(tǒng)運行背后的工作原理,很難做到將系統(tǒng)知識有機整合[6]。課程以程序設(shè)計語言為背景,系統(tǒng)地講授編譯程序構(gòu)造的基本概念與設(shè)計,包括語言與文法、詞法分析、自頂向下語法分析、自下向上語法分析等部分。根據(jù)教學(xué)計劃安排,編譯原理課程包括28個理論學(xué)時和14個實驗學(xué)時。
3)課程具備很強的理論性和實踐性,為了讓學(xué)生能夠更好地掌握編譯理論和編譯程序構(gòu)造的基本方法,課程包括三個設(shè)計性實驗,分別為詞法分析器的設(shè)計與實現(xiàn)、LL(1)語法分析器的設(shè)計與實現(xiàn)和LR(0) 語法分析器的設(shè)計與實現(xiàn)。如果學(xué)生不能真正理解和掌握本課程所學(xué)的專業(yè)理論知識,實驗環(huán)節(jié)的教學(xué)質(zhì)量無法得到保證。
3 編譯原理課程教學(xué)實踐探析
基于上述分析的合肥學(xué)院人工智能與大數(shù)據(jù)學(xué)院計算機科學(xué)與技術(shù)專業(yè)的編譯原理課程教學(xué)現(xiàn)狀,課程組在智慧課堂教學(xué)方面開展工作,在教學(xué)各個環(huán)節(jié)進行了充分的探討和改進。借助超星學(xué)習(xí)通軟件完成計算機科學(xué)與技術(shù)專業(yè)編譯原理課程的教學(xué),從以下幾個方面開展工作。
3.1 利用智慧課堂優(yōu)化教學(xué)管理工作[7]
1) 預(yù)習(xí)階段。教師首先會在平臺上建立編譯原理課程的相關(guān)信息,關(guān)聯(lián)上課班級的學(xué)生信息,然后上傳下節(jié)課的學(xué)習(xí)資料并發(fā)放任務(wù),最后教師通過查看學(xué)生的學(xué)習(xí)進度和反饋的疑問及時調(diào)整授課重點,做到學(xué)生帶著問題進課堂。
2) 上課階段。利用學(xué)習(xí)通平臺進行簽到(簽到方式有位置簽到、簽到碼簽到、拍照簽到等)、選人提問(有隨機選人、指定學(xué)生等方式)、小組討論(可以進行自由組隊或者指定人員)等方式有效激活課堂。此外,教師可以在課前指定人員進行組隊,上課階段采用翻轉(zhuǎn)課堂的方式,隨機選學(xué)生進行上臺講解,教師進行點評與總結(jié),做到學(xué)生帶著答案出課堂。
3) 復(fù)習(xí)階段。教師在學(xué)習(xí)通平臺發(fā)布課后作業(yè),檢驗學(xué)生在上課階段的知識掌握情況。通過作業(yè)批改和查看成績統(tǒng)計分析,可以及時跟進學(xué)生的學(xué)習(xí)情況,進而調(diào)整下節(jié)課的授課重點,形成教學(xué)環(huán)節(jié)的閉環(huán)。學(xué)習(xí)通平臺上建立的編譯原理課程作業(yè)庫,覆蓋了由易到難的各種知識題型。
3.2 利用智慧課堂優(yōu)化過程考核方案[4]
編譯原理課程考核包括期終考試(筆試)、過程考核、實驗考核和平時作業(yè)。其中過程考核是檢測學(xué)生在教學(xué)期間對知識掌握情況的重要手段,根據(jù)過程考核成績的統(tǒng)計情況,教師可以及時調(diào)整授課重點。例如在2020級計算機科學(xué)與技術(shù)專業(yè)編譯原理課程教學(xué)期間,教學(xué)進度進行到接近三分之二時,安排了一次過程考核,成績統(tǒng)計如圖1所示。
從上述過程考核的成績統(tǒng)計結(jié)果來看,學(xué)生對知識的掌握不是很理想,主要原因有兩個。一是為了督促學(xué)生學(xué)習(xí)而適當提升過程考核題目的難度;二是前面課程內(nèi)容涉及理論知識較多,學(xué)生掌握理論知識不夠深入。后續(xù)通過重難點學(xué)習(xí)并結(jié)合實驗部分對理論知識進行鞏固。
過程考核的實施主要包括以下幾個方面:
1) 題目的篩選。借助學(xué)習(xí)通平臺,教師從題庫中篩選能夠支撐課程目標的知識點的題目。合肥學(xué)院人工智能與大數(shù)據(jù)學(xué)院的編譯原理課程的題庫每年都會由課程組的教師反復(fù)揣摩后更新。
2) 試卷的下發(fā)。借助學(xué)習(xí)通平臺在發(fā)放試卷時將題目順序及選項順序等隨機打亂,可以有效防止作弊的發(fā)生。考試設(shè)置如圖2所示。
3) 后臺的監(jiān)考。借助學(xué)習(xí)通平臺可以監(jiān)測學(xué)生考試過程中的作答情況,當在考試過程中出現(xiàn)學(xué)生無故退出考試界面時,教師可以進行自動收卷,停止學(xué)生繼續(xù)答題。
4) 試卷的批改。借助學(xué)習(xí)通平臺可以實現(xiàn)客觀題目的自動批改。試卷批改完畢,可以一鍵導(dǎo)出各個題目各個知識點的答題情況,教師通過查看統(tǒng)計分析,快速了解學(xué)生的知識掌握情況。
3.3 利用智慧課堂優(yōu)化實驗教學(xué)
編譯原理課程的實驗教學(xué)包括教師授課和學(xué)生自主學(xué)習(xí)兩部分。借助學(xué)習(xí)通平臺發(fā)布實驗預(yù)習(xí)資料并發(fā)起小組討論,課上安排學(xué)生進行具體實踐。實驗考核由學(xué)生答辯和提交實驗報告兩個環(huán)節(jié)構(gòu)成,二者各占50%的考核權(quán)重。
教師在答辯環(huán)節(jié)通過問答和演示的形式考核學(xué)生對實驗內(nèi)容的完成程度和理解掌握程度。以2020 級計算機科學(xué)與技術(shù)專業(yè)編譯原理課程的詞法分析器設(shè)計與實現(xiàn)的實驗答辯考核為例,簡要闡述學(xué)生通過實驗環(huán)節(jié)需要掌握的內(nèi)容。
1)考核學(xué)生對基礎(chǔ)知識的理解和掌握,要求學(xué)生清楚地知道詞法分析器是以源程序作為輸入,能夠按照構(gòu)詞規(guī)則分解成一系列單詞符號。
2)考核學(xué)生的算法分析和設(shè)計。單詞符號是語言中的最小單位(包括關(guān)鍵字、標識符號、運算符、界符和常量等),要求學(xué)生能夠根據(jù)單詞符號的種類編碼實現(xiàn)算法設(shè)計并給出算法流程圖。
3)考核學(xué)生的程序設(shè)計與實現(xiàn)。要求學(xué)生的程序在執(zhí)行時可以得到預(yù)期的運行結(jié)果,輸入一段正確的源程序時,需要輸出正確的二元式執(zhí)行結(jié)果;輸入一段存在漏洞的源程序時,需要輸出合理的錯誤提示并能夠分析原因。
在實驗報告環(huán)節(jié),教師通過實驗報告成績評價表,進一步考核學(xué)生對實驗內(nèi)容的完成程度和理解掌握程度。合肥學(xué)院人工智能與大數(shù)據(jù)學(xué)院的實驗報告成績評價表如表1所示。
4 智慧課堂教學(xué)效果
以合肥學(xué)院人工智能與大數(shù)據(jù)學(xué)院2019 級和2020級計算機科學(xué)與技術(shù)專業(yè)的兩個班級為例,教學(xué)過程中采取線上線下相融合的教學(xué)方式,對編譯原理課程采用智慧課堂教學(xué),兩個班級的考核結(jié)果如表2 所示。
通過表2中的結(jié)果可以看出,采用智慧課堂教學(xué)方式之后,學(xué)生的考核成績分布符合教學(xué)預(yù)期,可以達到較好的教學(xué)效果。同時從學(xué)生的評教結(jié)果反饋得知,很大程度地提高了學(xué)生的學(xué)習(xí)能動性,對編譯原理課程的抵觸心理明顯減退。
在2019級計算機科學(xué)與技術(shù)專業(yè)的編譯原理課程教學(xué)過程中,僅對理論教學(xué)部分開展了智慧課堂教學(xué)實踐。經(jīng)過課程組的分析與討論,接下來在2020級計算機科學(xué)與技術(shù)專業(yè)編譯原理的實驗教學(xué)過程中開展了實踐與探索。將2019級和2020級計算機科學(xué)與技術(shù)的兩個班級的實驗考核成績進行對比,結(jié)果如表3所示。
從表3中的結(jié)果可以看出,相比于2019級同專業(yè)的學(xué)生,由于對2020級計算機科學(xué)與技術(shù)專業(yè)的編譯原理課程的實驗環(huán)節(jié)實施了智慧課堂教學(xué),后者的考核成績得到明顯提升。同時在實驗教學(xué)過程中重點強化學(xué)生實驗考核中的答辯環(huán)節(jié),使學(xué)生能夠加深對知識的理解。
5 總結(jié)
以合肥學(xué)院人工智能與大數(shù)據(jù)學(xué)院計算機科學(xué)與技術(shù)專業(yè)的編譯原理課程為例進行了智慧課堂教學(xué)的分析。借助學(xué)習(xí)通平臺,充分利用信息化手段,打破教師和學(xué)生之間的溝通屏障,使得師生之間的溝通更加立體化。做到以教學(xué)成果為導(dǎo)向,教師真正做到因材施教,提升教學(xué)質(zhì)量。
立足合肥學(xué)院編譯原理課程教學(xué)現(xiàn)狀,借助信息化技術(shù)的發(fā)展進行智慧課堂的教學(xué),培養(yǎng)以學(xué)生為主體的教育核心理念。通過智慧課堂教學(xué)上的不斷實踐與探索,從形式語言理論的角度,讓學(xué)生進一步認識與理解程序設(shè)計語言及其與編譯程序的聯(lián)系,提高了學(xué)生的邏輯推理能力和抽象思維能力,提升了編譯原理課程的教學(xué)質(zhì)量。