資源描述:
《編譯原理課程實踐改革探索》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、編譯原理課程實踐改革探索摘要:本文介紹了我系對編譯原理課程實踐的改革,陳述了該實踐活動的內(nèi)容、方法、效果和經(jīng)驗教訓(xùn)。
關(guān)鍵詞
本文來自:計算機畢業(yè)網(wǎng):編譯原理;課程實踐;改革
1引言
當(dāng)今本科生人數(shù)大幅增加,高校畢業(yè)生就業(yè)競爭加劇,用人單位對人才要求不斷提高,計算機及相關(guān)專業(yè)的不少畢業(yè)生在就業(yè)過程中暴露出動手能力差、分析問題解決問題能力薄弱、創(chuàng)新意識不強等問題。這些問題的出現(xiàn)在很大程度上反映出高校在學(xué)科的專業(yè)實踐(特別是課程實踐)教學(xué)方面的不足:
1)各課程的課程實踐各自獨立
2、,實踐內(nèi)容跟不上計算機科學(xué)與技術(shù)的發(fā)展,內(nèi)容陳舊、覆蓋面窄、綜合性不高、難度低、規(guī)模小,不注重對學(xué)生工程、質(zhì)量、團隊等意識的培養(yǎng);
2)學(xué)生數(shù)與助教數(shù)比率增加,一些學(xué)校采用研究生作為助教,助教對學(xué)生實驗的檢查力度和深度不夠,難以真實反映學(xué)生的實驗水平;
3)未結(jié)合新形勢下學(xué)生的特點來規(guī)劃和組織實踐,學(xué)生的熱情不高,拷貝風(fēng)氣日益蔓延?,F(xiàn)在的學(xué)生興趣廣泛,精力分散,多數(shù)有計算機,但是投在課程學(xué)習(xí)及實踐的時間大大減少;不少學(xué)生學(xué)習(xí)目標(biāo)不明確,遇到挫折容易退縮,在學(xué)習(xí)上的鉆勁和毅力有所降低。
針對這種現(xiàn)狀,筆者認為加強和改善專業(yè)實
3、踐應(yīng)首先抓課程實踐改革,而課程實踐改革則應(yīng)以整體規(guī)劃各計算機專業(yè)課的課程實踐為指導(dǎo)思想。專業(yè)實踐所能覆蓋的程度依賴于制度的保證、學(xué)科機構(gòu)的資源以及教職人員的利益。
就軟件類的課程而言,課程實踐主要圍繞著軟件的設(shè)計與實現(xiàn)展開。課程實踐的整體目標(biāo)是學(xué)生至少能參與完成一個有一定規(guī)模的軟件項目的設(shè)計與開發(fā),這樣的項目應(yīng)能涉及到對多門課程所學(xué)原理的綜合運用。在整體規(guī)劃課程實踐時,應(yīng)遵循由小到大、循序漸進的原則,注意整體規(guī)劃課程實踐所涉及的語言、工具和環(huán)境,注意學(xué)生軟件工程意識、質(zhì)量意識和團隊意識等的培養(yǎng)。
在內(nèi)容選取上,低年級的課程實踐(如C
4、語言、數(shù)據(jù)結(jié)構(gòu))以鞏固課程知識的小實驗為主,訓(xùn)練學(xué)生基本的程序設(shè)計技能;而高年級的課程實踐(如編譯原理、操作系統(tǒng)等)則應(yīng)以綜合運用的課程設(shè)計為主,訓(xùn)練學(xué)生軟件工程的能力。
在上述思想的指導(dǎo)下,筆者經(jīng)過兩年多的調(diào)研和準(zhǔn)備,于2007年上半年在本系2004級學(xué)生的編譯原理教學(xué)實踐中開展了編譯原理課程實踐改革。本文將在以下各節(jié)依次介紹這次課程實踐改革的內(nèi)容、方法和實施效果,總結(jié)實踐中的經(jīng)驗教訓(xùn),供同行參考。
2課程實踐方案
2.1課程實踐的規(guī)劃及歷程
根據(jù)上述指導(dǎo)思想,我們將編譯課程實踐定位為綜
5、合運用的課程設(shè)計,即學(xué)生(通過合作)為某個實用語言設(shè)計和開發(fā)一個可運行的編譯器。這不僅能使學(xué)生加深對編譯原理和技術(shù)的理解,還能提高學(xué)生的軟件開發(fā)水平。學(xué)生在實踐中將熟悉和掌握一些軟件工程工具、環(huán)境和規(guī)范,培養(yǎng)工程、質(zhì)量和團隊等意識。
制定這樣的課程設(shè)計方案,首先要合理選擇編譯知識點,定義待實現(xiàn)的語言;然后對語言的編譯器進行模塊劃分和預(yù)實現(xiàn),估計實現(xiàn)的難度和工作量;最后研制提供給學(xué)生的支持庫、樣例、工具和文檔,明確學(xué)生的任務(wù)。在方案研制中,既要注意使課程設(shè)計有一定的規(guī)模,又要考慮到學(xué)生和課時的實際情況,以使學(xué)生在有限的時間內(nèi)盡可能多地掌握編譯知
6、識并得到綜合訓(xùn)練。
為此,我們于2004年秋開始調(diào)研國外一些知名大學(xué)的編譯課程設(shè)計,從中選擇美國加州大學(xué)伯克利分校的編譯課程設(shè)計進行深入分析與研究。我們以本科畢業(yè)論文的形式讓學(xué)生做其中的部分實驗,從中感受和總結(jié)實驗的難度、難點以及工作量等。2006年起,我們著手設(shè)計適合國情的課程設(shè)計,它由一系列的小課程設(shè)計組成,學(xué)生通過循序漸進地做其中的一部分即可實現(xiàn)一個實用語言。我們選取Java語言的一個子集MiniJOOL作為實驗語言,它不支持import和package指令,也不支持interface、抽象類和抽象方法、public等訪問控制修飾和異常
7、等,程序中所有的類都放在同一個文件中。這樣的語言既具有相當(dāng)規(guī)模的語言特征,又比Java語言小得多。但是即便如此,實現(xiàn)這樣的語言也不容易。為循序漸進地引導(dǎo)學(xué)生進行語言的實現(xiàn),我們又對MiniJOOL進行裁剪,定義了SimpleMiniJOOL和SkipOOMiniJOOL兩個非面向?qū)ο笳Z言。前者只允許程序中包含一個方法,后者則包含MiniJOOL的所有非面向?qū)ο筇匦?。目前,系列課程設(shè)計及支持庫等仍在不斷改進之中,感興趣的同行可以從http://staff.ustc.edu.cn/~yuzhang/compiler獲得已研制并已在使用的相關(guān)課程實踐資源。<
8、br> 為檢驗系列課程設(shè)計及相關(guān)資源的合理性和效果,發(fā)現(xiàn)其中的疏漏和不足之處,我們在2007