徐秀娟 江賀 劉馨月 賈棋
摘 要:根據(jù)卓越工程師的培養(yǎng)目標(biāo),針對編譯原理課程的教學(xué)實際,分析編譯原理課程的教學(xué)特點以及當(dāng)前學(xué)生的特點,闡述編譯原理課程的立體化教學(xué)資源建設(shè)方法,最后說明教學(xué)效果。
關(guān)鍵詞:卓越工程師;開放課程;問題教學(xué);編譯原理
0 引 言
2010年6月教育部正式提出了“卓越工程師教育培養(yǎng)計劃”,以貫徹落實《國家中長期教育改革和發(fā)展規(guī)劃綱要》,旨在培養(yǎng)一大批能夠適應(yīng)社會發(fā)展的、創(chuàng)新能力強(qiáng)的高質(zhì)量工程型技術(shù)人才[1-2]。結(jié)合面向卓越工程師發(fā)展的人才培養(yǎng)體系[3],編譯原理課程致力于使該體系的實驗教學(xué)和專業(yè)訓(xùn)練條件達(dá)到國內(nèi)先進(jìn)水平,為學(xué)生提供優(yōu)良、完善的實驗與實踐條件。
編譯原理、操作系統(tǒng)、數(shù)據(jù)結(jié)構(gòu)是各大高校計算機(jī)專業(yè)的三大核心課程,也是各大高校與一般高職院校計算機(jī)專業(yè)的重要差別之一。與數(shù)據(jù)結(jié)構(gòu)、操作系統(tǒng)和數(shù)據(jù)庫這類計算機(jī)核心課程相比,編譯原理課程具有不針對具體語言且模塊化的特點,是高校計算機(jī)專業(yè)、軟件工程專業(yè)的重要專業(yè)課程。
1 編譯原理課程授課現(xiàn)狀及定位
1.1 授課內(nèi)容的特點
編譯原理課程是計算機(jī)和軟件工程專業(yè)的一門重要核心課,有一定的理論性又有一定的實踐性,尤其是本課程的知識與計算機(jī)應(yīng)用中很多領(lǐng)域有緊密聯(lián)系[4]。了解與掌握本課程的基本內(nèi)容有利于學(xué)生提高專業(yè)素質(zhì)和能力。通過本課程的學(xué)習(xí),學(xué)生既能掌握編譯的基本過程、基本方法、編譯系統(tǒng)的組成,又具有設(shè)計、實現(xiàn)、分析編譯程序的初步能力,為今后從事應(yīng)用軟件和系統(tǒng)軟件的開發(fā)打下一定的理論和實踐基礎(chǔ)。
本課程介紹編譯程序構(gòu)造的一般原理和基本實現(xiàn)方法,內(nèi)容包括形式語言基本知識、詞法分析、語法分析、中間代碼生成和目標(biāo)代碼生成,要求學(xué)生不僅了解與掌握編譯程序構(gòu)造的基本原理與技術(shù),還要了解其中的基本概念、基本原理和實現(xiàn)方法。本課程理論性較強(qiáng)、概念復(fù)雜、難以理解。為了適應(yīng)應(yīng)用型工程師人才培養(yǎng)的目標(biāo),編譯原理教學(xué)小組對原有的教學(xué)大綱進(jìn)行了調(diào)整,增加了一些工程應(yīng)用的案例。由于課堂教學(xué)學(xué)時保持48學(xué)時不變,教師需要調(diào)整教學(xué)內(nèi)容的分配,僅僅利用課堂時間完成整套編譯原理課程的教授有很大困難,此時慕課的出現(xiàn)很好地補(bǔ)充了原有的不足。
1.2 授課對象的特點
當(dāng)前高校的大學(xué)生幾乎都是90后,具備如下特點。
(1)多數(shù)伴隨著網(wǎng)絡(luò)一起成長,有問題更習(xí)慣直接求助網(wǎng)絡(luò);課堂上更加沉默,對教師的提問不愿給予積極回應(yīng)。
(2)多數(shù)是視頻一代,習(xí)慣看各類吸引眼球的視頻,教師針對單個知識的直接講述很難吸引學(xué)生,學(xué)生的注意力集中時間更短。
(3)學(xué)生的個性更為突出,單純的課堂教學(xué)很難滿足學(xué)生多樣化的需求。
基于以上幾點,現(xiàn)有的課堂模式必須加以轉(zhuǎn)變才能有效激發(fā)學(xué)生的學(xué)習(xí)興趣。
1.3 課程重新定位
針對編譯原理課程,要構(gòu)建軟件學(xué)院的授課體系,開發(fā)符合軟件學(xué)院教學(xué)案例以充實和豐富課堂內(nèi)容,研究問題驅(qū)動的教學(xué)模式和任務(wù)驅(qū)動的實驗教學(xué)模式,利用多元化、立體化的視頻授課、研究課題等教學(xué)資源,構(gòu)建課程的全新教學(xué)體系,探索性地研究問題驅(qū)動的教學(xué)理念效果,以達(dá)到培養(yǎng)學(xué)生創(chuàng)新能力、動手能力的目的。編譯原理是信息管理與信息系統(tǒng)、軟件工程、計算機(jī)科學(xué)與技術(shù)等專業(yè)的一門重要專業(yè)課,其目的是使選修本課程的學(xué)生深刻了解從傳統(tǒng)的編譯器轉(zhuǎn)變到編譯原理的必要性、必然性和可行性[5]。
1.4 問題引導(dǎo)式的課堂設(shè)計
由于豐富的教學(xué)資源,特別是慕課資源的出現(xiàn),沖擊了傳統(tǒng)的教學(xué)方式,在建設(shè)慕課資源的時候,需要結(jié)合編譯原理知識框圖,從每個知識點對應(yīng)的問題開始講授,引導(dǎo)學(xué)生自主式學(xué)習(xí)。
教師提出能夠引起學(xué)生深入思考的問題,這些問題包括新講授知識和之前知識的拓展和延伸[6]。例如,針對語法分析方法,引導(dǎo)學(xué)生思考構(gòu)造語法樹的方法有哪些,通過設(shè)定特定的表達(dá)式啟發(fā)學(xué)生思考問題,并一起尋找解決方案。
教師在問題討論的基礎(chǔ)上引導(dǎo)學(xué)生,使學(xué)生由淺層知識學(xué)習(xí)轉(zhuǎn)變到深層知識學(xué)習(xí)。例如,結(jié)合本課程,通過語法樹的構(gòu)造方法,首先討論自上而下的語法樹應(yīng)該具有哪些特點,進(jìn)而介紹如何消除左遞歸和提取左因子。
在每次課結(jié)束之后,教師仍舊通過一個問題給出下次課的討論主題。例如,在學(xué)習(xí)完成自上而下的語法分析后,引導(dǎo)學(xué)生思考如果采取自下而上的分析方法,如何利用棧完成構(gòu)造語法樹的工作,學(xué)生展示實現(xiàn)的算法,教師進(jìn)行點評,使學(xué)生能夠進(jìn)行對比,深刻理解各類算法的優(yōu)缺點。最后,教師布置本次課程的作業(yè)。
2 立體化的教學(xué)體系
學(xué)校結(jié)合精英教育發(fā)展思路,總結(jié)國內(nèi)外其他院校在編譯原理課程方面對學(xué)生素質(zhì)培養(yǎng)的成功經(jīng)驗,通過對編譯原理課程體系的研究,從培養(yǎng)模式、教學(xué)模式、考核模式等角度構(gòu)建編譯原理知識體系和實驗設(shè)計。本項目由教授負(fù)責(zé)整體設(shè)計和分配,最終形成“教授—副教授—講師”階梯教學(xué)團(tuán)隊,打造高水平的編譯原理在線開放課程。本課程建設(shè)包括5個方面,見圖1。
(1)建立整體化的知識點結(jié)構(gòu),增加學(xué)生的學(xué)習(xí)動力。
(2)建立原理與實踐統(tǒng)一的課程內(nèi)容組織結(jié)構(gòu),降低學(xué)生的學(xué)習(xí)難度。
(3)采用多層次激勵型教學(xué)模式,吸引學(xué)生的學(xué)習(xí)興趣。
(4)設(shè)計梯度化實驗體系,提高學(xué)生的學(xué)習(xí)效果。
(5)建設(shè)立體化教學(xué)資源平臺,保障教學(xué)質(zhì)量。
2.1 整體化的教學(xué)內(nèi)容建設(shè)
編譯原理是較難的計算機(jī)學(xué)科課程,內(nèi)容較為抽象,但如果教學(xué)內(nèi)容設(shè)計合理,則能很大程度提升學(xué)生的興趣。圍繞核心內(nèi)容,結(jié)合社會對本課程的實際需求,我們進(jìn)一步完善課程內(nèi)容,例如換名調(diào)用的參數(shù)傳遞方法;加強(qiáng)對前沿知識的介紹,增加在線編譯器的介紹;引入在線編譯器網(wǎng)站等。圖2為整體化的教學(xué)資源建設(shè)示意圖。