鄒長軍 管莉莉 易鈺程
【摘要】針對《編譯原理》課程教學(xué)中所面臨的問題,本文將KM教學(xué)法引入編譯原理課程的教學(xué)實踐中。將編譯原理相關(guān)課程知識體系結(jié)構(gòu)化,以整體—部分—整體為教學(xué)模式。將編譯器所涉及的相關(guān)知識點以邏輯思維導(dǎo)圖形式呈現(xiàn),用這種方式可以直觀、簡潔地進行抽象知識的傳授,使得該課程的知識體系邏輯結(jié)構(gòu)清晰、明了,使學(xué)生融會貫通。同時便于學(xué)生舉一反三,將所學(xué)理論知識與實踐相結(jié)合。
【關(guān)鍵詞】KM教學(xué)法? 編譯原理? 思維導(dǎo)圖
【基金項目】國家自然科學(xué)基金(NO.62162027);九江市重點研發(fā)計劃(項目編號:2020069)。
【中圖分類號】G642.0? 【文獻(xiàn)標(biāo)識碼】A 【文章編號】2095-3089(2021)43-0192-03
編譯原理課程是計算機專業(yè)中一門具有較強工程實踐性的學(xué)科,主要包括算法和軟件工程兩方面內(nèi)容。主要讓學(xué)生掌握編譯器基本原理的,從編譯器的工作原理出發(fā)剖析編譯器的基本構(gòu)成和工作原理,培養(yǎng)學(xué)生從底層構(gòu)造一個編譯器的工程實踐能力。由于計算機學(xué)科是一門快速發(fā)展的學(xué)科,相關(guān)工具軟件更新?lián)Q代頻繁,學(xué)生普遍忽略對基礎(chǔ)的掌握,反而熱衷于當(dāng)前的熱點領(lǐng)域。且編譯原理課程所涉及領(lǐng)域較多,如匯編語言、算法與數(shù)據(jù)結(jié)構(gòu)、軟件工程理論等。同時,該課程比較抽象、算法設(shè)計復(fù)雜,學(xué)生普遍缺乏興趣。加之該課程相關(guān)章節(jié)之間聯(lián)系緊密,一旦其中某個章節(jié)掌握不牢,后續(xù)章節(jié)不容易跟上節(jié)奏。因此,根據(jù)教學(xué)實踐中遇到的以上諸多問題,提出將KM教學(xué)法[1-2]引入到編譯原理課程的教學(xué)中。嘗試構(gòu)建編譯原理課程的知識邏輯架構(gòu)圖以及相應(yīng)思維導(dǎo)圖,并將它們貫穿到整個課程的課堂教學(xué)中,促進學(xué)生對編譯原理課程學(xué)習(xí)的積極性,提高課程教學(xué)質(zhì)量[3-4]。
1.KM 教學(xué)法介紹
KM教學(xué)法是楊炳儒教授經(jīng)過多年的教學(xué)實踐總結(jié)出來的一種創(chuàng)新型的教學(xué)方法,基本思想是首先掌握課程的總體架構(gòu),然后再去了解課程中的每一部分,最后再從總體上去把握。KM 教學(xué)法中的KM分別是“知識邏輯結(jié)構(gòu)”(Knowledge Logic Structure,KM)與“思維導(dǎo)圖”(Mind Mapping,MP)的英文字母開頭的縮寫。其中知識邏輯結(jié)構(gòu)區(qū)別于教材中固有的知識結(jié)構(gòu),是跨越章節(jié)的、橫向的基本思維形式。MP是一種具有發(fā)散思維的表達(dá)轉(zhuǎn)換過程,學(xué)生能夠借助MP來提高思維的能力。并且隨著學(xué)生思維不斷的深入,可以逐漸建立一個有意義的思維導(dǎo)圖。思維導(dǎo)圖體現(xiàn)了大腦的自然思維方式,能讓多種觀點自然地在MP圖上進行表達(dá),加強記憶??梢栽趧?chuàng)建思維導(dǎo)圖的過程中使用不同顏色、不同形狀,使得負(fù)責(zé)邏輯思維、詞匯表達(dá)、數(shù)字運算的左腦結(jié)合負(fù)責(zé)直覺、創(chuàng)造力和想象力的右腦,并進一步激發(fā)右腦的潛能。
KM教學(xué)法其本質(zhì)就是:將知識邏輯結(jié)構(gòu)與MP相融合的全新教學(xué)方法,是一種分類、推導(dǎo)、證明、反駁、歸納相結(jié)合的思維導(dǎo)圖,并通過這種方式去組織整個教學(xué)過程的一種教學(xué)方法[5-9]。
2.KM教學(xué)法基本模式
KM教學(xué)法基本模式是按照搭建粗框架、展開填充、啟發(fā)誘導(dǎo)、按照章節(jié)、跨章節(jié)的步驟展開。
(1)首先給出按章節(jié)的總體粗框架結(jié)構(gòu),展現(xiàn)各章節(jié)之間的內(nèi)容聯(lián)系。(2)本著精煉的原則,按照章節(jié)展開重點、突出難點、呈現(xiàn)關(guān)鍵內(nèi)容。(3)遵循思維導(dǎo)圖等形式,并開展啟發(fā)式的誘導(dǎo)。(4)按照KM方法建立邏輯夾頭,按照章節(jié)的形式凝練出總體架構(gòu),體現(xiàn)豐富生動的知識點,展示它們之間的復(fù)雜內(nèi)在聯(lián)系。(5)對于具有邏輯聯(lián)系的章節(jié)進行對比,通過擴展性、跨章節(jié)的KM來加以實現(xiàn)。
該模式也體現(xiàn)了教學(xué)過程中交互的“薄-厚-薄”模式。即從加涅提出和發(fā)展的信息加工方面來看,先給學(xué)生“薄”的信息感受,快速建立全局的整體框架;再進行逐步展開予以擴充,啟發(fā)誘導(dǎo)形成“厚”的涵蓋核心內(nèi)容(重點、難點、關(guān)鍵)的信息載體;最后使學(xué)生從厚重的載體中構(gòu)建出充滿了豐滿內(nèi)在聯(lián)系的“薄”的總體架構(gòu)[10-12]。
總括出的知識系統(tǒng)可以用“圖表”的形式概括,具有結(jié)構(gòu)清晰、融會貫通、直觀形象等特點。通過它,可以使我們對知識的全貌有一個宏觀的認(rèn)識,并且厘清所歸納出的幾條線索;這樣只要牽動一點就可以帶動一串,便于記憶與運用。按照這種模式組織的教學(xué)過程,可以使學(xué)生不斷取得認(rèn)識上的“飛躍”[13-15]。
3.KM教學(xué)法在編譯原理課程中的應(yīng)用
編譯原理是計算機專業(yè)的一門重要專業(yè)課,課程要求學(xué)生了解計算機高級語言流程序被計算機接受、掃描、詞法分析、語法分析、語義解釋執(zhí)行的原理與過程;掌握編譯的原理和基本算法、各種概念和語言描述。
以清華大學(xué)出版社出版的《編譯原理》第三版為例,全書主要內(nèi)容共分10章,按邏輯功能不同可將編譯過程劃分為五個基本階段,分別是第一章的引論,第二章、第三章的詞法分析,第四章~第六章的語法分析,第七章、第八章的語義分析和中間代碼生成,第九章、第十章目標(biāo)代碼生成和優(yōu)化組成,基本知識點的邏輯架構(gòu)如圖 1所示,通過該架構(gòu)圖可以非常直觀地了解編譯原理課程的整個知識點之間聯(lián)系,方便學(xué)生建立整體框架,做到通過“薄”的內(nèi)容建立骨架結(jié)構(gòu)。與此相對應(yīng),我們將整個編譯過程的編譯程序劃分為五個邏輯階段(即五個邏輯子過程),如圖 2所示。
其中,詞法分析任務(wù)是分析和識別單詞,并以某種編碼形式輸出。其中單詞是語言的基本語法單位,一般語言有四大類單詞分別為:①語言定義的關(guān)鍵字或保留字;②標(biāo)識符;③常數(shù);④分界符(運算符)。
語法分析任務(wù)是根據(jù)語法規(guī)則(即語言的文法),分析并識別出各種語法成分,如表達(dá)式、各種說明、語句、過程、函數(shù)等,并進行語法正確性檢查。
語義分析任務(wù):對識別出的各種語法成分進行語義分析,并產(chǎn)生相應(yīng)的中間代碼。生成中間代碼的目的:? ①便于進行優(yōu)化處理;②便于編譯程序的移植和重用。
由語法分析識別出賦值語句,語義分析首先要分析語義上的正確性。根據(jù)賦值語句的語義,生成中間代碼。即用一種語言形式來代替另一種語言形式,這是翻譯的關(guān)鍵步驟。
由中間代碼很容易生成目標(biāo)程序(地址指令序列)。這部分工作與機器關(guān)系密切,所以要根據(jù)特定機器進行。
通過該編譯過程邏輯結(jié)構(gòu)可以方便學(xué)生掌握在編譯的每個階段,編譯器分別執(zhí)行了什么操作、其對應(yīng)的輸入、輸出分別是什么,每個階段的前驅(qū)步驟和后繼步驟分別是什么,達(dá)到進一步豐富骨架、填充肌肉而實現(xiàn)“厚”的目標(biāo)。
所謂編譯過程是指將高級語言程序翻譯為等價目標(biāo)程序的過程。根據(jù)編譯程序各部分功能不同,可將編譯程序分成前端和后端(圖3)。編譯前端:與源語言有關(guān),與機器無關(guān)的優(yōu)化。編譯后端:與目標(biāo)機器有關(guān),與目標(biāo)機有關(guān)的優(yōu)化及目標(biāo)代碼產(chǎn)生。通過對編譯前端后端的梳理,可以進一步梳理總結(jié)編譯過程的邏輯結(jié)構(gòu),通過梳理厚的“薄”框架,讓學(xué)生進一步建立基本框架。通過以上三個步驟實現(xiàn)了“薄—厚—薄”整個流程的閉環(huán),建立整體形象;使學(xué)生從厚重的載體中構(gòu)建出充滿了豐滿內(nèi)在聯(lián)系的“薄”的總體架構(gòu)。
4.結(jié)論
針對理論性較強,學(xué)習(xí)難度較大的 “編譯原理” 課程,文章創(chuàng)造性地提出了基于KM教學(xué)法的課程教學(xué)改革具體方法。KM方法更利于學(xué)生了解和掌握編譯原理相關(guān)知識及其之間的聯(lián)系,并且,今后的課程實踐教學(xué)中,我們將更多地使用KM教學(xué)法來進一步提高該課程的教學(xué)質(zhì)量。
參考文獻(xiàn):
[1]楊炳儒.KM教學(xué)論研究與實踐[J].北京科技大學(xué)學(xué)報:社會科學(xué)版,2012(1):93-96+149.
[2]周法國,張帆,楊炳儒.基于KM教學(xué)論的面向?qū)ο蟪绦蛟O(shè)計教學(xué)研究[J].教育研究前沿:中英文版,2015(2):17-22.
[3]張帆,楊炳儒.KM教學(xué)法在“數(shù)據(jù)結(jié)構(gòu)”課程中的研究與應(yīng)用[J].基礎(chǔ)教育研究, 2010(24):21-22.
[4]楊炳儒,張?zhí)壹t.理工科課堂KM教學(xué)法研究[J]. 現(xiàn)代大學(xué)教育,2006(4):83-85.
[5]張艷明,桂忠艷,孫堯.結(jié)合微課的KM教學(xué)法在計算機基礎(chǔ)教學(xué)的應(yīng)用[J].微型電腦應(yīng)用,2019,35;No.315(7):5-7.
[6]田毅,賈永旺.KM教學(xué)法在離散數(shù)學(xué)中的應(yīng)用[J]. 計算機教育,2019,No.289(1):37-39.
[7]尹芝.知識可視化下KM教學(xué)法的研究和應(yīng)用[D]. 沈陽師范大學(xué),2011.
[8]舒文豪,錢文彬,楊珺.KM教學(xué)法在《軟件工程》課程中的教學(xué)實踐[J].教育教學(xué)論壇, 2017(51):191-192.
[9]李忠慧.結(jié)合認(rèn)知結(jié)構(gòu)的KM教學(xué)法在C語言教學(xué)中的應(yīng)用[J].計算機時代, 2019, 321(3):68-70.
[10]Liu SH, Lee GG. Using a concept map knowledge management system to enhance the learning of biology[J].Computers&Education,2013(68):105-116.
[11]Hwang GJ,Yang LH.A concept map?鄄embedded educational computer game for improving students’ learning performance in natural science courses[J].Computers&Education,2013(69):121-130.
[12]Groth RE, Bergner JA. Mapping the structure of knowledge for teaching nominal categorical data analysis[J].Educational Studies in Mathematics,2013,83(2):247-265.
[13]Knowledge Visualization:Towards a New Discipline and its Fields of Application. Eppler M J,Burkhard R A. Cities, 2004.
[14]仲旦彥,陳玉榮.知識結(jié)構(gòu)具象化的《會計學(xué)》教學(xué)創(chuàng)新實踐研究——基于KM教學(xué)法[J].教育現(xiàn)代化, 2019(48).
[15]孟祥軍,石瑾,張馨,等.提高結(jié)構(gòu)化學(xué)課程教學(xué)質(zhì)量的實用方法——基于“KM教學(xué)法”開發(fā)“知識邏輯結(jié)構(gòu)呈現(xiàn)式”課件[J].高分子通報,2015(8):123.
作者簡介:
鄒長軍(1987年-),男,講師,博士,主要研究計算機圖形學(xué)、虛擬現(xiàn)實技術(shù)。