左新娥 呂志凌 黃卓冕
(湖南工業(yè)大學(xué) 計(jì)算機(jī)與通信學(xué)院,湖南 株洲 412007)
【摘 要】編譯原理作為計(jì)算機(jī)專業(yè)的傳統(tǒng)核心課程,具有理論性強(qiáng)、系統(tǒng)性強(qiáng)、實(shí)踐性強(qiáng)等特點(diǎn),在編譯原理課程教學(xué)中,通過計(jì)算機(jī)專業(yè)知識(shí)的融會(huì)貫通來實(shí)施學(xué)生專業(yè)能力和素質(zhì)的培養(yǎng)具有重要意義,文章從專業(yè)能力和專業(yè)素質(zhì)培養(yǎng)的視角探討編譯原理課程的教學(xué),以期不斷提高教學(xué)質(zhì)量。
【關(guān)鍵詞】編譯原理;專業(yè)能力;專業(yè)素質(zhì)
【中圖分類號(hào)】TP314-4 【文獻(xiàn)標(biāo)識(shí)碼】A 【文章編號(hào)】1674-0688(2016)07-0168-03
0 引言
高等教育為國(guó)家的現(xiàn)代化建設(shè)培養(yǎng)人才,《中華人民共和國(guó)高等教育法》規(guī)定,本科教育應(yīng)當(dāng)使學(xué)生比較系統(tǒng)地掌握本學(xué)科、專業(yè)必需的基礎(chǔ)理論、基本知識(shí),掌握本專業(yè)必要的基本技能、方法和相關(guān)知識(shí),具有從事本專業(yè)實(shí)際工作和研究工作的初步能力[1]。這項(xiàng)規(guī)定要求本科學(xué)生學(xué)習(xí)一門課程,不僅僅是對(duì)該門課程所含內(nèi)容的學(xué)習(xí)、研究和設(shè)計(jì),更為重要的是培養(yǎng)學(xué)生的專業(yè)能力和專業(yè)素質(zhì)。專業(yè)能力和專業(yè)素質(zhì)在學(xué)生的可持續(xù)發(fā)展及創(chuàng)新精神與能力的形成中具有至關(guān)重要的作用。筆者認(rèn)為,大學(xué)本科計(jì)算機(jī)專業(yè)的學(xué)生,作為接受專業(yè)教育的專業(yè)人才,除了應(yīng)該具備最基本的獲取知識(shí)與信息的能力、良好的溝通與表達(dá)能力、自學(xué)能力、創(chuàng)新能力、團(tuán)隊(duì)合作能力、綜合應(yīng)用知識(shí)能力等之外,還應(yīng)擁有計(jì)算思維、算法設(shè)計(jì)與分析能力、優(yōu)秀的編碼能力、系統(tǒng)項(xiàng)目實(shí)施能力等專業(yè)能力和專業(yè)素質(zhì)。
1 編譯原理在計(jì)算機(jī)學(xué)科中的重要地位及教學(xué)現(xiàn)狀
國(guó)內(nèi)高校最早于20世紀(jì)70年代末開設(shè)編譯原理課程,該課程經(jīng)過40余年的發(fā)展和改革,現(xiàn)已成為國(guó)內(nèi)大部分高校計(jì)算機(jī)科學(xué)及相關(guān)專業(yè)的一門專業(yè)必修課,是計(jì)算機(jī)學(xué)科的核心課程。編譯原理旨在介紹編譯程序構(gòu)造的一般原理、基本設(shè)計(jì)方法、主要實(shí)現(xiàn)技術(shù)和一些自動(dòng)構(gòu)造工具,具有理論性強(qiáng)、系統(tǒng)性強(qiáng)、實(shí)踐性強(qiáng)等特點(diǎn)[2]。編譯原理被公認(rèn)為高年級(jí)計(jì)算機(jī)專業(yè)課程中最難學(xué)的課程之一,它所涉及的形式語言與自動(dòng)機(jī)理論是計(jì)算機(jī)科學(xué)理論的重要基礎(chǔ),可以讓學(xué)生領(lǐng)悟到計(jì)算機(jī)理論的精髓,培養(yǎng)學(xué)生的抽象思維能力和形式化描述能力,培養(yǎng)計(jì)算思維;編譯程序的構(gòu)造原理和技術(shù)是計(jì)算機(jī)科學(xué)技術(shù)中理論和實(shí)踐相結(jié)合的一個(gè)最好典范,它要求學(xué)生能夠從系統(tǒng)的全局出發(fā)去看待、分析、解決問題,在軟件工程的指導(dǎo)思想下,通過計(jì)算機(jī)專業(yè)知識(shí)的融會(huì)貫通完成一個(gè)小型編譯器的開發(fā),能夠多角度地提高學(xué)生的邏輯思維能力、綜合應(yīng)用知識(shí)能力及學(xué)生編程調(diào)試、系統(tǒng)項(xiàng)目實(shí)施等實(shí)踐動(dòng)手能力,切實(shí)有效地提高學(xué)生的專業(yè)能力和專業(yè)素質(zhì)。
雖然編譯原理課程在計(jì)算機(jī)學(xué)科中占有如此重要的地位和作用,然而從湖南工業(yè)大學(xué)計(jì)算機(jī)與通信學(xué)院歷屆學(xué)生的教學(xué)反饋情況來看,很多學(xué)生并沒有獲得理想的學(xué)習(xí)效果,大部分學(xué)生認(rèn)為編譯原理課程枯燥、抽象、復(fù)雜,課程各章節(jié)內(nèi)容密切連貫,同時(shí)又涉及眾多專業(yè)課程的綜合應(yīng)用,這些都與該校目前純理論的授課方式、壓縮的理論課時(shí)形成鮮明的反差。再者有的同學(xué)認(rèn)為,現(xiàn)在有很多優(yōu)秀的編譯器前端和后端可直接采用,只要自己以后不從事編譯系統(tǒng)的研究和開發(fā)或者計(jì)算機(jī)科學(xué)理論的研究,就無所謂學(xué)不學(xué)得好這門課程了,甚至一部分同學(xué)認(rèn)為學(xué)校可以將該課程從人才培養(yǎng)計(jì)劃中刪除。因此,怎樣定位編譯原理課程的教學(xué)指導(dǎo)思想,提高學(xué)生的學(xué)習(xí)興趣,從教學(xué)內(nèi)容、教學(xué)方法及教學(xué)手段等各方面協(xié)調(diào)保證該課程的教學(xué)目標(biāo)和效果是一個(gè)亟待解決的問題。
2 基于培養(yǎng)專業(yè)能力和專業(yè)素質(zhì)開展編譯原理課程教學(xué)
2.1 明確“能力導(dǎo)向”教學(xué)目標(biāo),開展興趣教學(xué)
根據(jù)“A”型人才結(jié)構(gòu)“厚基礎(chǔ)、寬口徑、強(qiáng)能力、高素質(zhì)”的高??缡兰o(jì)人才培養(yǎng)目標(biāo),結(jié)合計(jì)算機(jī)專業(yè)人才社會(huì)需求以及國(guó)際計(jì)算機(jī)科學(xué)課程的未來發(fā)展趨勢(shì)[3],我們把編譯原理課程建設(shè)目標(biāo)定義為立足夯實(shí)基礎(chǔ),掌握編譯原理中的基本概念、原理和方法;理清課程的聯(lián)系,建立課程的有機(jī)銜接,拓寬課程相關(guān)領(lǐng)域;結(jié)合編譯理論和技術(shù)中經(jīng)典的案例培養(yǎng)計(jì)算思維;加強(qiáng)實(shí)踐訓(xùn)練工程素質(zhì),培養(yǎng)學(xué)生對(duì)軟件的規(guī)劃、組織、設(shè)計(jì)與實(shí)現(xiàn)等綜合應(yīng)用能力。心理學(xué)研究表明,興趣是人類最好的導(dǎo)師,是人們力求認(rèn)識(shí)某種事物或愛好某種活動(dòng)的心理傾向,它能夠引導(dǎo)和激發(fā)人們從思想和意志上去努力探索某種事物的底蘊(yùn)。學(xué)習(xí)一門專業(yè),一門課程,想要學(xué)生學(xué)得好、鉆得精,需要激發(fā)他們強(qiáng)烈的學(xué)習(xí)興趣,讓他們?cè)敢馊ブ鲃?dòng)學(xué)習(xí)。那如何激發(fā)和培養(yǎng)學(xué)生對(duì)編譯原理課程的學(xué)習(xí)興趣呢?這應(yīng)從入門開始,在講授編譯原理課程的第一次課時(shí),我們首先要介紹編譯原理課程的教學(xué)目標(biāo),強(qiáng)調(diào)課程的重要地位和重要意義,讓學(xué)生明確學(xué)習(xí)目標(biāo),帶著重視而又獵新喜奇的心理開始學(xué)習(xí)。然后應(yīng)做到讓興趣教學(xué)貫穿整個(gè)教學(xué)過程,這就要求老師能夠根據(jù)不同的教學(xué)內(nèi)容采用不同的教學(xué)方法(如類比式、啟發(fā)式、實(shí)例式等)來提升學(xué)生學(xué)習(xí)興趣,增強(qiáng)教學(xué)效果。
2.2 理清課程的聯(lián)系,建立課程的有機(jī)銜接,拓寬課程相關(guān)領(lǐng)域
編譯原理課程涉及許多其他課程知識(shí)和技術(shù)領(lǐng)域,在該課程授課時(shí),應(yīng)該讓學(xué)生理清這些課程之間的聯(lián)系,建立課程的有機(jī)銜接,形成計(jì)算機(jī)專業(yè)人才特有的系統(tǒng)的專業(yè)知識(shí)結(jié)構(gòu),培養(yǎng)學(xué)生的綜合理解和運(yùn)用知識(shí)的能力,從而提高其專業(yè)素質(zhì)。例如,在課程教學(xué)中以討論的方式分析利用C語言或C++語言實(shí)現(xiàn)經(jīng)典算法的思想和技術(shù)特征,讓學(xué)生感受過程式編程和對(duì)象式編程的區(qū)別,從而進(jìn)一步準(zhǔn)確掌握程序設(shè)計(jì)語言,學(xué)習(xí)新的編程范型,提高程序設(shè)計(jì)能力。讓學(xué)生在軟件工程的指導(dǎo)思想下分析、設(shè)計(jì)一個(gè)小型編譯器,應(yīng)用數(shù)據(jù)結(jié)構(gòu)的知識(shí)存儲(chǔ)、組織數(shù)據(jù),應(yīng)用算法設(shè)計(jì)與分析的知識(shí)設(shè)計(jì)算法,應(yīng)用操作系統(tǒng)的知識(shí)對(duì)目標(biāo)代碼進(jìn)行存儲(chǔ)組織、分配并最終實(shí)現(xiàn)優(yōu)化,啟發(fā)式地讓本課程和其他課程的知識(shí)點(diǎn)融合或者關(guān)聯(lián),將專業(yè)能力和素質(zhì)的提升融入教學(xué)之中。此外,由于編譯程序的算法和技術(shù)比較經(jīng)典,不僅可以廣泛應(yīng)用于一般軟件的設(shè)計(jì)實(shí)現(xiàn)中,還可滲透、拓展到其他學(xué)科技術(shù)中,所以我們還可進(jìn)一步引導(dǎo)學(xué)生思考編譯理論對(duì)今后學(xué)習(xí)、工作的指導(dǎo)意義。
2.3 結(jié)合編譯理論和技術(shù)中經(jīng)典的案例培養(yǎng)計(jì)算思維
計(jì)算思維是運(yùn)用計(jì)算機(jī)科學(xué)的基礎(chǔ)概念進(jìn)行問題求解、系統(tǒng)設(shè)計(jì)及人類行為理解等涵蓋計(jì)算機(jī)科學(xué)之廣度的一系列思維活動(dòng)[4]。它包含問題分解、抽象、自動(dòng)化、遞歸等一系列經(jīng)典的計(jì)算機(jī)科學(xué)的思維方法。如何培養(yǎng)計(jì)算思維,是當(dāng)前大學(xué)計(jì)算機(jī)教育教學(xué)研究的熱點(diǎn)課題之一。編譯原理課程知識(shí)體系結(jié)構(gòu)完整,在它經(jīng)典理論和先進(jìn)技術(shù)的發(fā)展中,很多編譯成果正是應(yīng)用計(jì)算思維的結(jié)晶。該課程中許多知識(shí)點(diǎn)都為計(jì)算思維提供了很好的詮釋和生動(dòng)的案例。例如,課程中介紹的形式化語言與自動(dòng)機(jī)理論,正是運(yùn)用了計(jì)算思維中2個(gè)重要的手段——抽象和自動(dòng)化,用這2個(gè)手段去探索詞法分析和語法分析等問題的本質(zhì),形成一系列將抽象思維的結(jié)果在計(jì)算機(jī)上實(shí)現(xiàn)的自動(dòng)分析方法,將理論成果應(yīng)用于技術(shù)實(shí)踐。課程中介紹的“自頂向下和自底向上”的分析方法就是2種典型的問題分解的計(jì)算思維方法,可以引導(dǎo)學(xué)生從宏觀到微觀分層次考慮問題,鼓勵(lì)學(xué)生關(guān)注和掌握系統(tǒng)邏輯,由簡(jiǎn)到繁、逐漸深入、逐步求精。此外,課程中的屬性計(jì)算、語法制導(dǎo)翻譯就是運(yùn)用遞歸求解方法把比較復(fù)雜的原始問題逐步化簡(jiǎn)為一個(gè)簡(jiǎn)易的類似問題,把該問題解決后再逐層向外擴(kuò)展。實(shí)踐證明,結(jié)合編譯理論和技術(shù)中經(jīng)典的案例在編譯課程的教學(xué)中培養(yǎng)學(xué)生的計(jì)算思維是值得探索的。
2.4 加強(qiáng)實(shí)踐,提升系統(tǒng)能力,訓(xùn)練工程素質(zhì)
編譯程序作為一個(gè)龐大而復(fù)雜的系統(tǒng)程序,包含很多抽象、理論性較強(qiáng)的算法和思想,構(gòu)造一個(gè)編譯器是系統(tǒng)的、成規(guī)模的、有難度的。它包括多個(gè)不同的處理階段,由多個(gè)完成不同功能、執(zhí)行在不同階段的子程序組成。它要求學(xué)生不僅要對(duì)各個(gè)子程序的功能和方法有清晰的認(rèn)識(shí),還應(yīng)該遵循軟件工程的思想和規(guī)范,將各個(gè)子程序很好地銜接在一起,保證開發(fā)出的編譯程序具有較好的質(zhì)量和可維護(hù)性。而在湖南工業(yè)大學(xué),目前的編譯原理課程只有40節(jié)純理論授課課時(shí),這肯定是不科學(xué)的,因此必須加強(qiáng)實(shí)踐,增加實(shí)驗(yàn)和課程設(shè)計(jì),讓學(xué)生在透徹地理解掌握編譯程序理論的基礎(chǔ)上,系統(tǒng)全面地掌握編譯技術(shù),真正運(yùn)用所學(xué)的知識(shí)去解決實(shí)際問題,通過讓學(xué)生參與較大型系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)來培養(yǎng)學(xué)生對(duì)軟件的規(guī)劃、組織、設(shè)計(jì)與實(shí)現(xiàn)的綜合能力,增強(qiáng)學(xué)生的系統(tǒng)能力和合作能力,訓(xùn)練工程素質(zhì)。
3 結(jié)語
對(duì)于計(jì)算機(jī)專業(yè)教育來說,專業(yè)能力和專業(yè)素質(zhì)的培養(yǎng),它是一個(gè)系統(tǒng)的工程,不是哪一門課程的教學(xué)就可以解決的問題,它應(yīng)貫穿于整個(gè)大學(xué)教育的每一門專業(yè)課程。為了更好地完成編譯原理課程的教學(xué)使命,讓學(xué)生系統(tǒng)、全面地掌握編譯技術(shù),通過計(jì)算機(jī)專業(yè)知識(shí)的融會(huì)貫通切實(shí)有效地提高學(xué)生的專業(yè)能力和專業(yè)素質(zhì),高校教師應(yīng)該不斷探索更為合理的教學(xué)模式,不斷提高教學(xué)質(zhì)量,應(yīng)該強(qiáng)調(diào)實(shí)踐,保證編譯過程的完整性,讓學(xué)生用最簡(jiǎn)單的方式完成一個(gè)完整的翻譯過程。
參 考 文 獻(xiàn)
[1]蔣宗禮.編譯原理課程與專業(yè)能力培養(yǎng)[J].計(jì)算機(jī)教育,2009(21):4-6.
[2]陳意云.編譯原理[M].北京:高等教育出版社,2008.
[3]陳英,計(jì)衛(wèi)星.編譯原理課程教學(xué)指導(dǎo)思想的思忖[J].計(jì)算機(jī)教育,2009(21):14-15.
[4]王挺,李夢(mèng)君.對(duì)編譯原理課程教學(xué)中計(jì)算思維培養(yǎng)的探討[J].計(jì)算機(jī)教育,2009(21):11-12.
[責(zé)任編輯:高海明]
【基金項(xiàng)目】2014年湖南工業(yè)大學(xué)教育改革資助項(xiàng)目“基于專業(yè)能力培養(yǎng)的編譯原理課程教學(xué)體系的構(gòu)建和探索”(2014B40)。
【作者簡(jiǎn)介】左新娥,女,湖南工業(yè)大學(xué)計(jì)算機(jī)與通信學(xué)院講師,研究方向:計(jì)算機(jī)教育;呂志凌,男,湖南工業(yè)大學(xué)計(jì)算機(jī)與通信學(xué)院計(jì)算機(jī)1203班學(xué)生;黃卓冕,男,湖南工業(yè)大學(xué)計(jì)算機(jī)與通信學(xué)院講師,研究方向:電路與系統(tǒng)。