前言:尋找寫作靈感?中文期刊網用心挑選的創新思維培養的編譯原理實驗教學改革,希望能為您的閱讀和創作帶來靈感,歡迎大家閱讀并分享。
[摘要]針對編譯原理課程理論性強、內容高度抽象的特點,依據創新型人才培養的需求,課題組在編譯原理課程教學中增加了創新型實驗任務,并通過拆解原大型綜合性實驗,重新設置了各階段實驗任務,實現了課程實踐教學體系的層次化、立體化;同時輔以多媒體教學手段及互動式的教學設計,注重教學引導,達到了提高學習者學習主動性和積極性、增強其理論應用能力的目的。
[關鍵詞]創新思維;編譯原理;實驗教學;學習者為主體
編譯原理課程是計算機相關專業學生的必修課程和高等學校培養計算機專業人才的基礎及核心課程,同時也是計算機專業課程中最難及最挑戰學習能力的課程之一。編譯原理課程內容主要是原理性質,高度抽象[1]。編譯原理實驗課作為將理論知識轉化成實踐經驗的手段,對完善編譯原理課程教學起到重要的輔助作用,目的是使學生具有設計、實現、分析和移植編譯程序等方面的初步能力,為今后從事軟件開發或理論研究工作打下堅實的基礎。為響應教育部關于“深化高等教育教學改革,培養學生的創新精神和實踐能力”的號召,在專業課程尤其是有一定難度的專業理論課程的教學中研究如何發揮學生的學習主動性和積極性,提高其學習興趣,培養其實踐應用能力就成為新形勢下高校培養人才的新挑戰。
一、實驗教學現狀
本校編譯原理課程在實驗內容方面:(1)以綜合應用型實驗為主,要求學生完成“小型程序設計語言TinyC編譯程序的實現”實驗任務。缺乏對重要知識點及難點的驗證型實驗設計,如“編譯程序的自動構造技術”等若干個重要知識點。這些知識點在教學計劃中占了將近40%的課時,且是計算機相關專業后續課程如程序語言構造與實現、自動機與文法理論的重要組成部分,對于掌握計算相關理論有重要的基礎作用[2]。它們內容抽象,理解起來不太容易,因此亟須相應的實驗手段輔助教學。(2)缺乏對大型綜合性實驗的合理規劃安排。大型綜合性實驗的實驗內容集中于大部分教學內容完成后安排,使得實驗各個階段的任務不明確,無法有效幫助學生建立編譯程序各個步驟的概念,導致其忽略編譯程序的全局性,進而不能全面深刻理解整個編譯程序實現的原理。此外,由于實驗內容具有一定的難度,讓很多學生知難而退,難以達到預期的實驗效果。(3)缺乏創新型實驗和提高型實驗的設計,這使得教學內容沒有被充分利用,學習者的主動性和積極性難以發揮。在課程采用的實驗手段方面:(1)全班做一個題目,不僅難以避免抄襲,而且忽略了學生的個體差異。(2)學生按照教師在課堂上的布置或者指導書上的步驟,按部就班,完成相關操作,學習的主動性、積極性受到限制,不利于學生的創新意識、創新思維、創新能力的培養。(3)與實際應用結合不緊密。學生不清楚相關原理能解決什么實際問題,導致興趣不高。
二、改革指導原則
(一)須滿足現代計算機應用所要求的人才模式需求
編譯原理課程實驗內容設置應注重與教學內容的配套,如“虛擬語言編譯程序的實現”“限定任務的編譯程序工具練習”等,且實驗對象都是虛擬的,同時限定了實驗任務及目標。在計算機應用如此普遍的今天,計算機相關專業課程的實驗教學應注重與實際應用的結合,在強調概念、原理、思想的同時鍛煉解決實際問題的手段和方法[3]。
(二)須強調素質的培養
編譯原理課程就其自身特點看,有著很強的邏輯推理性和高度概括的抽象性,同時也將實驗科學和理論科學高度結合。因此,教師應在教學內容上和教學過程中緊緊把握這一特點加強對學生的創造性思維和創造能力的培養,從而提高學生的綜合素質。從現代社會、科技的發展趨勢看,學生綜合素質的培養比技能的培養更為重要[4]。
(三)須適應現代化的教學手段
互聯網技術的發展及普及帶來信息共享及獲取方式的巨大改變。編譯原理課程實踐教學改革要從實踐內容體系及教學手段等方面充分體現這一時代特征,在教學手段方面更多地引入演示、多媒體教學輔助等,使得課程能以更活潑多樣的新面貌出現[5]。
三、改革實踐
(一)實驗體系結構設計
(1)根據構成編譯程序的六個步驟及相應知識點的獨立性與完整性將原綜合性設計實驗“小型語言TinyC的編譯程序”拆解為四個階段性實驗“1.詞法分析程序Scanner”“3.語法分析程序Parser”“5.語義分析程序Ana⁃lyzer”,以及“6.代碼生成程序CodeGenerator”,安排在相應知識點教學內容及前階段實驗完成之后分別進行(見圖一)。(2)為實驗1、3、5分別設計了三個預備任務“畫識別TinyC語言合法單詞的DFA”“寫TinyC語言CFG”以及“畫TinyC語言屬性樹”,以課堂作業的形式安排學生完成并實時討論與講解,制作微視頻供學生課后鞏固學習。(3)對重要知識點及難點,如“編譯程序的自動構造技術”這一在許多相關領域都有應用的基礎理論知識,設計創新型實驗“2.Flex(LEX)工具實驗”和“4.Bison(YACC)工具實驗”,突出理論知識在實際生活中的創新應用,同時幫助學習者深刻理解和牢固掌握這部分知識。
(二)任務實現與效果
實踐群體為某高校某年級計算機科學與技術專業及軟件工程專業近百名學生。學生的作品集中反映出學生對任務的興趣很高,充分開動了腦筋,查閱了資料。實驗結果有很多創新,并結合了實際應用。(1)對于綜合性設計實驗1、3、5,首先教師通過展示程序框架講解TinyC語言詞法及語法語義等的約定。之后布置課堂作業,引導學生完成,并隨后在教師講解下糾正錯誤。這些課堂互動任務還制作了微視頻以供學生課后學習。這些做法是實驗后續任務的實現基礎,通過引導學生入門提高學生自主完成實驗的興趣,同時保證其對涉及知識的理解與鞏固。(2)對于提高和創新型實驗,實驗2“Flex工具實驗”與實驗1相比是詞法分析程序兩種不同生成方法的實踐練習。實現過程分為兩部分,首先要求學習者在一個Flex使用示例“識別輸入文本中的單詞和數并分別統計個數”的指導下掌握Flex工具的使用步驟;隨后完成自主設計的實驗任務:學習者自行設計詞法規則,寫出正規表達式序列并使用Flex工具進行分析并截圖展示成果。在上交的近90份作品中,除2個不符合實驗任務要求的作品及5個僅在示例上做小改動的作品以外,其余作品共完成了13項不同主題的任務,充分展示了學生的創造性。有代表性的作品集如:“識別程序語言單詞或關鍵字”“識別動物字符圖(馬牛豬貓)中的符號=”“判斷合法日期值”“識別子串”“識別合法姓名和電話”“識別合法E-mail地址”等。其中,實驗作品“識別動物字符圖(馬牛豬貓)中的符號=”很有趣,學生在課堂上進行了展示。(3)實驗4“Bison工具實驗”與實驗3相比是詞法分析程序兩種不同生成方法的實踐練習。實現過程也分為兩部分,首先要求學習者在一個Bison工具使用示例“結合Flex工具實現簡單表達式求值”的指導下掌握Bi⁃son工具的使用步驟;隨后完成兩個實驗任務:第一部分為必做任務,要求學生根據示例寫出算術表達式的無二義文法,并對比其與示例的二義文法的區別;第二部分為選做任務,要求學生自行設計詞法及語法規則,寫出構詞規則序列、產生式序列及翻譯規則,使用Bison工具進行分析并展示成果。有一半以上學生完成了選做任務。其中有代表性的作品集如:“程序設計語言語法規則設計”“識別溫度開關及設置指令”“回文的判斷”及“科學計算器模擬”等。其中有兩個非常突出的作品“中心嵌入英語語法解釋器”和“親屬關系自動識別器”。
①中心嵌入英語語法解釋器
英語語法中的中心嵌入概念即“將短語嵌入相同類型的另一短語中間”,使得英語長句解讀起來會比較易于理解。中心嵌入英語語法解釋器嘗試將該類型的復雜嵌套語句進行解析并還原成為多個易于理解的主謂賓子句。
②親屬關系自動識別器
這個小程序可以為孩子或外國人提供一個簡易的學習中國人親屬間稱呼的工具。
四、改革體會
(一)強調學生作為學習主體
在教學過程尤其是實踐教學過程中,學生是學習的主體,要完成任何一種形式的教學都必須有學生主動密切的配合,否則教與學易脫節。但要使學生真正地參與到教學改革中去,那么學生原有的學習模式以及對教學方法的認知就要有觀念性的轉變[6]。(1)自主設計實驗只指定目標不規定具體實驗內容,這使得學生無例可循,必須結合實際,開動腦筋自己設計問題并解決它。這個實驗的效果是明顯的,有令人驚喜的作品出現。這說明只要提供給學生以主動思維的空間,完全可以改變其學習過程中的等待性和盲目性,從而促使其主動思考,主動學習。(2)督促學生現場完成大型綜合設計實驗的具有先導性質的作業,并進行互動講解及討論。通過現場完成該作業使學生明白實驗任務要解決的問題是什么,認識到哪些問題是可以解決的,從而克服畏難情緒,促使學生自己主動去解決這些問題。學生因而充分認識、挖掘了學習潛力,也逐步提高了學習信心和興趣,增強了學習的主動性。
(二)教學方法及引導是關鍵
在教學過程中教師要有明確的教學思路和正確的引導方法,才能把握住整個教學過程,使教學改革得以順利推進。(1)將大型綜合設計實驗按照知識點的獨立性分割成四個階段,配合教學內容的完成而安排;從實驗任務分離出課堂作業,作業完成后才著手實驗任務。由于作業內容對實驗任務有先導作用,教師將其制作成視頻提供給學生課后自主學習。以上手段避免了學生一上手就面對大型問題、復雜問題,引導其一步步地完成實驗任務。(2)在同一個知識點上設計不同方法的對比實驗。如對知識點“詞法分析程序的實現”,設計實驗“TinyC語言Scanner”和“Flex工具實驗”;對知識點“語法分析程序的實現”,設計實驗“TinyC語言Parser”和“Bison工具實驗”,要求學生完成實驗任務后進行對比,從而強化概念和方法,引導學生思考和掌握教學內容。(3)根據學生實驗能力有差異這一特點,把實驗內容分成示范、必做和選做三塊。如示范任務為“Flex工具示例”和“Bison工具示例”,有六個必做實驗任務以及“Bi⁃son工具實驗”的第二個選做任務。對那些基礎好,能力強、速度快的學生,除了必做內容外,還要求他們完成選做內容;而對實驗技能一般的學生,把其他學生完成的選做內容進行展示,要求他們觀察結果(相當于示范)。
(三)利用成績激勵機制
對絕大多數學生來說考試方式、內容決定了他們的學習方法,甚至是思維方式[7]。因此,充分利用成績來引導學生配合教學改革就顯得十分必要。在實踐中從這方面入手,有以下措施和體會:(1)加大平時成績的比例,肯定付出的努力,獎勵主動思考的成果。例如三次課堂作業均通過課堂巡視的方式找出完成得好或錯誤較典型的進行現場展示,獎勵獲得課堂展示機會的優秀作品的作者,以作品難易程度和獨創性給出成績,處理抄襲和雷同實驗作業的成績。(2)期末考試設置少量與實驗內容直接相關的考試內容。
五、結語
綜合以上,本次教學實踐改革達到了以下目標:(1)對實驗內容及手段的設計和組織進行改進,更好地提高了編譯原理實驗課的教學效果,有效達成了教學目標,鞏固、加深了學生對基本知識、基本理論的了解,突出了教學重點及難點。(2)使學生掌握了相關基本技能,提高了學生的動手能力、綜合運用知識解決實際問題的能力,發揮了學生的自主學習能力和創造性。(3)加強了師生之間的交流。當然,同時存在一些遺憾。首先,有些實驗任務內容設置還是不夠合理,如“Bison工具自主設計”這一較大型的困難任務不加任何引導就完全放開給學生,導致上交率只有一半,交上來的作業也存在未完全調試完成的情況。其次,在現代教學手段的輔助上,雖然本項目制作了視頻輔助學習者線下自學,但未充分利用線上討論手段。計劃改進措施是將“Bison工具自主設計”實驗改為必做任務,但內容調整為教師指定若干(3~4個)與示例不同的問題,選定其中一個或自行設計(有創新加分)完成任務。任務中學生自由組成小組,實驗討論課以組為單位展示作品,培養學生的協作能力。改革實踐證明以上措施對提高學生學習興趣和實踐能力、創新能力的培養很有幫助,不僅有多樣且新穎的實驗作品出現,課堂教學效果也得到了加強,這體現在課堂的教與學交流中,也體現在課程結束考核的成績上。我們計劃在今后的教學中結合線上展示和討論手段進行啟發指導,促進更多水平較弱的學生加入主動創新的活動中來。
[參考文獻]
[1]聞炳海,劉鵬,王利娥,張超英.編譯原理工程化教學方法研究[J].大學教育,2015(2):126-128.
[2]王慧嬌,黃廷輝,朱英.以計算思維能力培養為核心的“編譯原理”課程教學改革探索與實踐[J].工業和信息化教育,2018(4):24-28.
[3]徐秀娟,江賀,劉馨月,賈棋.編譯原理立體化教學體系建設探索[J].計算機教育,2017(6):45-49.
[4]成琳.探究式項目教學法培養計算機專業創新思維型人才[J].高等教育,2012(22):22.
[5]張馳.互聯網時代下的在線網絡課程建設研究[J].內蒙古財經大學學報,2015(6):108-111.
[6]李子建,邱德峰.學生自主學習:教學條件與策略[J].全球教育展望,2017(1):47-57.
[7]秦瓊.開放大學考試:困境之思與改革之路[J].當代繼續教育,2018(6):66-70.
作者:余芳 王曉明 趙森 單位:暨南大學信息科學與技術學院計算機系