編譯原理是一門研究設計和構造編譯程序原理和方法的課程,是計算機專業的一門重要的專業基礎課。同時編譯程序也是復雜的系統軟件,因而就給這門課程的教學和學習帶來了非常大的困難和困惑。筆者結合當前編譯原理教學現狀和本人的一些教學經驗對該課程的教學提出幾點設想。
編譯原理的教學現狀
編譯原理這門課程的內容太抽象,理論性較強[1],對于學生來說是難于理解與學習;對于教師而言是難教。根據筆者的調查研究發現,“編譯原理”這門課程在教與學上之所以會出現這種問題,主要的原因由以下幾個方面:
首先,“編譯原理”課程作為是計算機專業學生的一門專業課程,內容抽象,理論性強,而且對前面所學的相關計算機基礎課依賴性大,需要學習者有一定的基礎和學習積極性,而課程本身的理解困難和抽象,也使得學生對這門課程產生了畏懼心理,尤其是學生掌握這門課程感到很吃力,產生所學的內容與他們實際的需要有較大的距離。認識上的偏差,使學生極易產生厭學情緒,同時也會失去學習的興趣。其次,編譯原理實驗環節比較薄弱。由于缺少實踐過程,學生的學習僅局限于書本,碰到不理解的問題雖經過老師的講解,但對知識的理解仍是一知半解,缺少去驗證書本上的知識和自己動手去實驗的過程。最后,教學手段單一、理論與實際脫節。由于課程自身技術的原因,使得許多現代教學手段很難在教學過程中得到應用。
關于編譯原理課程理論教學的幾點建議
(1)鼓勵學生打好基礎,掌握好與該課程相關的前期課程的知識。這些課程中最主要的有:《C語言》、《匯編語言和程序設計》、《數據結構》、《程序設計方法》等。如果這些基礎的計算機知識都沒有掌握好,就要學好編譯原理是不可能的。
(2)根據學生的實際情況,合理選用教材和參考書,盡量保持教學內容的實踐性和先進性。國內外編譯原理教材多種多樣,比較著名的有由美國Kenneth編著,機械工業出版社出版的《編譯原理及實踐》以及由張素琴編著,清華大學出版社出版的《編譯原理(第2版)》,這些教材都可作為面向計算機科學研究方向的綜合性大學教材和面向計算機應用方向的工科院校教材。教材的多種多樣為學習提供了多種選擇機會,但教師必須根據學生的實際情況來選擇教材,同時注意編譯原理的及時更新性和發展性。一本切合實際好的教材會直接影響教學的效果。
(3)幫助學生克服畏懼心理。根據“編譯原理”這門專業課程的特點,首要任務是幫助學生克服畏懼心理,才能發揮他們的學習主動性[2]。在上課之前先了解學生以往所學的計算機相關課程,幫助他們分析已經掌握的知識和知識的體系結構,讓學生對自己所掌握的知識有足夠的了解,肯定他們自己所具有的能力。讓學生明白“編譯原理”課程的專業特點,知道以他們已經掌握的計算機知識,有足夠的能力學習掌握“編譯原理”這門課程的知識和技能。通過課堂和實驗,不斷灌輸上述觀念,幫助學生克服畏懼心理,建立信心,變被動地接受知識為主動地去學習。
(4)利用現代化教學設施,精心制作電子課件,開展多媒體教學。“編譯原理”課程的內容抽象,知識點多,信息量大。文中有大量分析表和關系表的文字敘述,理解起來有一定的難度。如果采用傳統的教學形式,必將耗費大量的時間在圖表的繪制和文字的書寫上,從而影響到教學的效率和效果。因此,教師應精心編排和制作教學用電子幻燈片。對于學生難于理解的內容,比如像詞法分析,語法分析的相關內容應將分析過程和思路通過動畫的形式表示出來,以便于學生的理解與記憶。同時,結合板書靈活、可以隨機應變,的特點,在教學中將多媒體教學與傳統教學的結合,以達到最好的教學效果。
關于編譯原理實驗教學幾點看法
編譯原理實驗是大多數學校教學的薄弱環節。其原因:①學生、教師不重視實驗;②教師、學生對編譯程序的代碼不熟悉。
(1)獨立設立實驗課。編譯原理是實踐性很強的課程,通過實踐學習編譯原理的知識應該是最佳途徑。獨立設實驗課,就是實驗教學不再依附于理論教學。它獨立開課,獨立考核,形成標準的編譯原理實驗教學體系。建立一套完整的實驗教學計劃、實驗教學大綱、實驗教材,單獨設定學分,規定計劃實驗學時。按照大綱,根據現有的實驗條件,制定出切實可行的實驗教學內容。將驗證性實驗和設計性實驗以及綜合性實驗科學分配。學生可以通過驗證性實驗,掌握編譯程序的基本原理。設計性實驗和綜合性實驗可以培養學生的動手能力和綜合應用知識的能力,充分發揮學生的主觀能動性,激發學生的學習編譯原理的興趣和熱情。
(2)加強實驗教學的組織與管理。學生是主體,教師是主導。教師簡明扼要地講授實驗理論知識、實驗目的、實驗內容、重點和難點、注意事項,然后讓學生進行實驗,實驗過程中,出現問題一般由學生自主研究解決,教師僅作啟發性提示和引導。在實驗課程性質上分必做實驗與選做實驗,在方式上變定時封閉式教學為靈活開放式教學,并建立BBS互動教學平臺或提供優秀論壇網址,增強與學生的交流。
編譯原理課程教學的優化改進應適應課程教學改革和專業發展的實際需要,切實貫徹該課程的本科教學大綱和基本要求,不斷地完善教學活動的各個環節。在傳授學生編譯原理理論的同時,真正培養學生在系統軟件開發方面的綜合能力。
參考文獻:
[1]呂映芝,張素琴,蔣維杜.編譯原理[M].北京:清華大學出版社,2002.1-3.
[2]李小妹.“編譯原理”課程教學探討[J].廣州:廣東工業大學學報(社會科學版),2007(7):117-118.
作者單位:新疆農業大學計算機與信息工程學院