徐艷群 張斌(南陽理工學院計算機與信息工程學院 河南南陽 473004)
基于 CDIO 教育理念的 “編譯原理”課程教學的探索
徐艷群 張斌(南陽理工學院計算機與信息工程學院 河南南陽 473004)
“編譯原理”是計算機專業(yè)中一門非常重要的課程,它最能鍛煉學生的計算思維能力,計算思維能力對從事計算機專業(yè)工作的學生將終身受益。但是“編譯原理”課程教學中依然存在一些問題:教學方法陳舊,忽視實踐環(huán)節(jié),學生參與意識不強等。本文針對這些問題,在編譯原理課程教學中應(yīng)用CDIO(Conceive、Design、 Implement、 Operate)教育理念,從理論課教學方法、實踐環(huán)節(jié)、考核方式等方面進行改革。 實踐證明CDIO 模式在“編譯原理”課程教學中取得了良好的效果。
CDIO教育理念;編譯原理;啟發(fā)式教學法;項目教學法
【DOI】10.19312/j.cnki.61-1499/c.2016.09.056
“質(zhì)量工程”的廣泛實施,各高等院校在計算機專業(yè)的人才培養(yǎng)方面做出了很大貢獻,但是畢業(yè)生的專業(yè)能力相當一部分不能很好地滿足社會需求,究其原因主要是因為現(xiàn)有的教學理念、教學思路存在問題。 最新教育改革成果—CDIO教育模式,實踐證明 CDIO 教育模式先進可行,適合工科教育教學環(huán)節(jié)的改革。為了培養(yǎng)高素質(zhì)的計算機專業(yè)人才,就需要從課程這個培養(yǎng)人才的課程載體上進行改革,而編譯原理課程作為本專業(yè)的重要課程更應(yīng)該改革。因此本文將CDIO工程教育理念用于編譯原理的教學實踐中,以期取得良好的教學效果。
國際工程教育改革的最新成果--CDIO工程教育模式是以產(chǎn)品研發(fā)到產(chǎn)品運行的生命周期為載體,鼓勵學生積極、主動、實踐地投入到課程學習中去,在學習過程中注意專業(yè)課程之間的內(nèi)在聯(lián)系。CDIO大綱對專業(yè)畢業(yè)生能力的考核主要包括基礎(chǔ)知識掌握情況、個人的學習、及實踐能力、團隊協(xié)作能力和系統(tǒng)工程能力四個方面。各高校應(yīng)該按照大綱的要求用綜合有效的培養(yǎng)模式力求在這四方面達到目標要求。
《編譯原理》是計算機專業(yè)的一門很重要的課程,課程涉及的理論知識點多,比較抽象,相當一部分算法有些復雜。目前編譯原理課程教學絕大部分采用傳統(tǒng)的教學方式,這種學習方式完全是一種被動的接受知識的過程,學生學完這門課程,不知道一個編譯器到底應(yīng)該怎么設(shè)計?怎樣實現(xiàn)?采用傳統(tǒng)的方式不能充分發(fā)揮學生的積極主動性,不利于引導學生去思考,更不利于帶動學生去發(fā)現(xiàn)問題、解決問題。針對目前在編譯原理課程教學中存在的問題,筆者將CDIO教育理念引入到編譯原理課程教學中。
為了改善“編譯原理”課程的教學效果,提高學生的實踐能力,我們將CDIO理念應(yīng)用于“編譯原理”課程的教學中。課程教學中嘗試采用啟發(fā)式教學、項目式教學等教學方法;上機實踐方面根據(jù)課程內(nèi)容布置小程序,課程學完后在課程設(shè)計中布置綜合性項目??己朔绞皆O(shè)置中注重學生的動手實踐能力考察。讓學生親自經(jīng)歷和體驗編譯的全過程。
1.啟發(fā)式教學
啟發(fā)式教學是強調(diào)學生學習的主體地位,激發(fā)學生獨立思考后去解決問題。常見的啟發(fā)式教學方法是:創(chuàng)設(shè)情境法、問題導向法,行為驅(qū)動方法等等。例如在LR(1)分析中采用啟發(fā)式教學方法中的問題導向法。
題目:對于以下文法采用LR(1)分析法分析。
G:(0)S'→S (1)S→aAd (2)S→bAc (3)S→aec (4)S→bed (5)A→e
先要求學生采用已學過的LR(0)分析法進行分析。在做題的過程中學生會發(fā)現(xiàn)在兩個狀態(tài)中出現(xiàn)了移進-歸約沖突,這時候?qū)W生就得重新審視這種方法。這時老師引導學生進一步思考采用SLR(1)分析法,介紹SLR(1)分析法,它對于移進項目跟LR(0)完全相同,對于歸約項目需求歸約項目產(chǎn)生式左部非終結(jié)符號的Follow集,思考沖突能不能解決?引導學生SLR(1)分析法為什么不行?組織學生分組討論,教師進行歸納補充。引入LR(1)分析法,提供資料讓學生分組自主學習并討論如何采用LR(1)分析法來完成該題。
2.項目式教學
項目教學法是一種綜合實踐性的教學方法,強調(diào)學生的主體參與,教師的引導作用,一般在一門課程學完之后才能開展, 是對課程所學內(nèi)容進一步深入應(yīng)用,讓學生把課程所學理論與實踐有機結(jié)合起來。通過項目實踐,學生不僅掌握了課程內(nèi)容,而且具備了該課程所應(yīng)具備的工程實踐能力、團隊協(xié)作與交流的能力。因此,在“編譯原理”課程設(shè)計中,讓學生動手完P(guān)L/0編譯器的設(shè)計與開發(fā),它的編譯過程使用一遍掃描方式,核心模塊是語法分析和語義分析器,詞法分析器、代碼生成器分別作為它的一個過程。為了完成相應(yīng)的項目內(nèi)容,在平時上課的過程中就會注重介紹PL/0編譯器,幫助學生了解必要的步驟和編碼實現(xiàn)技術(shù)。為了培養(yǎng)學生的閱讀文獻的能力,可以提供PL/0編譯器文本供學生閱讀,提醒學生應(yīng)該先熟悉總體結(jié)構(gòu),然后理解每個流程的功能、實現(xiàn)方法及各過程之間的相互關(guān)系,最后達到深入理解編譯器構(gòu)造過程和實現(xiàn)技術(shù)。PL/0編譯器實現(xiàn)圖如圖2-1所示。項目要求:他包括大綱、內(nèi)容、組織、進度計劃和實施過程;與此同時,對學生進行分組,每組選一個組長, 在項目中每個團隊成員都有自己的任務(wù)和職責;此外,改變過去“填鴨式教育”,以學生為主體主動學習,給學生提供展示的機會,激發(fā)學生學習積極性和主動性;項目完成后,每個項目團隊成員進行匯報,演示程序,用幻燈片輔助講解,并且提交項目文檔。項目報告不僅是團隊的結(jié)果的展示,同時促進了項目團隊之間的交流和學習。通過項目匯報,也鍛煉了學生的表達能力,增強了學生的自信心。
圖2-1: PL/0編譯程序的實現(xiàn)
3.上機實踐
為了讓學生在系統(tǒng)學習編譯原理的章節(jié)之前, 對編譯原理獲得一些感性認識和初步了解,世界著名計算機科學家N.Wirth編寫的“PL/0編譯器”是對編譯程序的總結(jié)和實施的過程分析說明,作為學生閱讀PL/0語言編譯器文本的提示,便于建立整體的概念。編譯原理的教學內(nèi)容包括詞法分析、語法分析、語義分析和中間代碼的生成、代碼優(yōu)化和目標代碼生成等。實驗內(nèi)容選擇PL/0語言的編譯程序,原因是PL/0語言功能簡單,結(jié)構(gòu)清晰、易讀, PL / 0編譯器可以充分體現(xiàn)一個高級語言的編譯器實現(xiàn)的基本技術(shù)和步驟。結(jié)合PL/0編譯程序的設(shè)計與實現(xiàn)要求學生對給定的PL/0源程序進行詞法分析、語法分析、語義分析和中間代碼生成等,從而理解每個過程的功能和相互聯(lián)系及實現(xiàn)技術(shù),作為拓展內(nèi)容可以讓學生用C語言或者Java對PL/0編譯程序進行改寫,這樣可以讓學生體會到各門課程之間的聯(lián)系,做到對知識的融會貫通。為了提高學生學習的目的性和主動性,在編譯原理課程每次講理論課前先介紹要求學生完成的實驗內(nèi)容,并分組討論。在每次實驗前給出實驗要求讓學生討論需要掌握哪些內(nèi)容并列舉出來,上課時教師根據(jù)學生們需要學習的內(nèi)容進行講解并適當拓展。讓學生體會理論知識在實踐中如何用?為什么需要學習這些理論知識?從而改變學生以往被動接受知識的習慣,讓學生有目的地、積極主動地參與到實驗中,參與到課堂中。
4.考核方式
“編譯原理”課程考核一般采用閉卷考試方式,基本決定學生最終期末成績,平時成績基本按考勤、提問等核定,只占到10%-20%。這種方式考核的是知識而不是能力。CDIO工程教育理念要求從四個維度考核,重點強調(diào)實踐動手能力。因此在編譯原理的考核方式上進行改革,采用注重過程評價的評價方式。過程評價主要包括和項目評價和實驗評價。實驗評價:對每個實驗的實驗?zāi)康?、實驗步驟、實驗結(jié)果進行考核;項目評價:以項目團隊為單位考核,對項目的實施情況、團隊協(xié)作情況、項目答辯和項目文檔等進行評估;期末理論考試在總成績中的比重最多不超過50%。 其中項目的實施情況包括詞法分析部分、語法分析部分、語義分析和中間代碼生成部分、代碼優(yōu)化部分、目標代碼生成部分等綜合確定。
為了量化編譯原理課程改革情況,我們按照CDIO教育理念的目標設(shè)計了一份調(diào)查問卷,主要從四個維度進行考量:(1)課程知識掌握情況;(2)解決具體問題的能力;(3)團隊協(xié)作與組織能力;(4)工程系統(tǒng)化情況?;厥諉柧斫y(tǒng)計結(jié)果表明:學生通過課程實踐,基本能夠掌握課程要求的大部分知識,并且能夠活學活用;通過上機和課程設(shè)計,項目實踐動手能力大大提高,學會了分析問題、解決問題,及團隊合作;具備了該門課程的工程應(yīng)用能力。
CDIO教育理念是一種先進實用的工程教育模式,將CDIO理念引入到“編譯原理”課程教學中,對課程從教學方法、上機、考核方式方面進行改革和嘗試,實踐證明了CDIO模式在教學實踐中取得不錯的教學效果。隨后我們將繼續(xù)深入探討CDIO在課程教學中的應(yīng)用。
[1]李桂玲,朱曉蓮等.基于CDIO理念的“數(shù)據(jù)結(jié)構(gòu)”課程教學的探索[J].中國教育信息化,2015(24):50-52
[2]張運濤.基于CDIO工程教育模式的AutoCAD課程教學改革初探[J].安徽科技學院學報,2010(3):60-62
[3]薛健飛,林凌敏.基于CDIO的行業(yè)特色高校的可持續(xù)發(fā)展研究[J].教育與職業(yè),2011(4):72-75
[4]李震平;李曉霞;魏紅君;CDIO模式下C語言教學項目專業(yè)化研究[J].河北工程大學學報(社會科學版),2012(1):121-124
徐艷群(1978—)女,陜西韓城人,講師,碩士,研究方向:計算機應(yīng)用。