張淑艷 趙哲
摘要:針對編譯原理課程的教學現狀,引入研究性教學模式,以“問題”為中心,以“學習”為目標,重新設計課堂教學、實踐教學和教學評價環節,強調學生的主體性和教師的主導性,在提高教學質量的同時,培養學生的創新能力。
關鍵詞:教學改革;研究性教學;編譯原理
一直以來,編譯原理作為計算機相關專業的專業基礎課程是一門學生認為最難學、教師認為最難講的課程。然而,傳統的授受式教學模式在教學中存在一定的弊端,主要表現在固化教師教學內容、降低學生學習積極性、壓制學生創新能力等。傳統教學模式已不能滿足大學生深入學習和理解編譯原理的要求。為了解決這一問題,一種新型的教學模式,即研究性教學,被提出。文章根據編譯原理的教學現狀,對課堂教學、實踐教學以及教學評價進行研究性教學改革,旨在提高教學質量,培養創新型人才。
1、編譯原理的教學現狀
近50年來,編譯原理一直是計算機相關專業的重點教學內容。然而,在其教學過程中經常存在以下問題。
首先,編譯原理具有較強的抽象性、理論性和邏輯性,學生理解起來相對困難。同時該課程與其他課程有較大的交叉性,學生必須預先學習計算機組成原理、高級語言程序設計、數據結構、操作系統等課程,并且最好擁有算法設計與分析、離散數學等方面的基本知識。因此,在學習編譯原理之前,學生要擁有比較扎實的專業基礎。
其次,學生們普遍認為編譯原理的學習過程枯燥乏味,知識點多且較難理解。甚至存在一些學生認為編譯原理沒有應用前景,不如學習編程語言(如c++)實用。隨著學習時間的推移,學生容易失去學習的興趣和信心。
再者,教師采用傳統的授受式教學模式,重視課堂理論教學,習慣性地將書本內容強制灌輸給學生,而學生則使用強制記憶法被動地接受知識。教學過程忽視實踐應用環節,導致理論與實踐相脫離。這種教學模式降低了學生的學習興趣,削弱了學生的思考能力,壓制了學生的創新意識。
為了解決以上問題,教學模式亟待改革。2005年,教育部制定了教高[2005]001號文件,該文件明確地指出高等學校本科教學工作需要“積極推動研究性教學,提高大學生的創新能力”。并且,現有高等院校也有較充足的資源和環境(如圖書館和實驗室)來開展研究性教學。因此,我們有必要也有能力在教學中引入研究性教學模式。近幾年,我們便對編譯原理課程進行了研究性教學的嘗試和探索。
2、研究性教學的內涵
研究性教學以“問題”為中心,以“學習”為目標,堅持授人以漁的原則,引導學生,啟發學生,是一種讓學生通過“研究”的方式從事學習活動的教學方法。在傳統的授受型教學模式下,教師占有知識的霸權地位,學生只能被動地接受知識;而研究性教學調整了教師和學生在教學活動中的角色,在維持教師主導地位的同時,強調學生的主體地位。從教師方面,教師在教學過程中擔任設計者、引導者、啟發者和管理者的角色;從學生方面,學生在學習過程中擔任問題發現者、研究者、解決者和創新者的角色。在教師的指導下,學生通過搜索資料對相關問題進行探索,在研究和解決問題的過程中,吸收知識、應用知識、解決問題并獲取新穎的經驗,培養主動探索、主動思考和主動實踐的能力。
在長期的教學活動和教學改革中,存在著3種常見的研究性教學模式。
(1)問題解決模式。該模式是在教師的組織下,學生通過問題進行學習,再通過學習來解決問題。
(2)自主探究模式。該模式是讓學生模擬科學家從事科研過程的方式,教師不直接參與其中,只在必要時給予學生一定的指導。
(3)課題參與模式。該模式采用教師帶領學生直接參與教師的實際研究性課題的方式。
在這3種教學模式中,問題解決模式適合課內教學,自主探究模式和課題參與模式適合課外教學。
3、研究性教學的實施
編譯原理課程的教學內容涉及大量的理論知識,這些知識比較抽象且邏輯復雜,如形式語言理論、正規式、有限自動機理論、上下文無關文法、自下而上分析、自上而下分析、屬性文法和語法制導翻譯等。大量的概念、算法和符號很容易使學生對學習產生恐懼心理,而且大量的理論知識與有限的教學時間之間存在沖突,使教師很難將所有內容都詳細展開、深入講解。最終導致學生在學完整門課程之后,只表面了解,而不知道各知識點之間的關系以及各知識點在編譯器中的作用。為了解決上述問題,我們在課堂教學、實踐教學和教學評價上分別對編譯原理課程進行研究性教學改革。
3.1 課堂教學
在教學過程中,理論教學是學習的基礎。本節從教學內容和教學過程兩方面對課堂教學重新設計。
在教學內容方面,教師針對學生情況優化和調整教學內容。在學期開始、學期1/3和學期2/3這3個時間點上,教師深入學生內部,通過聊天、調查問卷等方式,了解學生的學習現狀。調查內容主要有學生的學習基礎、對授課內容的期望以及現在的學習態度。然后針對調查結果,在保證課程內容系統性的基礎上,教師根據學生情況精簡或添加授課內容。例如,對于先修課程,如果編譯原理中存在某個知識點涉及其他相關課程,教師可以提前一周發布相關課程名稱及在該課程中對應的知識點,保證在這部分基礎薄弱的學生得以復習。對于學生要求新添加的內容,教師可以抽出一段時間來做相關講座以充實教學內容。對于編譯原理的新課程,如果學生對此部分內容比較熟悉,如高級語言的一般特性,教師可以列出提綱,以作業的形式鼓勵和引導學生在課外進行歸納總結;如果是重點和難點內容,如詞法分析階段中的有限自動機理論,教師則需展開并深入講解,講解時應避免概念式宣講,盡可能采取問題啟發的方式引導學生帶著問題聽課,調動學習積極性。
在教學過程方面,我們要避免教師唱“獨角戲”,強調學生的參與性。不同于以往考查學生記憶率的提問回答的方式,學生參與教學過程是在教師設置好的問題場景下,隨著教師的引導,思考問題、探討問題、解決問題,并最終達到真正學習的目的。例如,在學習詞法分析器中的有限自動機(包括不確定有限自動機NFA和確定有限自動機DFA)時,教師并不直接去枯燥地講解理論和方法,而是給出問題場景,通過探討型的方式教學。教師首先讓學生思考在詞法分析階段,根據已經學習的知識(如正規式)能否實現詞法分析器,進而引出學習有限自動機的必要性,并對兩種有限自動機NFA和DFA展開講解。在講解的同時,請學生思考NFA和DFA的區別和聯系,以及各自的優點和缺點。在講解結束后,再請學生根據NFA和DFA的各自特點,思考兩者分別有哪些應用場景。對于比較困難的問題,教師可以給予必要的引導,如最后一個問題,教師可以給出多個場景,讓學生進行選擇。后期學生會發現這些應用場景的實現,本質上就是實現了一個詞法分析器。在這種由問題引導的教學方式中,學生很容易感受到各個知識點的環環相扣。某個知識點的不足,將引出一個新的知識點,而新知識點對以往缺陷的解決過程會使學生的自信心與自豪感大大增強。而當再發現新知識點也存在缺點時,學生將有很大的勇氣和動力去解決它。
3.2 實踐教學
為了深入理解編譯原理,實踐過程是非常關鍵的。本節從實踐內容和實踐管理兩方面對實踐教學進行安排。
在實踐內容方面,采用兩種實踐方式。方式一為基礎實踐,實踐過程與理論教學同步,是對基本理論的實現練習;方式二為綜合實踐,每次的實踐內容是編譯器的一個模塊,當所有作業完成后,能基本上形成-_個小的編譯器。方式一的實踐內容相對簡單,能加深學生對理論的認識,但不能突出各知識點間的關系;方式二能較清晰地表達各知識點間的關系,但作業難度較大,學生不易完成。我們引入研究性教學,將這兩種方式結合,實現優缺互補。在安排實踐內容時,基礎實踐主要包括單詞符號統計的編程實現、有限自動機的編程實現、LEX的使用、LL(1)分析的編程實現、LR分析的編程實現(主要是LR(O)、SLR和LR(1))、YACC的使用和屬性文法的傳值實現,學生需將所有基礎實驗全部完成。綜合實踐包括可編程計算器的實現、文本編輯器的實現和語言結構化編輯器的實現,學生可以從3個綜合實驗中任選其一。
在實踐管理方面,我們采用小組分組、組長負責制。10人一組,自薦組長。為了避免以往“一人種樹,眾人乘涼”的現象,“加強”作業力度,將一組一份作業的要求轉化為一人一份作業的要求;“降低”作業難度,轉變組長“種樹”的角色為“助教”的角色來幫助組員完成作業。此時對組長的要求較高,不僅需要提前完成作業,更需要擁有較強的專業基礎、組織能力、表達能力以及教學責任心,而教師也需提前對組長進行專業培訓,使組長滿足“助教”的專業水平。實踐作業的考核環節采取組長打分和答辯打分兩種。對于基礎實踐,由組長根據組員對本次作業的實踐情況,給出0~5分(0-沒寫、1-不及格、2-及格、3-中、4-良、5-優),并備注出其不足之處。對于綜合實踐,在課程臨近結束時,對最終完成的小編譯器進行考核,首先組長對每個組員的編譯器給出O~50分(0-沒寫、1~10-不及格、11~20-及格、21~30-中、31~40-良、41~50-優);然后教師對其進行答辯考核,隨機從每個小組中選擇一位學生代表整組演示項目,每人10分鐘(學生演示6分鐘,教師和學生提問4分鐘),并給出0~50分作為小組每位成員的答辯成績。在考核環節中,特別是對綜合實踐的考核,因為單個學生的答辯成績將代表整組組員的成績,所以任何組員都不敢輕視實踐過程,各個小組成員相互監督、相互督促、相互切磋、共同成長。每次的實踐成績要向學生公布,接受學生質疑,創造良性競爭的學習環境。
3.3 教學評價
研究性教學在評價時注重考慮過程取向、實踐取向和合作取向。本著公正、公開的原則,將成績構成多元化,采用“階段考核+期末考核+實踐考核”結合的方式。階段考核安排在學期1/3、學期2/3這兩個時間點上(在調查學生情況的兩個時間點之前),考核方式為網絡題庫閉卷考試,題型為單選題、多選題、判斷題和填空題,主要考查學生對基本概念和理論的理解,每次階段考核占總成績的20%。期末考核安排在學期末,考試方式為“網絡題庫閉卷考試+筆試閉卷考試”,題庫題型與階段考試相同,筆試題型為綜合題,主要考查學生對理論的綜合運用,占總成績的30%。實踐考核由小組組長和教師綜合打分,考核學生的動手能力及團隊溝通能力,占總成績的30%。多種考核方式比單一考核方式更能準確地反映學生掌握知識的程度。由于多次考試的刺激,學生在學習過程中保持高度的危機感,積極參與教學活動,在扎好學習基礎的情況下,穩步發展創新精神。
4、結語
研究性教學改革主要針對編譯原理課程的課堂教學、實踐教學和教學評價3個方面進行,這對其他課程的教學實踐也具有借鑒意義。由于現在正處在改革初期,在取得了一定的教學成果的同時,在教學過程中也存在一些值得注意的地方。在教學資源方面,雖然很多學校已經投入大量資金建設圖書館和實驗室,但與國際名校相比,教學資源仍顯不足;就教師素質而言,我們需要更專業、更有水平的教師,這不僅體現在教學能力上,也體現在廣泛的知識面、豐富的生活閱歷及組織能力上。總之,在教學中進行研究性教學改革,我們仍需不斷探索,以提高教學水平,培養有創新意識的綜合型人才。