林 奕,曾雷杰,張小芳
(西北工業(yè)大學(xué) 計算機(jī)學(xué)院,陜西 西安 710072)
面向復(fù)雜工程和系統(tǒng)能力的編譯原理課程改革探索
林 奕,曾雷杰,張小芳
(西北工業(yè)大學(xué) 計算機(jī)學(xué)院,陜西 西安 710072)
針對工程教育認(rèn)證標(biāo)準(zhǔn)關(guān)于復(fù)雜工程問題解決能力培養(yǎng)的需要,結(jié)合西北工業(yè)大學(xué)計算機(jī)學(xué)院編譯原理課程試點(diǎn)改革實踐情況,分析課程改革面臨的主要挑戰(zhàn)和影響效果的相關(guān)因素,探討教學(xué)方法、教學(xué)內(nèi)容、考核模式等的適用條件和有效性,提出提高人才培養(yǎng)質(zhì)量的思路和建議。
工程教育認(rèn)證;復(fù)雜工程能力;編譯原理
中國工程教育認(rèn)證協(xié)會在2016年認(rèn)證標(biāo)準(zhǔn)中,對“復(fù)雜工程問題解決能力”提出了明確要求[1]。從字面意思上理解,對復(fù)雜工程能力培養(yǎng)效果的評價,可以從以下兩個角度考慮:
第一,作品足夠復(fù)雜(系統(tǒng)能力提升類課程改革的主要目標(biāo))。
第二,通過教學(xué)過程的實施,使絕大多數(shù)學(xué)生可以產(chǎn)出復(fù)雜作品(工程認(rèn)證要求覆蓋全體學(xué)生)。
目前教學(xué)實踐中遇到的問題往往是定義標(biāo)準(zhǔn)容易(達(dá)到某個復(fù)雜度),達(dá)成標(biāo)準(zhǔn)困難(大部分學(xué)生無法保質(zhì)保量達(dá)到要求)。最終結(jié)果通常只能是降低標(biāo)準(zhǔn)。換而言之,“教學(xué)過程的實施”并未提高大部分學(xué)生的復(fù)雜工程能力。導(dǎo)致這一現(xiàn)象的主要原因在于,現(xiàn)有教學(xué)方法過于注重讓學(xué)生“記住技術(shù)”,而不是通過資料搜集、研討交流、實驗試錯等方式,真正理解技術(shù)的內(nèi)涵與本質(zhì)。
實際上,工程設(shè)計人員在解決真實工程問題時,需要根據(jù)用戶需求、時間進(jìn)度、可用資源、維護(hù)成本等多方面因素,綜合運(yùn)用科學(xué)與工程方法,以“提出方案、評價效果、改進(jìn)方案”的形式對項目進(jìn)行迭代推進(jìn)和逐步優(yōu)化。不僅如此,實際項目中的設(shè)計人員往往還要參考大量相似系統(tǒng)的設(shè)計和經(jīng)驗,在經(jīng)過權(quán)衡與綜合后提出或改進(jìn)設(shè)計方案。
從認(rèn)知模型的角度看,這一過程體現(xiàn)的是“布魯姆分類模型”中高層次的思維活動[2]。傳統(tǒng)教學(xué)中采用的“記住算法和公式”“多做習(xí)題”等方式,只能以碎片化方式對單項技術(shù)進(jìn)行介紹,無法體現(xiàn)工程活動中的發(fā)現(xiàn)問題、解決問題的系統(tǒng)化、動態(tài)化思維過程。
本改革希望以編譯原理課程為例,通過實際教學(xué)試點(diǎn)實驗,探索導(dǎo)致上述問題的主要因素,并對多種教學(xué)方法、考核方式進(jìn)行嘗試,對這些方式方法的有效性和局限性進(jìn)行分析,以期找到能夠切實提高復(fù)雜工程能力培養(yǎng)效果的有效途徑與方法。
考慮到學(xué)生基礎(chǔ)、接受能力和有限學(xué)時等限制條件,編譯原理課程改革分為多個階段進(jìn)行。
第一階段,針對較小規(guī)模班級,探索提高最低水平和平均水平的途徑和方法。該階段面臨的主要挑戰(zhàn)有:
(1)缺乏前期改革支撐,學(xué)生接受能力存在較大不確定性;
(2)學(xué)生其他課程較多(第二屆試點(diǎn)班進(jìn)行了調(diào)整),可投入學(xué)習(xí)的時間有限;
(3)缺乏相關(guān)教學(xué)與考核經(jīng)驗。
第二階段,擴(kuò)大受益面,研究確保更大規(guī)模班級的教學(xué)效果。同時繼續(xù)探索提高課程難度的有效途徑與方法(最高難度)。
第三階段,覆蓋全體學(xué)生。
本課程改革是西北工業(yè)大學(xué)計算機(jī)學(xué)院系統(tǒng)能力課程體系改革的一個組成部分[3],小規(guī)模試點(diǎn)班階段是改革的第一階段,因此制定了以下有限目標(biāo)和任務(wù):
第一,重點(diǎn)提高最低挑戰(zhàn)度及其自主達(dá)成度,覆蓋試點(diǎn)班全體學(xué)生。核心是提高學(xué)生基礎(chǔ)能力[4]和已有知識體系教學(xué)效果與效率。
第二,嘗試多種教學(xué)、考核方法,從學(xué)生達(dá)成度和教學(xué)/學(xué)習(xí)效率的角度,針對改革限制條件,對這些方法進(jìn)行初步分析和評估。
第三,通過教學(xué)中遇到的實際技術(shù)難點(diǎn)和典型學(xué)生案例,發(fā)現(xiàn)影響教學(xué)效果和效率的其他盲點(diǎn)和瓶頸問題,探索可能的解決途徑。
第四,在上述過程中,評價現(xiàn)有教學(xué)、指導(dǎo)與評價、考核方法對培養(yǎng)復(fù)雜工程能力方面的實際效果,并可能存在的問題。
上述幾條中,第一條是試點(diǎn)班希望達(dá)到的教學(xué)效果。第二條所采取的教學(xué)、考核方法是保證第一條實現(xiàn)的基礎(chǔ)。第三條對所采取方法進(jìn)行評估和分析,發(fā)現(xiàn)影響教學(xué)效果和效率的主要因素,為進(jìn)一步提高挑戰(zhàn)度和學(xué)生覆蓋率提供依據(jù)和建議。第四條希望分析現(xiàn)有教學(xué)、考核方法用于培養(yǎng)復(fù)雜工程能力時的有效性與不足。
3.1 試點(diǎn)改革前的基本情況
在本次試點(diǎn)前,學(xué)生分為兩個大班,每個大班約100~120名學(xué)生。理論課64學(xué)時,實驗課32學(xué)時(以獨(dú)立課程設(shè)計形式獨(dú)立開課,在理論課結(jié)束后下一學(xué)期開設(shè))。實驗課采取的實驗策略,是給定詞法、語法的形式化表示,要求學(xué)生利用工具生成某種中間表示形式的低級代碼序列。
根據(jù)實際教學(xué)情況,為加快改革進(jìn)度,本課程第一階段改革分為3個子階段。
3.2 子階段1(2014年秋季)的改革措施與效果
試點(diǎn)班為教育實驗學(xué)院圖靈班大三學(xué)生,共4位同學(xué),“子階段1”基本情況見表1。
表1 “子階段1”基本情況
本階段試點(diǎn)目標(biāo)是探索案例教學(xué)和全實驗室教學(xué)模式,并研究其中影響教學(xué)效果和效率的主要因素。
1)改革措施。
(1)實驗室授課:首次嘗試?yán)碚摵蛯嶒炛笇?dǎo)均在實驗室開展,指導(dǎo)學(xué)生通過查詢資料開展研討和自學(xué)。
(2)課程內(nèi)容調(diào)整:針對理論和編程基礎(chǔ)薄弱(離散數(shù)學(xué)下學(xué)期才學(xué))的特點(diǎn),以案例代替理論推導(dǎo)(原型系統(tǒng)介紹,給出自動機(jī)、遞歸下降等實現(xiàn)案例),并采用逆向分析法增加高級/低級語言對應(yīng)關(guān)系等內(nèi)容,解決學(xué)生不了解匯編等問題[5]。
2)效果分析。
(1)總體效果:學(xué)生基本均可完成一個小型語言的編譯器,但學(xué)生作品的規(guī)模和質(zhì)量均不理想。
(2)措施優(yōu)缺點(diǎn)分析見表2。
3.3 子階段2(2015年春)的改革措施與效果
針對大班,研究分組研討對教學(xué)效果和效率的影響?!白与A段2”基本情況見表3。
表2 “子階段1”改革措施效果分析
表3 “子階段2”基本情況
我們嘗試采取“組分裂互助模式”,對自動機(jī)、LL和LR算法、語法制導(dǎo)的中間表示生成中的核心內(nèi)容進(jìn)行教學(xué)。具體方式如下:
(1)針對詞法、語法核心算法和模型,進(jìn)行案例引導(dǎo)的教學(xué)。
(2)采取迭代式分組教學(xué)模式——即講解案例后,統(tǒng)計完全理解的學(xué)生數(shù)后分組,保證每組有一名完全理解的學(xué)生擔(dān)任主講,講完后再統(tǒng)計、再分組。
“子階段2”改革措施效果分析見表4。
表4 “子階段2”改革措施效果分析
3.4 子階段3(2015年秋)
2015年秋季,我們選拔了12名大三普通班的同學(xué)和10名大三教改班同學(xué)進(jìn)行試點(diǎn),基本情況見表5。
表5 “子階段3”基本情況
為提高學(xué)生參加積極性和教學(xué)效果,本試點(diǎn)班提前一個學(xué)期開課,學(xué)生如有困難允許退出并參加2016年春季的正常課程和考試。20位同學(xué)完成,2位同學(xué)退出。本次試點(diǎn)目的在于提高作品規(guī)模和難度,并保證絕大多數(shù)同學(xué)完成任務(wù)。“子階段3”改革措施效果分析見表6。
1)提高最低挑戰(zhàn)度及其自主達(dá)成度,覆蓋試點(diǎn)班全體學(xué)生。
作品品質(zhì)和學(xué)生完成率達(dá)到預(yù)定要求。除兩位同學(xué)因其他課程較重等原因退出試點(diǎn)班,其他同學(xué)均完成任務(wù)。12位同學(xué)程序規(guī)模在1 500~2 500 LOC之間。4位同學(xué)達(dá)到2 500~4 000 LOC(均有較強(qiáng)基礎(chǔ),4人中1名為圖靈班同學(xué))。3位同學(xué)達(dá)到800~1 500 LOC(此處LOC為去除注釋、空行后的純代碼行)。從結(jié)果看,圖靈班和普通班同學(xué)差異并不顯著。
2)所采取的全實驗室教學(xué)、調(diào)整的課程內(nèi)容、組分裂互助模式、作品評價方式等措施,對提高理論教學(xué)效率和效果有顯著的正面作用。
(1)在大多數(shù)學(xué)生基礎(chǔ)不強(qiáng)的條件下,仍可全部達(dá)成預(yù)定目標(biāo)(符合工程認(rèn)證關(guān)于最低標(biāo)準(zhǔn)覆蓋全部學(xué)生的要求)。
(2)學(xué)生上課前的編程和理論基礎(chǔ),對能夠達(dá)到的最高標(biāo)準(zhǔn)關(guān)系密切,與大部分同學(xué)所能達(dá)到的標(biāo)準(zhǔn)關(guān)系不顯著。
(3)4位同學(xué)可獨(dú)立完成任務(wù),大部分同學(xué)在老師或同學(xué)幫助下可以完成任務(wù)。只有2名同學(xué)須教師主動關(guān)注并在關(guān)鍵點(diǎn)上提供較多幫助,過關(guān)后在自信和能力方面得到提升,無須過多關(guān)注即可完成任務(wù)。分析這一現(xiàn)象的原因,除學(xué)生基礎(chǔ)外,學(xué)生是否善于溝通交流和教師是否能夠及時發(fā)現(xiàn)“卡殼”的學(xué)生,是最為關(guān)鍵的因素?;谧髌窚y試和評價的模式,可讓教師及早發(fā)現(xiàn)問題并提供幫助。
3)新發(fā)現(xiàn)的瓶頸問題和典型案例。
(1)沒有預(yù)料到“學(xué)生溝通與交流能力”成為影響教學(xué)效果的主要因素。印證了“及早發(fā)現(xiàn)問題”是提高作品完成率的關(guān)鍵因素。
(2)是否能夠鼓勵學(xué)生互助,是提高教學(xué)效率的關(guān)鍵。
(3)建立對每個學(xué)生學(xué)習(xí)過程及時評價和指導(dǎo)的機(jī)制,是避免互助變成“互抄”的關(guān)鍵。此方法雖然教師工作量較大,但不僅可避免“程序檢測技術(shù)”無法應(yīng)對源頭多樣性帶來的漏檢問題[6],而且也符合解決復(fù)雜工程問題的漸進(jìn)與迭代過程的特性。
(4)驗證了案例教學(xué)可極大提高作品完成度。但過細(xì)的案例會抑制學(xué)生主動性,降低學(xué)生水平區(qū)分度。下一階段改革,我們將探索解決這一難題的方法。
(5)學(xué)生規(guī)模擴(kuò)大是影響教學(xué)效果的關(guān)鍵因素。本次試點(diǎn)在對教學(xué)內(nèi)容和方法改進(jìn)后,應(yīng)可適用于小規(guī)模自然班。然而對大規(guī)模的班級來說,教師可投入時間和實驗室規(guī)模(決定了課外實驗時間)將是最大瓶頸問題。這可能是目前很多學(xué)校在實施系統(tǒng)能力改革時所面臨的最大挑戰(zhàn),也是我們下一階段試點(diǎn)的核心目標(biāo),重點(diǎn)將放在探索一條低成本、可操作的解決途徑。
表6 “子階段3”改革措施效果分析
4)探索復(fù)雜工程問題解決能力的評價、考核方法,系統(tǒng)能力的教學(xué)與指導(dǎo)方法。
(1)從“子階段3”的結(jié)果看,“能夠構(gòu)建出較復(fù)雜的系統(tǒng)”只是“復(fù)雜工程問題解決能力”培養(yǎng)的一個結(jié)果。目前教學(xué)對于工程能力的培養(yǎng)存在顯著不足,因此必須將工程能力培養(yǎng)融入學(xué)習(xí)過程中,否則很容易受學(xué)習(xí)能力限制,被迫大幅降低實驗難度或出現(xiàn)學(xué)生完成率低等問題。
(2)本次試點(diǎn)采用的評價、考核方法和實驗階段劃分方式,主要對最終作品進(jìn)行評價。工程質(zhì)量等問題顯然只有對工程過程進(jìn)行管理才能解決,當(dāng)學(xué)生規(guī)模擴(kuò)大后將有更多學(xué)生需要被關(guān)注,教學(xué)方法和手段將是教師能否同時關(guān)注這么多學(xué)生的主要障礙。
(3)過多、過細(xì)的指導(dǎo)會減少學(xué)生獨(dú)立解決問題的數(shù)量并降低問題的難度。如不能對此因素進(jìn)行控制,最終考核的將是“老師或案例的質(zhì)量”,從而無法區(qū)分學(xué)生水平差異,并針對學(xué)生差異進(jìn)行強(qiáng)化指導(dǎo)與訓(xùn)練。在對2名須教師“主動幫助”的同學(xué)進(jìn)行指導(dǎo)時,采用增量式開發(fā)模式使瓶頸突破成為可能。然而一旦突破瓶頸,學(xué)生就有信心、有能力完成更高質(zhì)量的作品。
試點(diǎn)班教學(xué)實驗表明:
(1)全部學(xué)生的作品規(guī)模、難度達(dá)到改革第一階段預(yù)期目標(biāo)。
(2)對影響教學(xué)效果的幾個可能因素及各教學(xué)方法有效性進(jìn)行分析,得到表7所示的結(jié)論。
(3)試點(diǎn)班后期發(fā)現(xiàn)學(xué)生作品規(guī)模雖然有了明顯提升,但暴露了較多的質(zhì)量問題。如不對工程方法專門指導(dǎo)、bug太多、架構(gòu)無法擴(kuò)展等原因?qū)е螺^多學(xué)生放棄對更高難度實驗的挑戰(zhàn)、或因時間不夠而無法調(diào)整更高難度任務(wù),降低課程可達(dá)成的最高難度與平均難度。
表7 影響教學(xué)效果的可能因素
復(fù)雜工程需要多方面綜合能力,尤其是對方案、設(shè)計、問題的評估和不斷改進(jìn),涉及布魯姆分類模型中的高層活動[2]。僅通過對作品結(jié)果的正確性或性能測試只能評價學(xué)生是否達(dá)到標(biāo)準(zhǔn),不能揭示學(xué)生能力成長過程中存在的問題。如果不能發(fā)現(xiàn)哪些學(xué)生被卡在哪里,將無法提供及時指導(dǎo),這將影響達(dá)成度和作品水平。本次試點(diǎn)班采取的措施,對小規(guī)模班級有效性顯著,但用于更大班級時須對所采取的方法和措施進(jìn)行進(jìn)一步改進(jìn)。
[1] 中國工程教育認(rèn)證協(xié)會. 中國工程教育認(rèn)證通用標(biāo)準(zhǔn)[EB/OL]. [2016-07-30]. http://cn.ceeaa.org.cn/.
[2] Bloom B S, Engelhart M D, Furst E J, et al. Taxonomy of educational objectives: The classification of educational goals. Handbook I: Cognitive domain[M]. New York: David McKay Company,1956.
[3] 姚燁, 林奕, 張凱龍. 計算機(jī)學(xué)院以學(xué)生三大能力培養(yǎng)為抓手推動計算機(jī)專業(yè)本科培養(yǎng)體系重構(gòu)[EB/OL]. [2015-06-19]. http:// news.nwpu.edu.cn/info/1002/30180.htm.
[4] 林奕, 康慕寧. 軟件教育新形勢下的編譯原理課程體系改革[J]. 計算機(jī)教育, 2011(11): 28-32.
[5] 葛強(qiáng), 唐慧豐, 王磊, 等. 結(jié)合逆向分析的匯編語言程序設(shè)計教學(xué)方法[J]. 計算機(jī)教育, 2016(6): 94-97.
[6] Bowyer K W, Hall L O. Experience using MOSS to detect cheating on programming assignments[C]∥IEEE Education Society. 29th Frontiers in Education Conference. USA: IEEE Press, 1999, 3(13b3): 18-22.
(編輯:彭遠(yuǎn)紅)
1672-5913(2017)02-0111-06
G642
西北工業(yè)大學(xué)2015年度探究式、研究型課程“編譯原理”項目(2015U10M11009);計算機(jī)專業(yè)教指委2016年“系統(tǒng)能力培養(yǎng)——專業(yè)課程體系改革及課程建設(shè)”項目試點(diǎn)院校(第一批);計算機(jī)專業(yè)教指委2016年面向工程教育的本科計算機(jī)類專業(yè)課程改革項目“面向復(fù)雜工程問題構(gòu)建能力可分解的課程體系”。
林奕,男,副教授,研究方向為海量信息存儲、嵌入式與實時系統(tǒng),ly_cs@nwpu.edu.cn。