余芳 王曉明 趙森
[摘要]針對編譯原理課程理論性強、內(nèi)容高度抽象的特點,依據(jù)創(chuàng)新型人才培養(yǎng)的需求,課題組在編譯原理課程教學中增加了創(chuàng)新型實驗任務(wù),并通過拆解原大型綜合性實驗,重新設(shè)置了各階段實驗任務(wù),實現(xiàn)了課程實踐教學體系的層次化、立體化;同時輔以多媒體教學手段及互動式的教學設(shè)計,注重教學引導,達到了提高學習者學習主動性和積極性、增強其理論應(yīng)用能力的目的。
[關(guān)鍵詞]創(chuàng)新思維;編譯原理;實驗教學;學習者為主體
[中圖分類號]G642.0 [文獻標識碼]A [文章編號]2095-3437(2019)12-0045-03
編譯原理課程是計算機相關(guān)專業(yè)學生的必修課程和高等學校培養(yǎng)計算機專業(yè)人才的基礎(chǔ)及核心課程,同時也是計算機專業(yè)課程中最難及最挑戰(zhàn)學習能力的課程之一。編譯原理課程內(nèi)容主要是原理性質(zhì),高度抽象。編譯原理實驗課作為將理論知識轉(zhuǎn)化成實踐經(jīng)驗的手段,對完善編譯原理課程教學起到重要的輔助作用,目的是使學生具有設(shè)計、實現(xiàn)、分析和移植編譯程序等方面的初步能力,為今后從事軟件開發(fā)或理論研究工作打下堅實的基礎(chǔ)。
為響應(yīng)教育部關(guān)于“深化高等教育教學改革,培養(yǎng)學生的創(chuàng)新精神和實踐能力”的號召,在專業(yè)課程尤其是有一定難度的專業(yè)理論課程的教學中研究如何發(fā)揮學生的學習主動性和積極性,提高其學習興趣,培養(yǎng)其實踐應(yīng)用能力就成為新形勢下高校培養(yǎng)人才的新挑戰(zhàn)。
一、實驗教學現(xiàn)狀
本校編譯原理課程在實驗內(nèi)容方面:(1)以綜合應(yīng)用型實驗為主,要求學生完成“小型程序設(shè)計語言TinyC編譯程序的實現(xiàn)”實驗任務(wù)。缺乏對重要知識點及難點的驗證型實驗設(shè)計,如“編譯程序的自動構(gòu)造技術(shù)”等若干個重要知識點。這些知識點在教學計劃中占了將近40%的課時,且是計算機相關(guān)專業(yè)后續(xù)課程如程序語言構(gòu)造與實現(xiàn)、自動機與文法理論的重要組成部分,對于掌握計算相關(guān)理論有重要的基礎(chǔ)作用。它們內(nèi)容抽象,理解起來不太容易,因此亟須相應(yīng)的實驗手段輔助教學。(2)缺乏對大型綜合性實驗的合理規(guī)劃安排。大型綜合性實驗的實驗內(nèi)容集中于大部分教學內(nèi)容完成后安排,使得實驗各個階段的任務(wù)不明確,無法有效幫助學生建立編譯程序各個步驟的概念,導致其忽略編譯程序的全局性,進而不能全面深刻理解整個編譯程序?qū)崿F(xiàn)的原理。此外,由于實驗內(nèi)容具有一定的難度,讓很多學生知難而退,難以達到預(yù)期的實驗效果。(3)缺乏創(chuàng)新型實驗和提高型實驗的設(shè)計,這使得教學內(nèi)容沒有被充分利用,學習者的主動性和積極性難以發(fā)揮。
在課程采用的實驗手段方面:(1)全班做一個題目,不僅難以避免抄襲,而且忽略了學生的個體差異。(2)學生按照教師在課堂上的布置或者指導書上的步驟,按部就班,完成相關(guān)操作,學習的主動性、積極性受到限制,不利于學生的創(chuàng)新意識、創(chuàng)新思維、創(chuàng)新能力的培養(yǎng)。(3)與實際應(yīng)用結(jié)合不緊密。學生不清楚相關(guān)原理能解決什么實際問題,導致興趣不高。
二、改革指導原則
(一)須滿足現(xiàn)代計算機應(yīng)用所要求的人才模式需求
編譯原理課程實驗內(nèi)容設(shè)置應(yīng)注重與教學內(nèi)容的配套,如“虛擬語言編譯程序的實現(xiàn)”“限定任務(wù)的編譯程序工具練習”等,且實驗對象都是虛擬的,同時限定了實驗任務(wù)及目標。在計算機應(yīng)用如此普遍的今天,計算機相關(guān)專業(yè)課程的實驗教學應(yīng)注重與實際應(yīng)用的結(jié)合,在強調(diào)概念、原理、思想的同時鍛煉解決實際問題的手段和方法。
(二)須強調(diào)素質(zhì)的培養(yǎng)
編譯原理課程就其自身特點看,有著很強的邏輯推理性和高度概括的抽象性,同時也將實驗科學和理論科學高度結(jié)合。因此,教師應(yīng)在教學內(nèi)容上和教學過程中緊緊把握這一特點加強對學生的創(chuàng)造性思維和創(chuàng)造能力的培養(yǎng),從而提高學生的綜合素質(zhì)。從現(xiàn)代社會、科技的發(fā)展趨勢看,學生綜合素質(zhì)的培養(yǎng)比技能的培養(yǎng)更為重要。
(三)須適應(yīng)現(xiàn)代化的教學手段
互聯(lián)網(wǎng)技術(shù)的發(fā)展及普及帶來信息共享及獲取方式的巨大改變。編譯原理課程實踐教學改革要從實踐內(nèi)容體系及教學手段等方面充分體現(xiàn)這一時代特征,在教學手段方面更多地引入演示、多媒體教學輔助等,使得課程能以更活潑多樣的新面貌出現(xiàn)。
三、改革實踐
(一)實驗體系結(jié)構(gòu)設(shè)計
(1)根據(jù)構(gòu)成編譯程序的六個步驟及相應(yīng)知識點的獨立性與完整性將原綜合性設(shè)計實驗“小型語言Tiny C的編譯程序”拆解為四個階段性實驗“1.詞法分析程序Scanner”“3.語法分析程序Parser”“5.語義分析程序Ana-lyzer”,以及“6.代碼生成程序Code Generator”,安排在相應(yīng)知識點教學內(nèi)容及前階段實驗完成之后分別進行(見圖一)。(2)為實驗1、3、5分別設(shè)計了三個預(yù)備任務(wù)“畫識別Tiny C語言合法單詞的DFA”“寫Tiny C語言CFG”以及“畫Tiny C語言屬性樹”,以課堂作業(yè)的形式安排學生完成并實時討論與講解,制作微視頻供學生課后鞏固學習。(3)對重要知識點及難點,如“編譯程序的自動構(gòu)造技術(shù)”這一在許多相關(guān)領(lǐng)域都有應(yīng)用的基礎(chǔ)理論知識,設(shè)計創(chuàng)新型實驗“2.Flex(LEX)工具實驗”和“4.Bison(YACC)工具實驗”,突出理論知識在實際生活中的創(chuàng)新應(yīng)用,同時幫助學習者深刻理解和牢固掌握這部分知識。
(二)任務(wù)實現(xiàn)與效果
實踐群體為某高校某年級計算機科學與技術(shù)專業(yè)及軟件工程專業(yè)近百名學生。學生的作品集中反映出學生對任務(wù)的興趣很高,充分開動了腦筋,查閱了資料。實驗結(jié)果有很多創(chuàng)新,并結(jié)合了實際應(yīng)用。
(1)對于綜合性設(shè)計實驗1、3、5,首先教師通過展示程序框架講解Tiny C語言詞法及語法語義等的約定。之后布置課堂作業(yè),引導學生完成,并隨后在教師講解下糾正錯誤。這些課堂互動任務(wù)還制作了微視頻以供學生課后學習。這些做法是實驗后續(xù)任務(wù)的實現(xiàn)基礎(chǔ),通過引導學生入門提高學生自主完成實驗的興趣,同時保證其對涉及知識的理解與鞏固。
(2)對于提高和創(chuàng)新型實驗,實驗2“Flex工具實驗”與實驗1相比是詞法分析程序兩種不同生成方法的實踐練習。實現(xiàn)過程分為兩部分,首先要求學習者在一個Flex使用示例“識別輸入文本中的單詞和數(shù)并分別統(tǒng)計個數(shù)”的指導下掌握Flex工具的使用步驟;隨后完成自主設(shè)計的實驗任務(wù):學習者自行設(shè)計詞法規(guī)則,寫出正規(guī)表達式序列并使用Flex工具進行分析并截圖展示成果。
在上交的近90份作品中,除2個不符合實驗任務(wù)要求的作品及5個僅在示例上做小改動的作品以外,其余作品共完成了13項不同主題的任務(wù),充分展示了學生的創(chuàng)造性。有代表性的作品集如:“識別程序語言單詞或關(guān)鍵字”“識別動物字符圖(馬牛豬貓)中的符號=”“判斷合法日期值”“識別子串”“識別合法姓名和電話”“識別合法E-mail地址”等。其中,實驗作品“識別動物字符圖(馬牛豬貓)中的符號=”很有趣,學生在課堂上進行了展示。
(3)實驗4“Bison工具實驗”與實驗3相比是詞法分析程序兩種不同生成方法的實踐練習。實現(xiàn)過程也分為兩部分,首先要求學習者在一個Bison工具使用示例“結(jié)合Flex工具實現(xiàn)簡單表達式求值”的指導下掌握Bi-son工具的使用步驟;隨后完成兩個實驗任務(wù):第一部分為必做任務(wù),要求學生根據(jù)示例寫出算術(shù)表達式的無二義文法,并對比其與示例的二義文法的區(qū)別;第二部分為選做任務(wù),要求學生自行設(shè)計詞法及語法規(guī)則,寫出構(gòu)詞規(guī)則序列、產(chǎn)生式序列及翻譯規(guī)則,使用Bison工具進行分析并展示成果。
有一半以上學生完成了選做任務(wù)。其中有代表性的作品集如:“程序設(shè)計語言語法規(guī)則設(shè)計”“識別溫度開關(guān)及設(shè)置指令”“回文的判斷”及“科學計算器模擬”等。其中有兩個非常突出的作品“中心嵌入英語語法解釋器”和“親屬關(guān)系自動識別器”。
①中心嵌入英語語法解釋器
英語語法中的中心嵌入概念即“將短語嵌入相同類型的另一短語中間”,使得英語長句解讀起來會比較易于理解。中心嵌入英語語法解釋器嘗試將該類型的復雜嵌套語句進行解析并還原成為多個易于理解的主謂箕子句。如:
輸入“A man that a woman that Peter knows loveskilled a cat.”
輸出“Peter knows a woman,the woman loves a man,the man killed a cat.”
②親屬關(guān)系自動識別器
這個小程序可以為孩子或外國人提供一個簡易的學習中國人親屬間稱呼的工具。如:
輸入“父親的父親的女兒的兒子”。
輸出“表兄弟”。
以上兩個例子不僅是相關(guān)理論知識的準確應(yīng)用,同時具有相當?shù)膭?chuàng)意和實用性??梢钥闯觯瑑蓚€例子的作者都結(jié)合現(xiàn)實生活中的一個困難的小問題充分發(fā)揮了計算機的工具作用,體現(xiàn)了學生對概念的深刻理解、廣泛的知識積累和優(yōu)秀的應(yīng)用及創(chuàng)新能力。
四、改革體會
(一)強調(diào)學生作為學習主體
在教學過程尤其是實踐教學過程中,學生是學習的主體,要完成任何一種形式的教學都必須有學生主動密切的配合,否則教與學易脫節(jié)。但要使學生真正地參與到教學改革中去,那么學生原有的學習模式以及對教學方法的認知就要有觀念性的轉(zhuǎn)變。(1)自主設(shè)計實驗只指定目標不規(guī)定具體實驗內(nèi)容,這使得學生無例可循,必須結(jié)合實際,開動腦筋自己設(shè)計問題并解決它。這個實驗的效果是明顯的,有令人驚喜的作品出現(xiàn)。這說明只要提供給學生以主動思維的空間,完全可以改變其學習過程中的等待性和盲目性,從而促使其主動思考,主動學習。(2)督促學生現(xiàn)場完成大型綜合設(shè)計實驗的具有先導性質(zhì)的作業(yè),并進行互動講解及討論。通過現(xiàn)場完成該作業(yè)使學生明白實驗任務(wù)要解決的問題是什么,認識到哪些問題是可以解決的,從而克服畏難情緒,促使學生自己主動去解決這些問題。學生因而充分認識、挖掘了學習潛力,也逐步提高了學習信心和興趣,增強了學習的主動性。
(二)教學方法及引導是關(guān)鍵
在教學過程中教師要有明確的教學思路和正確的引導方法,才能把握住整個教學過程,使教學改革得以順利推進。(1)將大型綜合設(shè)計實驗按照知識點的獨立性分割成四個階段,配合教學內(nèi)容的完成而安排;從實驗任務(wù)分離出課堂作業(yè),作業(yè)完成后才著手實驗任務(wù)。由于作業(yè)內(nèi)容對實驗任務(wù)有先導作用,教師將其制作成視頻提供給學生課后自主學習。以上手段避免了學生一上手就面對大型問題、復雜問題,引導其一步步地完成實驗任務(wù)。(2)在同一個知識點上設(shè)計不同方法的對比實驗。如對知識點“詞法分析程序的實現(xiàn)”,設(shè)計實驗“Tiny C語言Scanner”和“Flex工具實驗”;對知識點“語法分析程序的實現(xiàn)”,設(shè)計實驗“Tiny C語言Parser”和“Bison工具實驗”,要求學生完成實驗任務(wù)后進行對比,從而強化概念和方法,引導學生思考和掌握教學內(nèi)容。(3)根據(jù)學生實驗?zāi)芰τ胁町愡@一特點,把實驗內(nèi)容分成示范、必做和選做三塊。如示范任務(wù)為“Flex工具示例”和“Bison工具示例”,有六個必做實驗任務(wù)以及“Bi-son工具實驗”的第二個選做任務(wù)。對那些基礎(chǔ)好,能力強、速度快的學生,除了必做內(nèi)容外,還要求他們完成選做內(nèi)容;而對實驗技能一般的學生,把其他學生完成的選做內(nèi)容進行展示,要求他們觀察結(jié)果(相當于示范)。
(三)利用成績激勵機制
對絕大多數(shù)學生來說考試方式、內(nèi)容決定了他們的學習方法,甚至是思維方式。因此,充分利用成績來引導學生配合教學改革就顯得十分必要。在實踐中從這方面人手,有以下措施和體會:(1)加大平時成績的比例,肯定付出的努力,獎勵主動思考的成果。例如三次課堂作業(yè)均通過課堂巡視的方式找出完成得好或錯誤較典型的進行現(xiàn)場展示,獎勵獲得課堂展示機會的優(yōu)秀作品的作者,以作品難易程度和獨創(chuàng)性給出成績,處理抄襲和雷同實驗作業(yè)的成績。(2)期末考試設(shè)置少量與實驗內(nèi)容直接相關(guān)的考試內(nèi)容。
五、結(jié)語
綜合以上,本次教學實踐改革達到了以下目標:(1)對實驗內(nèi)容及手段的設(shè)計和組織進行改進,更好地提高了編譯原理實驗課的教學效果,有效達成了教學目標,鞏固、加深了學生對基本知識、基本理論的了解,突出了教學重點及難點。(2)使學生掌握了相關(guān)基本技能,提高了學生的動手能力、綜合運用知識解決實際問題的能力,發(fā)揮了學生的自主學習能力和創(chuàng)造性。(3)加強了師生之間的交流。
當然,同時存在一些遺憾。首先,有些實驗任務(wù)內(nèi)容設(shè)置還是不夠合理,如“Bison工具自主設(shè)計”這一較大型的困難任務(wù)不加任何引導就完全放開給學生,導致上交率只有一半,交上來的作業(yè)也存在未完全調(diào)試完成的情況。其次,在現(xiàn)代教學手段的輔助上,雖然本項目制作了視頻輔助學習者線下自學,但未充分利用線上討論手段。計劃改進措施是將“Bison工具自主設(shè)計”實驗改為必做任務(wù),但內(nèi)容調(diào)整為教師指定若干(3~4個)與示例不同的問題,選定其中一個或自行設(shè)計(有創(chuàng)新加分)完成任務(wù)。任務(wù)中學生自由組成小組,實驗討論課以組為單位展示作品,培養(yǎng)學生的協(xié)作能力。
改革實踐證明以上措施對提高學生學習興趣和實踐能力、創(chuàng)新能力的培養(yǎng)很有幫助,不僅有多樣且新穎的實驗作品出現(xiàn),課堂教學效果也得到了加強,這體現(xiàn)在課堂的教與學交流中,也體現(xiàn)在課程結(jié)束考核的成績上。我們計劃在今后的教學中結(jié)合線上展示和討論手段進行啟發(fā)指導,促進更多水平較弱的學生加入主動創(chuàng)新的活動中來。