王新峰,劉霜霜(.吉首大學軟件服務外包學院,張家界 47000;.湖南工業職業技術學院,長沙 4008)
研討式教學在編譯原理課程中的應用
王新峰1,劉霜霜2
(1.吉首大學軟件服務外包學院,張家界 427000;2.湖南工業職業技術學院,長沙410208)
隨著MOOC、公開課的興起對傳統的教學帶了巨大的沖擊,傳統的教師臺上講學生臺下聽的模式弊端越來越明顯。為了對應新環境的變化,本課程將應用在西方發達國家高校中已取得較好成效的研討式教學。研討式教學是以解決問題為中心,通過由教師創設問題情境,讓學生查閱資料、獨立思考,展開課堂討論和交流,在不同觀點相互交流補充、碰撞交鋒中提出解決問題的辦法,使學生掌握知識和技能的教學方式[1]。
一門課程的教學過程有四個關鍵參與因素:教學環境、課程知識、學生、教師。通過分析在編譯原理中可以開展研討式教學,具體如下:
(1)先進的配套教學環境。本學院每個學生都分配到一臺實驗計算機,且所有教室都屬于多媒體教室自帶Wi-Fi。為研討式教學過程中查找資料,PPT展示和程序演示提供了非常好的教學環境。
(2)具有合適的研討主題。編譯器的工作流程可以分為7塊:詞法分析、語法分析、語義分析、中間代碼生成、機器無關代碼優化、目標代碼生成、機器相關代碼優化。不同流程之間知識相對獨立,同時編譯原理的這些理論知識與實踐結合很好。例如詞法分析,學生可以結合自己使用的C語言知識,分析討論C語言的詞法分析是怎樣實現的,再嘗試編寫一個類似詞法分析器。同樣的語法分析、語義分析等都可以提取出來作為研討主題。
(3)學生經驗與知識基礎符合要求。編譯原理課程是大二下學期的課程,本院學生在大一就接觸過研討式教學方式對此并不陌生,經過一年半的時間學習,學生具有動手編寫程序的能力。
(4)研討式教學的最終目標是培養學生獨立思考問題和解決問題的能力,對授課教師的要求較高。本門課程的教師有IT大企業的工作經驗和教學經驗,對編譯原理的知識有很好的理解,且能從實用性角度出發把握重點和難點。因此教師的理論教學水平、分析和解決問題的能力等滿足研討式教學的高要求。
2.1研討主題的設計
確定研討主題是研討式教學的第一步,一個好的研討主題選取要符合以下幾點:第一,涵蓋1-3個知識點,知識點太多不利于重點知識的把握。第二,考慮學生的能力和時間,學生在一周內能自學查找資料完成。第三,具有發散性,這里發散性是指學生能用采用不同的辦法解決,這樣有利于思想的碰撞。最后,如果具有實用價值則更好,這樣就能激發起學生主動學習的興趣[2]。
根據筆者多年的開發經驗,從實際開發需求角度和上課課時量出發,確定了編譯原理需要開展研討式的知識點有:詞法分析,自頂向下語法分析,語法制導翻譯,中間代碼生成。并設計了相應的研討主題,如下表1所示:

表1 研討主題表
其中語法分析是重點,需要編寫自頂向下語法分析程序,安排了2周時間。整個編譯過程是一個完整的流程,且在任意的程序編譯過程中都存在,可以選取一個簡單的C語言程序作為載體來展開研討式,代碼如下:

別看代碼簡單,但包含了整個編譯過程所有知識點,限于篇幅限制,這里僅以詞法分析為例,針對這個主題需要學生自行解決和討論的問題:
(1)代碼中怎么樣表達一個單詞。
(2)在C語言中單詞分了多少個類。
(3)如何來識別程序中的單詞
上面3個問題就包含了正則表達式、詞法單元規約、識別單詞三個知識點,解決了這3個問題學生就掌握了詞法分析這個過程。
2.2課前準備
研討式教學過程中學生是主體,教師是輔導,這種轉換過程會出現各種問題,如學生不知道講什么,教師在旁不會引導。為了達到預期的教學目標,教師需要對學生講解研討式教學的流程,之后每次研討式課前雙方需做好以下各項準備。
教師需要準備3個方面的工作。第一,研討課前1周將研討主題下發給研討小組,讓學生有充分的時間去了解研討課題、查找資料解決問題;第二,教學環境的準備,如網絡、研討過程中需要的應用軟件等;第三,教師要為研討的課題準備微課件,對核心知識點以及問題解決思路進行講解。
學生需要準備2方面的內容:第一,學生隨機分組,每組人數4-5人,并選舉一個組長。第二,根據研討課題要求,每組準備包括軟件、電子資料和紙質材料等必要的研討材料。
2.3組織課堂討論
課堂討論是研討式教學的核心階段。為了做好課堂討論需要注意三點:首先教師以旁觀者身份參與其中,讓每個學生自由表達意見;其次是鼓勵學生提出不同的觀點,培養學生獨立思考和勇于創新的精神;第三是教師作為導師角色,需要時刻掌握研討的方向緊緊圍繞主題展開,并且要具有敏銳的洞察力,善于發現討論中的新問題和新思想,把最新的研究成果或者實際事件密切相關的問題融入到討論中[2],研討的流程如下:
①隨機抽取一組上臺講解他們的方案:包括PPT講解思路,源代碼展示結果。(時間10分)。
②之后進入提問討論環節(10分鐘)(注教師需要引導,不能偏離主題)。
③一次課隨機3-4組,之后剩下10-15分鐘左右,教師講解涉及的關鍵知識點和總結。
2.4課后總結鞏固
一次課堂討論有時并不能夠很好地達到預定的教學目標,尤其是對于那些比較難或對實踐性要求較高的知識點,如自頂向下語法分析,課后必須進行總結和補充。該環節主要做2方面的事情,一是針對重點難點需要額外增加課時進行講解,課后布置對應的練習和實驗加以鞏固;二是教師要及時總結前一次研討過程中的不足和優點,并對下次研討活動進行調整,從而提高下次研討式教學效果。
經過一個學期的研討式教學嘗試,取得了一些成果,如學生主動分析問題和搜索資料的能力大大提升,但也出現了一些問題。第一,部分學生不假思索照搬照抄網絡信息,弱化了資料分析和處理的能力,針對該現象,應該指導學生進行信息的選取、過濾和應用的教育[3]。第二,出現了“抱大腳”現象,當一個組內有一個人能力較強時,其他學生會不假思索采用此學生的解決辦法,不利于后進生成長;第三,研討式教學模式對教師要求很高,不同學生在網絡上搜索問題答案時,會得到不同的解決辦法。當學生在討論過程中提出時,如果教師沒有準備就會讓學生難到,也解決不了學生的疑問。
研討式教學模式從西方國家引入到中國高校取得了一定的效果,也得到各高校的重視,證明了它是一種培養人才的有效教學模式。但應用這種模式過程中,也出現了一些不適應“癥狀“:班級學生人數太多,組織課堂討論難度大;學生適應上課自由討論的方式需要時間;對課程知識結構和教師能力都有一定的要求;因此在教學實踐中,應視情況開展研討式教學。
[1]覃遵躍,周清平.研討式教學在Java語言課程中的應用[J].計算機教育,2014(18):55-58.
[2]王新峰,覃遵躍,郭鑫.研討式教學在C語言課程中的應用[J].課程教育研究2015(3).
[3]田管鳳,秦懷泉.研討式教學模式探索和實踐[J].東莞理工學院學報,2013(2):114-117.
Compiler Theory;Seminar-Style;Teaching Reformation
Application of Seminar Teaching in Compiler Principle Course
WANG Xin-feng1,LIU Shuang-shuang2
(1.Jishou University Software Services Outsourcing,Zhangjiajie427000;2.Hunan Industry Polytechnic,Changsha 410208)
1007-1423(2016)06-0071-03
10.3969/j.issn.1007-1423.2016.06.017
王新峰(1986-),男,江西九江人,碩士研究生,助教,研究方向為嵌入式系統設計
2015-12-08
2016-02-12
為了提高編譯原理教學效果,嘗試將研討式教學模式應用到編譯原理課程中,并詳細闡述實施研討式教學的4個步驟:確定研討主題、課前準備、課堂討論、課后總結。
編譯原理;研討式;教學改革
劉霜霜(1982-),女,湖北隨州人,講師,研究方向:計算機網絡、物聯網
In order to improve teaching effectiveness compiler theory,attempts to discuss teaching model applied to compiler theory courses,and e鄄laborates four steps to implement of discuss teaching:determining research topics,class preparation,class discussion,after-school summa鄄ry.