摘要:探討以研究型大學的教學理念和內涵來探索編譯原理與設計課程建設向研究型教學模式轉化,提出致力于知識、能力、科學素養(yǎng)三位一體的編譯原理與設計課程研究型教學建設的目標,闡釋研究型教學模式的定位,進一步探討研究型教學模式的課程體系建設。
關鍵詞:編譯原理;研究型教學模式;科學素養(yǎng);探究性學習
0.引言
按照學校創(chuàng)建研究型大學的定位和確立的“厚基礎、寬口徑、強能力、高素質”的人才培養(yǎng)目標,結合計算機學科的發(fā)展趨勢和現(xiàn)代計算機人才的培養(yǎng)及社會需求,以研究型大學的教學理念和內涵來探索課程建設向研究型教學模式轉化,以教學和科研為中心,以編譯原理與設計課程為試點,致力于知識、能力、科學素養(yǎng)三位一體的編譯原理的研究型教學建設,建立一種基于研究、探索的學習模式,將學習、研究、實踐有機地結合起來,使學生能創(chuàng)造性地運用知識和能力,在主動探索、主動思考、主動實踐的過程中,自主地發(fā)現(xiàn)、研究和解決問題,培養(yǎng)具有探索、創(chuàng)新和實踐能力的高層次、高水平計算機人才。
ACM/IEEE-CS計算學科2013新教程(簡稱CS2013教程)中,根據計算學科的迅速發(fā)展和變化,根據學校的定位和培養(yǎng)目標,亦強調計算機學科學生除了掌握本學科領域重要的知識和技能,還要有領域拓寬和終身學習的能力。CS2013教程比CC2001對計算學科涉及的知識領域的凝練在深度和廣度上都有較大變化。它將計算學科劃分為18個知識領域,編譯原理與設計課程涉及的知識直接關聯(lián)到ACM/IEEE-CS2013許多知識領域,諸如算法和復雜性、計算科學、架構與組織、系統(tǒng)的基礎、離散結構、編程語言、并行和分布式計算、軟件工程等。因此若本課程教學計劃仍然沿用傳統(tǒng)的教學模式而不進行改革,將難以支撐課程改革和學科發(fā)展的需求,難以勝任研究型大學的培養(yǎng)目標。
本文在探討編譯原理與設計課程作為研究型課程的教學模式的定位基礎上,強調以教學和科研為中心,建設基于3個層次、多個系列的研究型課程體系和實施方案。
1.研究型教學模式的定位
“教學模式是為達到一定教學目標,在一定教學思想或理論指導下,為特定條件設計和組織教學活動而構建的教學過程的基本結構和范型”。因此教學模式在教學思想或教學理論指導下,需建立穩(wěn)定的教學活動的結構框架和執(zhí)行程序。作為結構框架,應突出教學模式從宏觀上把握教學活動整體及各要素之間內部的關系和功能;作為執(zhí)行程序,則應突出教學模式的有序性和可操作性。
21世紀計算機人才應是具有探索、創(chuàng)新和實踐能力的高層次、高水平計算機人才。科學探究和探究性學習是學生獲取知識、領會課程知識的思想方法。因此致力于知識、能力、科學素養(yǎng)三位一體的編譯原理與設計的研究型教學模式,堅持研究型教學理論與實踐的結合,要以達到學生自主地發(fā)現(xiàn)、研究和解決問題為目的,將科學研究素質培養(yǎng)貫穿于課程的各個環(huán)節(jié)。
2.研究型教學模式的課程體系建設
2.1建設目標
根據研究型課程教學模式的定位,課程的建設目標設定為以下幾個方面:
(1)探索、建立以編譯原理與設計為范例的研究型課程的教學模式,完成以研究型課程為目標的課程大綱和新教案的編寫。
(2)為提升學生專業(yè)基礎能力、計算思維能力、算法設計與分析能力、程序設計與實踐能力、系統(tǒng)能力等綜合專業(yè)能力和素質,圍繞3個層次、多個系列設計學生創(chuàng)新性思維階梯式培養(yǎng)規(guī)劃和實施方案。
(3)構建具有可擴展性的研究型實驗課程的設計方法和平臺。
為了完成建設目標應注重以下兩個方面:
(1)通過基本知識的傳授和專題講座,將課題組研究問題及與課程相關的其他熱點研究問題引入到教學內容中,進行廣泛的討論。借助課題組的研究力量,幫助感興趣的學生實現(xiàn)小領域知識體系的構建以及研究課題的快速切入和開展,注重以研促教的執(zhí)行路線。
(2)注重于學生科研素養(yǎng)的培養(yǎng)和科學精神的養(yǎng)成,為學生將來從事科研打下良好的基礎,具體體現(xiàn)為扎實專業(yè)知識的積累,創(chuàng)新思維的提升,分析能力和動手能力的強化等。在課程的教學過程中,以專題為組織單位,強調問題的提出和解決過程,對不同解決方法進行對比和討論,以開拓思維和強化理解。
2.2建設內容
建設內容涵蓋有助于學生創(chuàng)新性思維階梯式培養(yǎng)的模式,即3個層次和多個系列。其中3個層次為:
1)知識構建的理論教學,完成以研究型課程為目標的課程大綱的編寫。
改變傳統(tǒng)的教師“灌輸式教學”,學生“接受式學習”及以教材為中心的教學模式,建立“研討式”“互動式”“自主式”教學模式。構建教學和科研雙重職能的課程教學范式。以設計和增加探究性、拓展性問題為切入知識點和內容,使教學任務更多元,更滲透獨立研究的精神。
2)與科研結合的探究性專題。
結合本領域的科研方向、研究課題、研究成果和發(fā)展應用趨勢,凝練、設置與課程有關的創(chuàng)新性研究的專題。專題的設計注重引入科學研究的基本要素,訓練學生創(chuàng)造性的研究方法,培養(yǎng)學生獲取知識、創(chuàng)造知識的能力,更強調學生科學素養(yǎng)的養(yǎng)成及跨領域的研究拓展。
3)創(chuàng)新、拓展、綜合性的實踐。
建立基于激勵機制多級指導的實踐課程設計模式,提升學生的創(chuàng)新實踐能力。實踐教學建立認知實驗、課程實驗、綜合性設計實驗、應用提高實驗系列案例,尤其增加綜合性實驗;指導方式采取答疑式指導、項目式指導和課題式指導。
多個系列的實體內容是保證3個層次的設置目標和實施的可操作性、可篩選性。考慮設置:學科、知識融合拓展系列,科研導向性專題系列,行業(yè)領先企業(yè)一線在研產品系列等。其中學科、知識融合拓展系列的實施內容主要包括:
(1)編譯器自動構建:以現(xiàn)有的編譯器自動構建工具為基礎,主要探討編譯器構建的基本原理和編譯自動生成工具的構造方法。
(2)存儲管理技術:目前程序設計語言的存儲管理方法主要分為顯式和隱式兩種,其中顯式需要程序員手動分配與釋放存儲空間,隱式一般由程序員手動分配內存,但是運行時系統(tǒng)中的垃圾回收機制自動完成空閑空間的回收。由于垃圾回收機制降低了編程復雜度,減輕了程序員的工作量,因此在各語言中逐步得到了或多或少的支持,但是垃圾回收算法難以并行化,導致程序長期停頓的問題一直沒有很好的解決方案,目前仍然是學術界的研究熱點內容之一。
(3)編程模型與調試技術:多核處理器已經在桌面系統(tǒng)和嵌入式系統(tǒng)中得到了廣泛的應用,但是關于學術界和工業(yè)界尚未找到合適的并行程序設計模型和方法,且并行程序的調試技術一直是并行程序設計與驗證過程中懸而未解的問題之一。目前工業(yè)界和學術界都投入了大量的科研力量對該問題進行攻關。
科研導向性專題系列的實施內容主要包括:
(1)安全與軟件逆向工程:隨著智能手機的不斷普及和移動計算的不斷發(fā)展,手機的功能越來越豐富,軟件也越來越多,其中涉及的安全與用戶隱私問題日益受到公眾的關注,使用編譯技術對軟件二進制文件進行逆向提取和分析,能夠獲得一定的信息,對軟件進行分級和過濾,并能夠使用戶在使用前獲知安裝和使用軟件是否存在特定的風險。
(2)面向特定體系結構的編譯優(yōu)化技術:處理器體系結構的發(fā)展日新月異,雖然多核處理器已經得到了廣泛的應用,但是學術界和工業(yè)界對提升計算機系統(tǒng)性能的不斷努力仍然沒有停止,不斷有新的計算機硬件體系結構被提出。為了發(fā)掘這些硬件系統(tǒng)潛在的性能優(yōu)勢,需要輔以編譯優(yōu)化方法和工具。
行業(yè)領先企業(yè)一線在研產品系列的實施內容包括:Intel公司在研的移動處理器關于虛擬機性能提升的產品;Intel公司基于特定體系結構的高中低層優(yōu)化產品和技術等。
3.結語
筆者介紹了編譯原理與設計課程向研究型教學模式轉換的課程定位、建設目標和與之配套的課程體系設計初步方案。3個層次和多個系列的設計方案涵蓋了課程體系建設的整體內容規(guī)劃,注重課程學習、理論與實踐的拓展與創(chuàng)新。然而,方案的實施和效果保證不僅需要在試行和執(zhí)行中不斷改進和總結提升,還需充分考慮面向不同類型學生的針對性和可操作性。