周汝雁 韓彥嶺 張明華 于慶梅 徐利軍
摘要:針對編譯原理課程的特點、課程目標定位及普遍存在的問題,提出采用人本主義教學理論和構建主義學習理論作為指導,通過問題導入和興趣激發的教學方法,在提高學生的積極性、主動性和探究性,發揮學習潛能,學生學習能力和專業能力培養等方面提高教學效果。
關鍵詞:編譯原理;教學方法;教育心理學;人本主義教學理論;構建主義學習理論
1、編譯原理的課程目標定位及存在問題
編譯原理的課程目標定位是讓學生掌握和理解編譯系統的結構、工作流程以及編譯程序各組成部分的設計原理和實現技術,從而掌握分析、設計、實現和維護編譯系統的能力?;谠撜n程目標,編譯原理課程的教學方法一般都是以編譯器原理和實現技術的講授為主,以簡單算法設計強化對原理的理解;課程實驗則是通過編譯器分解編程,最終組合完成一個簡單的編譯器,或擴充一個簡單的編譯器。編譯原理是一門理論深度和實踐要求并重的課程。在學習過程中,許多抽象模型、概念和算法學生難以理解,而構造一個完整編譯器也具有一定挑戰性,學生容易產生畏難心理,再加上感覺自己將來參與編譯程序開發工作的可能性不大,學習的興趣和積極性不高。由于課程學習確實存在一定的難度,一直是計算機專業中公認的難教、難學課程之一。
2、人本主義教學理論指導下,激發學習興趣,提高學習積極性,發揮學習潛能
人本主義學習理論認為學生都具有學習的愿望和潛能,在好奇心的驅使下,在合適的環境條件下,會自覺吸收有趣和需要的知識,當學生了解到學習內容與自身需要相關時,學習的積極性更容易激發;人本主義理論強調教學的目標在于學會學習和促進學習;認為學生是教學活動的核心,教師的責任是協助學生最大限度地發展自己的潛能,為學生提供學習的手段,而如何學習則應當由學生自己決定,教師扮演的是促進者、幫助者、輔助者、合作者的角色。人本主義的課堂教學模式包括:以題目為中心的課堂討論模型、開放教室的教學模型、自由學習的教學模型。
在人本主義教學理論指導下,在本課程的第1節課上,通過課堂討論及網絡查找的方式,讓學生明確編譯原理是怎樣一門課程,主要學習哪些知識,需要用到以前學到的哪些知識,編譯原理是否只是講如何編寫編譯器的課程,除編譯器外還有哪些其他應用等。讓學生了解編譯原理課程以介紹程序設計語言編譯程序構造的基本原理和設計方法為教學目標,是一門理論性、實踐性、技術性很強的課程,強調理論與實踐的緊密結合。引導學生有意識地將以往所學的多門課程的知識應用到本課程中,并讓學生了解本課程技術在除編譯器之外的多種應用,讓學生了解編譯技術在計算機軟件、數據庫、操作系統、網絡信息處理、語言和文字處理、人工智能、機器學習、并行處理等領域都有廣泛的應用,將編譯技術與自己感興趣的研究領域緊密結合起來,對編譯原理課程產生興趣。
在第一節課后布置編寫詞法分析器的實驗項目,讓學生自主選擇完成過程,可以在詞法分析理論課之前,按3人一組完成實驗,能獨立完成實驗且方法正確的小組可以不再聽詞法分析的理論課,自由安排上課時間;也可以選擇聽課,在詞法分析授課結束后完成實驗。采用此方式后大多數學生都會嘗試自主學習完成詞法分析器項目,但絕大多數學生會遇到各種問題,而且由于編寫詞法分析器的方法不止一種,在驗收實驗和跟學生的探討過程和問題解答過程中,學生就會覺得還有必要再系統全面地聽課,而且聽課時非常有目的和針對性,并且能體會和總結出小組和自身在完成實驗過程中的能力和存在的問題,因此采用此方法不僅能激發學生學習的積極性、主動性,還能夠充分發揮學生自主學習的作用。
為了顧及學生程度差別,降低部分學生自主學習的難度,提高學生學習和實驗的興趣,實驗項目題目的設計不僅有難有易、有選擇性,并且最好具有啟發性和相關性。如在詞法分析器(掃描器)設計實驗項目中,我們設計了從最簡單的正規式r=(a|b)*aa(+1-)1描述語言L(r)的掃描器的構造,到網絡信箱地址正確性檢查,到文本編輯器的單詞正確性檢查和重復性檢查、XML文檔分析等。題目有難有易,有不同領域的應用,學生可以根據程度選擇自己感興趣的題目。
詞法分析器相關的原理和技術相對簡單,便于學生自主學習,學生便不會在上課之初就產生畏難心理,在后續課程中和構造語法分析器、語義分析器和優化器的實驗過程相似,也可以收到很好的課堂教學和實驗教學效果。
3、認知理論及構建主義學習原理指導下,“問題”導入,循序漸進,深入理解課程內容
認知理論認為人腦是一個信息加工系統,當人處于清醒狀態時,不斷地對來自外部環境的刺激信息進行加工處理,認知心理學有關信息加工的觀點認為:問題解決在信息加工過程中占有非常重要的作用。認知理論在教育中的應用形成了構建主義學習觀,建構主義學習觀的提出人布魯納認為如果學習者能主動構建自己的理解,學習將更有力度;學習者的認知發展水平或先前的知識對新的學習起到非常重要的作用,教師應當幫助學生將之前的知識和經驗與新的更抽象的或符號的知識和經驗聯系起來。
隨著以計算機和網絡技術為核心的現代信息技術的發展,隨著腦科學有關人的高級認知機制研究成果的呈現,當代教學理論中基于情境認知與情境學習的理論研究和實踐模式的開發正受到越來越多研究者的關注和教育工作者的重視。情境學習理論強調學習情境的極端重要性,重視主動探索操作與經驗學習,強調學習互動參與和分享,強調學習是學習者從邊緣參與到核心參與的文化適應過程。當前常見的情境學習理論的應用形式是基于問題的學習,也被稱為拋錨式教學。它強調培養學生解決問題的能力,但更側重于給學生提供有意義的現實問題,并要求學生以合作探究的方式來共同尋找解決方案。
基于問題的課堂教學方法在教學實施過程中,教師采用以下幾個步驟協助學生進行學習:①提出問題;②引導學生了解問題;③組織并協助學生獨立學習和小組探討;④形成個人思想并進行小組交流;⑤教師分析和評估問題,并進行補充講解。我們通過問題設置和課程的精心設計,讓學生明確每節課的學習目標,并通過問題進行課程銜接,讓學生循序漸進更好地理解和掌握編譯技術的主要理論基礎。例如,在講解通過狀態圖代碼化構造詞法分析程序時,先提出如下問題:①正則表達式可以對什么進行描述?②NFA是做什么用的?③用什么方法可以把正則表達式轉換成等價的NFA?④DFA與NFA的區別是什么?⑤用什么方法可以將NFA確定化為DFA?⑥為何要最小化DFA?如何最小化?⑦如何將狀態圖轉換為代碼?讓學生分組學習和討論,一個小組提問其他組回答的方式進行課堂教學,學生通常能正確地給出簡潔概括性的答案,但不能給出具體的解決過程,這樣教師再對解決步驟進行詳細講解,學生就會非常準確而且牢固地掌握相關知識。學生在這些問題的解答過程中會自然而然地將以上問題中的正則表達式、NFA、DFA與詞法分析程序構造有機聯系起來:正則表達式→NFA→DFA→最小化DFA→代碼,能夠使用正則表達式對程序設計語言詞法單元的模式進行描述、用Thompson結構法能將正則表達式轉換成等價的NFA、用子集法能將NFA確定化為DFA、將DFA最小化可簡化程序代碼,從而理解和掌握詞法分析程序構造技術和過程。endprint
語法分析需要掌握上下文無關文法及其設計,然后掌握語法分析技術,其中自頂向下的語法分析或自底向上的語法分析方法的劃分都較容易理解和接受,自頂向下的語法分析中的手工構造LL(1)分析器的方法中涉及文法約束條件和分析表的構造,比較繁瑣,較難理解。我們設計了如下問題引導學生學習:①含有左公因子的文法在編程時會引起什么問題?②含有左遞歸的文法在編程時會引起什么問題?③怎樣的文法是LL(1)文法?④FIRST集和FOLLOW集的作用是什么?如何計算?⑤分析表如何構造?通過對這些題目的探討和講解,學生就能夠理解構造無回溯的自頂向下的語法分析器,要求文法必須是LL(1)文法;凡是含有左公因子的文法會造成程序的回溯,而含有左遞歸的文法會造成程序的死循環,通過消除左遞歸、提取左公因子大部分非LL(1)文法可以改寫為LL(1)文法;文法中產生式A→a,在分析表構造中的填寫的位置取決于FIRST(a),當FIRST(A)含8時,還取決于FOLLOW(A)。在上述問題的探究和理解過程中,學生會將以上問題有機聯系起來形成手工構造LL(1)分析程序的方法和步驟為:消除左遞歸并提取左公因子、FIRST集和FOLLOW集的構造和LL(1)分析表的構造。
盡管在授課中采用的課堂形式不盡相同,但基于問題的學習過程中,學習和問題的解決都是圍繞疑問、案例或方案組織,隨著問題的展開和問題解決不斷出現進展,可以較好地輔助學生的學習。在語法制導翻譯、目標代碼生成和優化等課堂教學中采用基于問題的課堂教學方法也取得了很好的教學效果。
在采用問題導入的教學方式時,課堂提出的問題要精心設計,構思巧妙的問題能夠激發學生的思考,啟發學生的探索和發現,從而獲得知識。為了達到最佳教學效果,在問題的提出上注重考慮了以下兩點:第一,在設計問題時力求精練適當。所提問題需是重點、難點,能引起疑問和爭議,避免太難學生無法解答,也不能太易學生無需思考和探究。第二,設計問題具備有序性、相關性和啟發性,由于編譯程序的設計是一項大的系統工程,相關技術即便是分解成多個階段,每一部分內容包含的概念、原理和算法依然比較多,具有多學科聚焦的特點,因此提出的問題要具備有序性、相關性和啟發性,不僅能貫穿前后知識點,起到主線的作用,還要通過問題的探究由表象到本質、由已知到未知,讓學生掌握相關原理和技術。
4、結語
根據編譯原理課程理論性強、抽象性高、邏輯思維嚴密、算法復雜度大,學生畏難、理解困難的特點,在教學過程中采用人本主義教學理論和認知理論及構建主義學習理論作為指導,在充分激發學生學習興趣的前提下,通過問題導人的教學方法,結合不同形式的教學實踐和實驗,讓學生自由、積極主動地參與到學習過程中,在更深層次上提升了學生的計算機專業素養。endprint