編譯原理課程設計與教學改革論文

才智咖 人氣:6.95K

作為一名教學工作者,就難以避免地要準備教學設計,編寫教學設計有利於我們科學、合理地支配課堂時間。一份好的教學設計是什麼樣子的呢?以下是小編精心整理的編譯原理課程設計與教學改革論文,歡迎大家借鑑與參考,希望對大家有所幫助。

編譯原理課程設計與教學改革論文

【摘要】本文探討了目前國內很多高校《編譯原理》課程設計過程中存在的問題,根據從問題中學習的思想,理論指導實踐的方法,提出了以實際專案為依託的“崗位導向,校企合作”的課程設計方式,並給出了切實可行的實施方案,實現“教、學、做”一體化,提高學生的學習興趣,提高課程設計環節的教學效果。

【關鍵詞】編譯器;詞法分析;語法分析

1課程設計過程現狀分析

編譯技術是電腦科學中發展最迅速,最成熟的一個分支,集中體現了計算機的成果與精華。但是編譯程式的設計與實現過程涉及其他很多相關課程,例如《資料結構》、《演算法分析與設計》、《C++語言程式設計》和《作業系統》等,目前國內外各高校對編譯器的設計僅限於簡單文法的編譯程式設計,相當一部分同學對此都感到難度很大,編譯程式課程設計的積極性不高[1],另外課程設計課時的限制,只能分模組進行,無法保證學生獨立完成編譯程式的整體設計與實現,導致學生們對編譯程式的理解也只是粗枝大葉,對區域性斷章取義,不能整體理解,失去了實踐的真實意義。表現為:

(1)內容的設定缺乏連續性;

(2)忽視學生實踐能力的差異,內容固定單一;

(3)忽視編譯方法和技術與實際應用結合。編譯程式是一種翻譯程式,翻譯的過程實際上也是在解決一個現實問題的過程,集中體現了人們的計算思維能力,在以後從事計算機專業的工作中,這種解決問題的方法和思路會反覆用到[1]。企業中的軟體設計也會用到編譯理論的許多想法和技術,如有窮狀態技術用於文字編輯程式、情報檢索、模式識別;上下文無關文法、語法制導翻譯用於建立多種文字處理程式;程式碼優化技術用於程式校驗,由非結構化到結構化的程式轉換等,而這些技術同樣在學生的就業、創業過程中都會用到。在計算機專業所有課程中只有編譯原理這門課最能鍛鍊學生的計算思維,而這種能力的獲得不是通過上好編譯原理課程,短時間的簡單的編譯程式,需要在課程設計過程中的'大量的摸索和思考來實現。為了提高計算機專業學生的高薪就業率就非常有必要強調《編譯原理》課程設計[2]。

2解決思路

為了幫助學生掌握編譯原理的理論知識,激發學生學習編譯原理的興趣,深入理解編譯技術,對課程設計環節進行了大膽改革,採用“崗位導向,校企合作”基於OBE(以產出為導向)的《編譯原理》課程設計模式,目的是將理論課程中所介紹的詞法分析及語法分析等演算法設計思想能和具體應用結合起來,以激發學生的主動性和創造性,培養學生的創新能力和解決實際問題的能力[3],課程設計內容是把編譯技術應用在具體的企業專案中,解決企業中出現的編譯方面的問題,如基於有限自動機理論的飲料自動售貨機系統的設計、基於有限自動機原理的漢語詞彙的分割、輪胎成型機計算機監控系統設計[3]。這些課程設計內容能幫助學生更好地理解形式語言和自動機理論、編譯程式的編寫等,從具體問題的分析、設計以及編碼實現的整個編譯器的設計過程能慢慢學生的專業素養[3]。為將來計算機領域的就業、創業打好基礎。(1)採用“崗位導向,校企合作”課程設計模式,強化技術應用特色,注重素質能力培養,注重技術應用於實踐能力培養,強化工程化訓練和能力培養。(2)以“專案帶動實踐,以實踐帶動教學”來重新整合構建課程教學體系,將實踐中用到的最新技術、新方法及研究成果融入教學中,構建理論與實踐一體化的開放式教學模式。(3)提高學生的“競爭意識,團隊意識”。考核採用分組考核,分階段考核,並對考核結果進行記錄,作為彙總考核的參考,加大素質和實際應用能力考核力度。(4)培養學生的“計算思維”,編譯技術中的從高階語言轉換為低階語言的過程是求解具體問題的過程,集中體現了計算思維[1]。

3課程設計內容組織

通過調研多家企業,瞭解企業崗位需求,根據企業崗位要求確定本課程內容相關的知識目標、技能目標、素質目標,形成理論教學與實踐教學任務。以工程專案為任務驅動,以崗位真實的工作任務要求為背景,設計課程設計內容。引導學生利用所學的詞法分析、語法分析知識等去解決實際問題。這就要求學生能夠針對C等高階程式語言設計並開發出可用的編譯程式。在設計編譯器這麼一個龐大而複雜的系統程式,應該遵循軟體工程的思想,按照分析、設計、程式設計實現、測試和維護等開發過程才能保證開發出來的編譯程式的質量[2]。根據系統功能進行模組劃分,對學生進行分組,根據自己的愛好,可以選擇系統分析、演算法分析、資料結構、編碼設計、報告撰寫為自己的課程設計重點,同時通過組內互相交流,補充自己其他方面的知識,加強對編譯器的總體把握,以及科技表達能力的培養。

4具體實施

“以企業實際專案為依託,教師為主導,學生為主體”,體現學生主動參與、協同合作、探索創新的教學模式。通過專案研發,實現“教、學、做”一體化。強調專案任務真實性、教師指導的目標及過程的指引性、學生學習的積極主動性、實踐過程的探究性和合作性、評價的過程性和反思性等。具體實施7個步驟:

(1)選題分組。先由教師提出實訓目標、要求、步驟和專案選題,分組一般以4~5人為一個小組,根據學生的特點,可供選擇的任務為編譯程式詞法分析、編譯程式語法分析、語義分析和中間程式碼生成、程式碼優化和目的碼生成為自己的課程設計重點,組內人員定期交流,相互之間可以查漏補缺,從而總體把握編譯器設計實現過程[4]。

(2)制定計劃並進行可行性分析。學生明確選題專案目標、任務和計劃,完成計劃書,教師對學生的計劃進行可行性分析。

(3)需求分析:教師帶領學生到企業做實際調研,結合應用領域知識的瞭解,瞭解編譯部分的工作需求。

(4)設計:根據具體題目做好編譯部分的工作,對源語言語言進行詞法分析、語法分析、語義分析、生成中間程式碼、程式碼優化、最終生成目的碼[5],編譯過程如圖1所示。

(5)按照任務時間節點考核和最後的彙報考核相結合的考核辦法,根據不同的題目難度給定相應的權重,採用加權形式。在每個任務時間節點要進行考核,是否完成相應節點規定的任務,並給出進一步努力的方向,完成情況進行記錄。彙報考核時,以小組為單位進行公開答辯,講解分析過程、設計過程,對功能進行演示,回答其他小組及指導教師的問題[2]。

(6)專案實施。根據設計內容進行程式設計實現,指導教師提供適時啟發和引導,定時進行小組討論,發現問題尋找解決方法和思路。

(7)總結評價與體會。根據專案交流的情況寫出專案體會,指導教師根據小組專案體會進行總結,並對提交的文擋和作品進行評價形成總結性評價報告。

5結語

開展“以企業實際專案為依託,教師為主導,學生為主體”的編譯原理課程設計教學活動後,學生的程式設計能力有了很大的提高,分析問題及解決問題的能力也有了質的飛躍,期末編譯考試平均成績接近80分[2],學生普遍認為,結合工程專案的題目科學合理,以小組為單位進行課程設計使同學各盡所能,增強了學生的自信心、學習的主動性和積極性。《編譯原理》學習興趣將進一步會帶動了計算思維能力的提高,計算思維能力的提高促進了創新性成果的產生,形成了很好的良性迴圈[2]。

參考文獻:

[1]柴豔妹,馬燕林.編譯原理課程教學改革研究[J].計算機教育,2011(20):36~39.

[2]張晶,金英,劉磊.“編譯原理”實踐課程教學方法研究[J].計算機教育,2009(21):19~21.

[3]金永霞,丁海軍.《編譯原理》實驗的層次化設計[J].現代計算機(專業版),2012(8):28~30.

[4]王改芳,龔君芳,李聖文,張冬梅.編譯原理課程實踐教學改革探索[J].實驗技術與管理,2009(21):130~131.

[5]張冬茉,方習文.編譯原理課程設計的教學實踐與改革[J].實驗室研究與探索,2012(11):134~137.