摘要:“編譯原理”是計算機專業(yè)的核心理論課程之一,兼具較強的理論性和實踐性。針對實際教學(xué)過程中出現(xiàn)的教難、學(xué)難、實驗更難的現(xiàn)象,本文闡述了研討式教學(xué)模式在該課程教學(xué)中的應(yīng)用。實踐證明,該模式的實施不僅提高了學(xué)生對課程知識的掌握程度,而且提高了學(xué)生提出問題、分析問題、解決問題的能力。
關(guān)鍵詞:研討式教學(xué);編譯原理;教學(xué)模式
“編譯原理”是計算機專業(yè)的核心理論課程之一,也被視作該專業(yè)最難的課程之一,主要介紹了高級程序設(shè)計語言編譯系統(tǒng)的構(gòu)造原理、設(shè)計方法以及主要實現(xiàn)技術(shù),綜合了數(shù)據(jù)結(jié)構(gòu)、計算機語言、算法和軟件設(shè)計、離散數(shù)學(xué)等知識,具有概念多、理論性強等特點。學(xué)生通過系統(tǒng)地學(xué)習(xí)這門課程,不僅能夠了解編譯系統(tǒng)內(nèi)部的工作原理,而且可以加深對程序設(shè)計語言的理解,真正做到知其然,且知其所以然,有助于提高邏輯思維能力、實踐動手能力和綜合運用專業(yè)知識的能力[1]。
“編譯原理”課程存在的教難、學(xué)難、實驗更難的現(xiàn)象,主要有以下幾方面原因:
(1) 課程直觀性不強且理論性強,通常教學(xué)過程并不涉及編譯器的具體實現(xiàn),因此學(xué)生沒有直觀感受,很多理論概念的出現(xiàn)降低了學(xué)生的學(xué)習(xí)興趣,他們甚至認(rèn)為編譯原理無用,教學(xué)效果不理想。
(2) 實踐環(huán)節(jié)過于薄弱,由于編譯系統(tǒng)的實現(xiàn)涉及到若干課程,綜合性、連貫性均很強,即使在分模塊設(shè)計的時候也存在較大難度,因此影響學(xué)生動手能力的提高。
1研討式教學(xué)模式
現(xiàn)代教育理論認(rèn)為,教學(xué)過程是教與學(xué)雙邊互動過程。教學(xué)是教與學(xué)的統(tǒng)一,教為學(xué)而存在,學(xué)又要靠教來引導(dǎo),兩者是相互依存,相互作用,不可分割的統(tǒng)一整體。因此能夠充分挖掘教師和學(xué)生潛能的基于建構(gòu)主義教學(xué)理論的研討式教學(xué)模式成了教學(xué)研究的熱點[2]。
研討式教學(xué)模式又稱習(xí)明納(Seminar)教學(xué)模式,目標(biāo)是培養(yǎng)學(xué)生科學(xué)的思維方法,拓寬學(xué)生的知識面,使學(xué)生了解和掌握如何調(diào)研、查閱資料、提出問題、解決問題的思想和方法,提高學(xué)生的表達和溝通能力,培養(yǎng)學(xué)生的創(chuàng)新和團隊意識[3]。該模式也正符合當(dāng)今信息時代對大學(xué)生學(xué)習(xí)能力的要求。研討式教學(xué)模式的關(guān)鍵在于教師和學(xué)生角色的轉(zhuǎn)變,即教師由知識傳授者到學(xué)生學(xué)習(xí)引導(dǎo)者的轉(zhuǎn)變,學(xué)生從知識接受者到學(xué)習(xí)的積極參與者的轉(zhuǎn)變。
2研討式教學(xué)在“編譯原理”課程中的實施
2.1重構(gòu)教學(xué)內(nèi)容,確定研討課題
近年來,優(yōu)秀的《編譯原理》教材層出不窮,教材闡述知識的系統(tǒng)性、科學(xué)性均很強,但傳統(tǒng)的課堂教學(xué)容易單純以教材內(nèi)容為主線,按部就班地進行理論教學(xué),讓學(xué)生誤以為該課程是純理論、教條化的東西。因此,為適應(yīng)研討式教學(xué)模式的需要,任課教師要對教學(xué)內(nèi)容進行重構(gòu),具體措施如下:
(1) 針對課程知識點前后關(guān)聯(lián)度高且又可分解的特點,將課本知識模塊化[4],即以模塊的形式制定課程的授課計劃,并告知學(xué)生,使之明白該門課程的教學(xué)任務(wù)和特點。“編譯原理”課程大致劃分為編譯基礎(chǔ)理論知識模塊(包括編譯程序概論、文法及語言等)、編譯過程模塊(包括詞法分析、語法分析、語義分析、中間代碼生成、代碼優(yōu)化、目標(biāo)代碼生成以及符號表等)、應(yīng)用知識模塊(主要包括如何將編譯原理及技術(shù)設(shè)計應(yīng)用于不同的領(lǐng)域)[5],同時應(yīng)對每個模塊掌握的程度作出具體要求。
(2) 在課程大綱的框架下,合理分配課堂講授和研討的學(xué)時及內(nèi)容,適當(dāng)選擇研討課題。初步實施研討式教學(xué)時,可采用“抓易放難”的原則,選擇的研討課題應(yīng)該是學(xué)生通過自學(xué)、討論和教師的適當(dāng)指導(dǎo)就可以掌握的,難度不大,難度較大的知識點仍可以按照常規(guī)的教學(xué)方法講解。
例如,相對于編譯過程中語義分析、中間代碼生成等階段而言,作為編譯過程第一個階段的詞法分析階段要容易得多,其功能是將從左到右的字符逐個讀入源程序,從而識別出一個一個的詞,它所具有的知識遞進性特征使得它非常適合作為一個研討課題,教師可以通過以下步驟引導(dǎo)學(xué)生:①即使在沒有學(xué)習(xí)正則表達式、自動機等基礎(chǔ)知識的前提下,應(yīng)用前期的專業(yè)課知識也可以編程實現(xiàn)一個基本詞法分析器。②通過教師引導(dǎo)、自學(xué)或小組討論學(xué)習(xí)了正則表達式、自動機等編譯技術(shù)之后,就可以輕松地實現(xiàn)一個詞法分析器,并且加入編譯技術(shù)的程序可讀性好,可擴展性強,效率更高。③進一步要求學(xué)生用LEX源程序完成詞法分析器的自動生成。這樣一來,留給學(xué)生思考、創(chuàng)新的余地很大,有利于學(xué)生深刻認(rèn)識編譯過程的各個階段。
2.2重視課堂教學(xué),創(chuàng)新組織形式
(1) 確定研討課題只是完成了第一步,此時的課堂教學(xué)更為重要,一定要加強教師的引導(dǎo)作用。任課教師在讓學(xué)生了解授課計劃的同時,應(yīng)同步設(shè)計出課前閱讀提綱,包括章節(jié)知識體系、重點難點、知識的應(yīng)用范圍和研討問題,促使學(xué)生帶著問題去探究、消化和總結(jié)。
(2) 目前,很多學(xué)校的上課班級規(guī)模偏大。以筆者所在校為例,一次課程達90余人,要做到真正的研討型教學(xué)存在很大困難,因此需要對教學(xué)的組織形式加以創(chuàng)新。比如對基礎(chǔ)性知識采用大班講授,而研討型的專題課采用10~20人的小班,學(xué)生3~5人一組,按照研討課題的要求查閱資料、共同討論,并且以報告的形式匯報。當(dāng)然,實施過程中也存在問題,如有的同學(xué)因為基礎(chǔ)不好對課程不感興趣。筆者認(rèn)為,實施分層次引導(dǎo)和教學(xué)是較為有效的方法,可以依據(jù)學(xué)生接受新知識的能力和學(xué)習(xí)基礎(chǔ)提出不同的要求。
2.3加強學(xué)生實踐,強調(diào)分工合作
“編譯原理”是一門對實踐性要求較高的課程,因此研討式教學(xué)同樣延伸到了實踐教學(xué)環(huán)節(jié),任課教師對每一個研討課題均作出明確要求,以小組合作的形式展開學(xué)習(xí),學(xué)生們各有分工、彼此交流,在一定的時間期限內(nèi)完成從題目分析、查閱資料、模塊劃分、編譯知識運用、代碼編寫、報告撰寫等工作,體會課題研究的全過程,獲得在傳統(tǒng)教學(xué)模式中獲取不到的經(jīng)驗和成長體驗。比如應(yīng)用知識模塊中有一個實例,利用編譯知識構(gòu)造一個計算器,要求程序能夠根據(jù)用戶輸入的復(fù)雜算術(shù)表達式自動計算出結(jié)果,同時能夠進行簡單的表達式正確與否的判斷,題目涉及到了詞法分析、語法分析、語義分析等知識,是如程序設(shè)計、數(shù)據(jù)結(jié)構(gòu)等前期專業(yè)課程的綜合運用,研討團隊的工作方式讓學(xué)生的動手實踐能力得到提升,培養(yǎng)了學(xué)生的創(chuàng)新和團隊意識。
2.4做好分析總結(jié),完善考核機制
學(xué)生就自己的研究內(nèi)容、問題的解決方案與大家分交流和討論,是研討式教學(xué)中一個非常重要環(huán)節(jié)。在這個環(huán)節(jié)中,教師和學(xué)生一起聽取成績優(yōu)秀團隊的報告,并提出問題要求解答。比如在涉及到編譯系統(tǒng)符號表的研討課題中,因為符號表貫穿整個編譯過程,是連貫上下文進行語義檢查、語義處理、生成代碼和存儲分配的主要依據(jù),如何更有效地組織符號表中的符號表項,是采用線性表,還是二分法和散列法呢?類似這樣的問題可以讓學(xué)生更加深入地理解課程內(nèi)容,總結(jié)課題探究中存在的不足;教師同樣也可以對課題加以分析總結(jié),作出總結(jié)性報告,不僅可以不斷地完善研討課題,還有助于學(xué)生對整個知識體系的把握。
研討式教學(xué)模式必須建立與之相適應(yīng)的考核方法,教師要對學(xué)生在整個課題探究、研討過程中的表現(xiàn)以及在團隊中的表現(xiàn)有充分了解,作出適當(dāng)?shù)脑u價。
3結(jié)論
針對“編譯原理”課程既有深厚的理論基礎(chǔ),又有豐富的實踐背景的特點,筆者在教學(xué)過程中部分采用研討式教學(xué),對于教學(xué)雙方產(chǎn)生了很大影響。對學(xué)生來說,不僅提高了對課程知識的掌握程度,而且充分提高了學(xué)習(xí)積極性和提出問題、分析問題、解決問題的能力;對教師而言,研討式教學(xué)模式對教師提出了更高標(biāo)準(zhǔn),要求教師不斷跟蹤學(xué)科的研究前沿,更新和充實課程的教學(xué)內(nèi)容,促進自身素質(zhì)的提高。
參考文獻:
[1] 何炎祥,伍春香. 計算機專業(yè)不需要開設(shè)編譯原理課程嗎?[J]. 計算機教育,2009(4):61-62.
[2] 馮阿芳. 基于建構(gòu)主義學(xué)習(xí)理論的《編譯原理》課程教學(xué)改革[J]. 繼續(xù)教育研究,2009(8):149-150.
[3] 葉國榮,陳達強,吳碧艷.高校本科生教育中研究型教學(xué)模式探討[J]. 中國高教研究,2009(3):90-91.
[4] 劉兵,姜淑娟.“編譯原理”研究性教學(xué)的探索與實踐[J]. 計算機教育,2007(11):28-30.
[5] 張素琴,呂映芝,蔣維杜,等. 編譯原理[M]. 2版. 北京:清華大學(xué)出版社,2007.
Exploration in Seminar-oriented Teaching of “Compiler Principle” Course
XU Zhen-qiang, HOU Hui-fang
(School of Information Science and Engineering, Henan University of Technology, Zhengzhou 450001, China)
Abstract: Compiler principle course is one of the core theoretical curriculums which perfectly combines the theory and practice. The paper analyzes application of seminar-oriented teaching methodology in this course aiming at solving the difficulties occurred during teaching and experiments, which prove to be effective not only in enhancing students’ mastery of the course but also in improving their abilities to raise, analyze and solve problems.
Key words: seminar-oriented; Compiler Principle; teaching mode