国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于開源社區(qū)的編譯原理課程構(gòu)建

2021-03-31 08:52計(jì)衛(wèi)星王貴珍
中國大學(xué)教學(xué) 2021年2期
關(guān)鍵詞:課程建設(shè)人才培養(yǎng)

計(jì)衛(wèi)星 王貴珍

摘 要:目前我國高等教育從規(guī)模擴(kuò)展全面轉(zhuǎn)向內(nèi)涵式發(fā)展,改進(jìn)培養(yǎng)模式和方法,提高各領(lǐng)域人才培養(yǎng)質(zhì)量,一流課程建設(shè)是關(guān)鍵之舉。本文詳細(xì)闡述了在“云大物智”等新技術(shù)快速演進(jìn)的新時(shí)期如何基于開源社區(qū)構(gòu)建編譯原理研究型課程,具體包括在現(xiàn)有研究型課程定義的基礎(chǔ)上進(jìn)一步明確研究型課程的具體特征,說明基于開源社區(qū)構(gòu)建編譯原理研究型課程的原因和具體方案,結(jié)合基于問題的學(xué)習(xí)和U型七步法給出教學(xué)組織與實(shí)施的具體步驟,最后通過實(shí)踐說明方案的可行性。

關(guān)鍵詞:編譯原理;課程建設(shè);開源生態(tài);人才培養(yǎng)

一、引言

經(jīng)過長時(shí)間的積累和孕育,中國的芯片制造和系統(tǒng)軟件研發(fā)步入了一個(gè)新的歷史發(fā)展階段,各種國產(chǎn)芯片呈現(xiàn)百花齊放的良好局面,不僅出現(xiàn)了面向服務(wù)器、桌面系統(tǒng)和智能終端的各類芯片,而且部分企業(yè)也已經(jīng)制訂了“生產(chǎn)一批、研制一批、規(guī)劃一批”的長遠(yuǎn)發(fā)展路線圖。雖然大部分芯片的研制基于已有的指令架構(gòu),并且融合了開源資源,但是正在逐漸形成具有自身特色和差異性的產(chǎn)品體系。芯片和系統(tǒng)軟件也逐步向開源靠攏,產(chǎn)學(xué)研正在大力推動(dòng)開源社區(qū)的建設(shè)和發(fā)展。在此基礎(chǔ)上,源于國內(nèi)的開源協(xié)議和代碼托管平臺(tái)逐漸走進(jìn)普通開發(fā)者的視野。從整體上看,國產(chǎn)芯片和系統(tǒng)軟件正在融合形成一體化開發(fā)生態(tài)的良好趨勢(shì),部分頭部IT企業(yè)更加重視人才生態(tài)體系建設(shè)的重要性,不斷加大資源投入,加速構(gòu)建和形成產(chǎn)學(xué)研一體化的開源人才生態(tài)。

在此背景下,隨著智能技術(shù)的不斷發(fā)展和受國際形勢(shì)的影響,編譯器及其社區(qū)建設(shè)也正在逐漸發(fā)生改變。例如華為公司開源了部分方舟編譯器的源碼,并大力打造基于方舟和鴻蒙系統(tǒng)的開源社區(qū)。人工智能技術(shù)的發(fā)展,特別是深度神經(jīng)網(wǎng)絡(luò)及大量加速芯片的出現(xiàn),推動(dòng)了TVM等開源項(xiàng)目的創(chuàng)建和不斷發(fā)展。各大公司也在基于自己的芯片設(shè)計(jì)和實(shí)現(xiàn)支撐智能應(yīng)用快速構(gòu)建的工具鏈軟件,量子計(jì)算機(jī)的不斷突破推動(dòng)相關(guān)編程語言和仿真工具的快速發(fā)展。程序設(shè)計(jì)語言和編譯理論與技術(shù)也迎來了在新的歷史時(shí)期再次發(fā)展和應(yīng)用的新機(jī)遇。與傳統(tǒng)編譯技術(shù)相比,目前以及將來的需求與應(yīng)用貼合得更加緊密,并且面向的問題也更加抽象和復(fù)雜,這就對(duì)編譯人才的培養(yǎng)提出了新的需求。

首先,編譯人才的培養(yǎng)應(yīng)緊跟時(shí)代發(fā)展和技術(shù)進(jìn)步,注重應(yīng)用的引領(lǐng)發(fā)展作用。隨著“云大物智”的不斷發(fā)展和成熟,應(yīng)用不僅驅(qū)動(dòng)了計(jì)算機(jī)體系架構(gòu)的發(fā)展變化,也逐步在影響系統(tǒng)軟件的地位和作用。關(guān)注應(yīng)用的發(fā)展和未來趨勢(shì),能夠預(yù)先布局人才培養(yǎng),引領(lǐng)技術(shù)發(fā)展。例如量子計(jì)算正逐步走進(jìn)大眾視野,面向量子計(jì)算機(jī)的編程語言和工具鏈也逐步成為大家關(guān)注的熱點(diǎn)。

其次,編譯人才的培養(yǎng)應(yīng)面向產(chǎn)業(yè)需求,走產(chǎn)學(xué)研相結(jié)合的發(fā)展路線,讓“所學(xué)即所用”更早地貫徹到教學(xué)過程中。直接面向產(chǎn)業(yè)實(shí)際需求,讓學(xué)生能夠直觀地感受學(xué)習(xí)的有用性和實(shí)用性。同時(shí)要讓“科研引領(lǐng)教學(xué)”成為潮流,培養(yǎng)學(xué)生的超前創(chuàng)新意識(shí)以及引領(lǐng)技術(shù)發(fā)展和進(jìn)步的領(lǐng)導(dǎo)和責(zé)任意識(shí)。

最后,編譯人才的培養(yǎng)要面向現(xiàn)實(shí),直面課堂學(xué)習(xí)和工程實(shí)踐之間的差異性。教學(xué)的組織實(shí)施面臨眾多的問題,這些問題既有整體設(shè)計(jì)、全局規(guī)劃不到位的原因,也有資源受限、時(shí)間和空間受限的實(shí)際情況,如何調(diào)和二者之間的矛盾是解決問題的關(guān)鍵。

滿足產(chǎn)業(yè)需求是整體教學(xué)設(shè)計(jì)的基礎(chǔ)和出發(fā)點(diǎn),科教融合是核心理念,產(chǎn)學(xué)協(xié)同是教學(xué)組織實(shí)施的具體路線。本文基于開源生態(tài),探討編譯原理研究型課程的革新方案,考慮到學(xué)生學(xué)習(xí)特點(diǎn)和時(shí)間特點(diǎn),提出基于開源社區(qū)的編譯課程建設(shè)與人才培養(yǎng)方案,兼顧學(xué)校理論學(xué)習(xí)與工業(yè)強(qiáng)度訓(xùn)練,實(shí)現(xiàn)創(chuàng)新與實(shí)踐相結(jié)合,形成具有特色的編譯人才培養(yǎng)路徑。

本文首先對(duì)研究型課程的基本概念和內(nèi)涵進(jìn)行闡述,接下來討論基于開源社區(qū)進(jìn)行研究型課程建設(shè)以及編譯人才培養(yǎng)的優(yōu)勢(shì)與特點(diǎn),而后詳細(xì)闡述對(duì)應(yīng)的課程教學(xué)方案設(shè)計(jì)與實(shí)施方式,最后通過一學(xué)期的教學(xué)實(shí)踐對(duì)所提出的方法進(jìn)行驗(yàn)證。

二、研究型課程內(nèi)涵

行為主義、認(rèn)知主義、建構(gòu)主義和人本主義是教育心理學(xué)的四種代表流派,其中建構(gòu)主義認(rèn)為學(xué)習(xí)的過程是學(xué)習(xí)者主動(dòng)建構(gòu)知識(shí)的過程,學(xué)習(xí)是建構(gòu)內(nèi)在心理表征的過程,學(xué)習(xí)者并不是把知識(shí)從外界搬到記憶中,而是以原有的經(jīng)驗(yàn)為基礎(chǔ),通過與外界的相互作用來建構(gòu)新的理解。因此學(xué)習(xí)活動(dòng)不是由教師單純向?qū)W生傳遞知識(shí),也不是學(xué)生被動(dòng)地接受信息的過程,而是學(xué)生憑借原有的知識(shí)和經(jīng)驗(yàn),通過與外界的互動(dòng),主動(dòng)地生成信息內(nèi)在表示的過程。建構(gòu)主義的主要應(yīng)用是探究式學(xué)習(xí),亦即研究型教學(xué)。研究型教學(xué)首先是一種新型的教學(xué)模式。所謂教學(xué)模式,就是在一定教學(xué)思想指導(dǎo)下,為實(shí)現(xiàn)教學(xué)目標(biāo)而建立的比較穩(wěn)定的教學(xué)操作程序及理論化的教學(xué)結(jié)構(gòu)[1]。

目前關(guān)于研究型教學(xué)并沒有統(tǒng)一的認(rèn)識(shí)[2-4],其中文章[5]給出的具體定義為:“以課程內(nèi)容和學(xué)生的知識(shí)經(jīng)驗(yàn)為基礎(chǔ),在教學(xué)過程中選擇恰當(dāng)?shù)目茖W(xué)問題為載體,以學(xué)生為中心創(chuàng)設(shè)情境,引導(dǎo)學(xué)生充分參與、主動(dòng)探究,使學(xué)生能夠自主地發(fā)現(xiàn)問題、研究問題和解決問題,并從中體驗(yàn)資料收集、方案設(shè)計(jì)、方案研討、實(shí)驗(yàn)驗(yàn)證、得出結(jié)論完整的科學(xué)研究過程,進(jìn)而學(xué)習(xí)科學(xué)知識(shí)、掌握研究方法,并培養(yǎng)其創(chuàng)新能力和探究精神。”文章[6]認(rèn)為研究型教學(xué)模式則是以知識(shí)傳授為依托,以能力培養(yǎng)為主要內(nèi)容,把學(xué)習(xí)、研究、實(shí)踐有機(jī)結(jié)合以引導(dǎo)學(xué)生深度參與、主動(dòng)發(fā)揮創(chuàng)造性地運(yùn)用知識(shí)和能力,自主地發(fā)現(xiàn)問題、研究問題和解決問題,在研討中積累知識(shí)、培養(yǎng)能力和鍛煉思維,同時(shí)養(yǎng)成科學(xué)研究的精神和科學(xué)態(tài)度,以培養(yǎng)高層次、復(fù)合型、多樣化的高素質(zhì)創(chuàng)新型人才的一種教學(xué)模式。文獻(xiàn)[7]也給出了類似的定義。

沈其華等人對(duì)近年一項(xiàng)面向二十多所研究型大學(xué)的調(diào)研結(jié)果進(jìn)行分析,梳理了這些研究型大學(xué)課程改革的主要議題和重點(diǎn),總結(jié)了5個(gè)關(guān)鍵詞,它們分別是:科教融合、學(xué)術(shù)素養(yǎng)、學(xué)科交叉、國際聯(lián)結(jié)和社區(qū)參與。其中科教融合要求在微觀的課程設(shè)計(jì)和教學(xué)實(shí)施層面,建立以科研成果為主導(dǎo)的教學(xué)、以科研方法訓(xùn)練為導(dǎo)向的教學(xué)、基于科研項(xiàng)目的教學(xué)和由教學(xué)研究支撐的教學(xué)等幾個(gè)路徑,使得科研項(xiàng)目不再游離于專業(yè)核心課程之外;學(xué)術(shù)素養(yǎng)主要指的是學(xué)術(shù)寫作和表達(dá)交流的能力,學(xué)術(shù)素養(yǎng)的培養(yǎng)主要體現(xiàn)為在專業(yè)的主干、核心課程中打造相關(guān)的閱讀、寫作與表達(dá)訓(xùn)練模塊;學(xué)科交叉則主要是指部分學(xué)校對(duì)于本科生交叉學(xué)科學(xué)習(xí)的有效性進(jìn)行了自審,對(duì)如何保持課程深度與廣度之間的平衡展開了討論;國際聯(lián)結(jié)主要強(qiáng)調(diào)培養(yǎng)“全球公民”意識(shí),提高所有在校生的跨文化意識(shí)和技能;社區(qū)參與是指大學(xué)通過和地方以及國家組織、社團(tuán)和社區(qū)的合作,拓展活動(dòng)和影響邊界、進(jìn)行知識(shí)傳播與創(chuàng)造,許多大學(xué)都認(rèn)識(shí)到,從本科教學(xué)和學(xué)生發(fā)展的角度,社區(qū)參與能夠培養(yǎng)學(xué)生的社會(huì)責(zé)任心,提高其應(yīng)用知識(shí)、解決復(fù)雜實(shí)踐問題的能力,促進(jìn)全面發(fā)展,以及提供潛在的就業(yè)創(chuàng)業(yè)機(jī)會(huì)等[8]。這是對(duì)課程觀察的結(jié)果,從其中的論述不難發(fā)現(xiàn),科教融合與學(xué)術(shù)素養(yǎng)其實(shí)對(duì)應(yīng)著問題導(dǎo)向的教學(xué)模式,國際聯(lián)結(jié)和社區(qū)參與在問題的解決方式和參與深度上給出了具體的要求。

關(guān)于研究型教學(xué)的設(shè)計(jì)與組織實(shí)施,文章[5]同樣也提出課程教學(xué)應(yīng)以PBL(Problem Based Learning)策略為主線,以“專題研討”和“案例研討”為主要教學(xué)方法,并將有助于開展研究型教學(xué)的多種啟發(fā)式、互動(dòng)式教學(xué)方法有機(jī)結(jié)合。無論是“專題研討”,還是“案例研討”,都是以問題為先導(dǎo),由問題的解決而引發(fā)討論。因此,在授課過程中結(jié)合課程內(nèi)容精心創(chuàng)設(shè)情境引出問題,注重培養(yǎng)計(jì)算思維和創(chuàng)新能力,幫助學(xué)生學(xué)會(huì)如何學(xué)習(xí),符合研究型教學(xué)理念,有效地提高了課堂教學(xué)效果和課程教學(xué)質(zhì)量。關(guān)于問題的研討過程,文章[9]提出了U型七步探究法,老師充當(dāng)教練,學(xué)習(xí)中的問題可以由老師事先設(shè)定或者從討論組中征集,然后指定某組一位學(xué)生作為案主,依次進(jìn)行“定題(確定問題)、躬問(提出問題)、探究(討論問題)、定見(找出真正的問題)、解析(解決問題)、反思(自己是否存在這樣的問題)、心得(本次收獲)”這七步,使每個(gè)學(xué)生都能在U型七步探究中獲得受益。

綜上所述,我們發(fā)現(xiàn)研究型課程是以知識(shí)傳授為依托,以培養(yǎng)學(xué)生的創(chuàng)新能力和探究精神為主要目標(biāo),通過創(chuàng)設(shè)情境和提出問題,引導(dǎo)學(xué)生充分參與、主動(dòng)探究,學(xué)習(xí)科學(xué)知識(shí),掌握研究方法,培養(yǎng)能力和鍛煉思維,養(yǎng)成科學(xué)研究的精神和科學(xué)態(tài)度的一種教學(xué)模式。科教融合、學(xué)科交叉、國際聯(lián)結(jié)和社區(qū)參與是研究型課程應(yīng)具有的基本特征。

三、基于開源社區(qū)的編譯原理研究型課程設(shè)計(jì)

軟件的開源運(yùn)動(dòng)始于對(duì)專有代碼限制的回應(yīng),是一種分散的軟件開發(fā)模式,鼓勵(lì)開放式協(xié)作。隨著互聯(lián)網(wǎng)的興起,開源軟件得到快速的發(fā)展,許多大型企業(yè)和機(jī)構(gòu)紛紛支持開源運(yùn)動(dòng)的發(fā)展。開源社區(qū)是一個(gè)由來自世界各地的貢獻(xiàn)者組成的松散的、臨時(shí)的社區(qū),社區(qū)成員對(duì)滿足一個(gè)共同的需求有著共同的興趣,使用一個(gè)高效的協(xié)作開發(fā)環(huán)境完成從小型項(xiàng)目到大型項(xiàng)目的開發(fā),并且組織架構(gòu)和協(xié)作方式隨著時(shí)間的推移逐步形成。例如,github是全球知名的開源項(xiàng)目托管平臺(tái),目前有4000萬名活躍開發(fā)人員,2018年10月到2019年10月總計(jì)有4400萬個(gè)新項(xiàng)目創(chuàng)建,這其中包括170萬名在校學(xué)習(xí)的學(xué)生。目前有3.1萬名教師使用github向?qū)W生講授實(shí)際生產(chǎn)環(huán)境中的開發(fā)流程,并且這一數(shù)字在快速增長中。開源項(xiàng)目的參與者通常是全球各地的維護(hù)者、開發(fā)人員、研究人員、設(shè)計(jì)者、寫作人員以及其他類型的人員,平均情況下,github上每個(gè)項(xiàng)目有來自41個(gè)國家和地區(qū)的貢獻(xiàn)者參與。開源項(xiàng)目之間也存在著廣泛的關(guān)聯(lián),最流行的50個(gè)項(xiàng)目平均每個(gè)被360萬個(gè)項(xiàng)目使用[10]。

目前大部分高級(jí)程序設(shè)計(jì)語言的實(shí)現(xiàn)從一開始就是開源的,現(xiàn)在能夠從開源社區(qū)獲取到的高級(jí)程序設(shè)計(jì)語言實(shí)現(xiàn)包括C/C++,Java,Ruby,Haskell,Python,Go,Rust等,并且同一個(gè)高級(jí)程序設(shè)計(jì)語言可能存在多個(gè)開源項(xiàng)目的不同實(shí)現(xiàn),例如Ruby有C語言版本的、Java版本的以及基于.net版本的。Python對(duì)應(yīng)有Cpython,Jython,IronPython和PyPy等。基于開源社區(qū)進(jìn)行編譯原理研究型課程建設(shè)有眾多優(yōu)勢(shì),主要包括:

·開源項(xiàng)目大多是計(jì)算機(jī)科研成果的實(shí)現(xiàn)載體,也易于科研成果的植入和再現(xiàn),例如LLVM是一個(gè)研究項(xiàng)目,后來逐漸演化為工業(yè)級(jí)的編譯器;

·開源項(xiàng)目源碼和文檔易于獲取,具有活躍的開放社區(qū),方便學(xué)生獲取資源和與社區(qū)互動(dòng);

·開源社區(qū)代表著先進(jìn)技術(shù)發(fā)展的趨勢(shì),學(xué)習(xí)和探究開源項(xiàng)目易于向工業(yè)強(qiáng)度項(xiàng)目過渡;

·開源項(xiàng)目已有建設(shè)基礎(chǔ),方便問題的設(shè)置以及構(gòu)建增量型的探究問題,減少了對(duì)學(xué)時(shí)的要求;

·優(yōu)秀的學(xué)生學(xué)習(xí)成果能夠在開源社區(qū)共享,提高學(xué)生的參與感和成就感,推動(dòng)開源項(xiàng)目的持續(xù)發(fā)展,培養(yǎng)學(xué)生的開源意識(shí);

·開源社區(qū)是一個(gè)開放的國際型社區(qū),多方多員參與,能夠提升國際視野,培養(yǎng)開源意識(shí)。

因此,基于開源社區(qū)構(gòu)建的編譯原理研究型課程能夠滿足科教融合、國際聯(lián)結(jié)和社區(qū)參與等基本特征。以開源項(xiàng)目為參與和探究對(duì)象,在具體操作上,結(jié)合教學(xué)內(nèi)容又分為4個(gè)不同的層次設(shè)置研究問題,包括分析現(xiàn)有開源項(xiàng)目的工作原理和實(shí)現(xiàn)技術(shù)路徑,發(fā)現(xiàn)現(xiàn)有開源系統(tǒng)中存在的問題并提出改進(jìn)建議,基于現(xiàn)有開源系統(tǒng)的問題進(jìn)行增量設(shè)計(jì)與實(shí)現(xiàn),創(chuàng)建有影響力的可持續(xù)發(fā)展的開源項(xiàng)目。目前玩具型教學(xué)實(shí)踐一直受到工業(yè)界的質(zhì)疑,但是在實(shí)際教學(xué)過程中實(shí)施工業(yè)強(qiáng)度的教學(xué)實(shí)踐又存在眾多的困難。首先是教學(xué)學(xué)時(shí)非常有限,沒有足夠的時(shí)間從頭開始構(gòu)建工業(yè)強(qiáng)度的實(shí)際項(xiàng)目;其次,工業(yè)強(qiáng)度的項(xiàng)目難度比較高,不適合于所有的學(xué)生學(xué)習(xí)和實(shí)踐。因此通過不同層次的分解和組織能夠覆蓋不同學(xué)生群體,以學(xué)生為中心實(shí)現(xiàn)個(gè)性化培養(yǎng)。

結(jié)合研究型課程的定義以及基于問題學(xué)習(xí)的方法,依托開源社區(qū)進(jìn)行研究型課程建設(shè)的主要思路如圖1所示。首先,場(chǎng)景創(chuàng)設(shè)與問題設(shè)計(jì)要從課程教學(xué)內(nèi)容出發(fā),結(jié)合身邊的熱點(diǎn)事件和現(xiàn)象,充分考慮和利用開源資源進(jìn)行構(gòu)建。一方面,結(jié)合身邊的熱點(diǎn)事件能夠激發(fā)學(xué)生的學(xué)習(xí)興趣,提高解決實(shí)際問題的能力;另一方面,以開源社區(qū)為依托,能夠使得問題的研究與實(shí)踐更接地氣,易于在有限的學(xué)時(shí)內(nèi)完成教學(xué)組織和實(shí)施,也能使學(xué)生更早接觸開源社區(qū),培養(yǎng)開源精神。其次,在具體教與學(xué)的過程中,課程教學(xué)和問題研究都是以問題為中心,課程教學(xué)重在介紹問題的起源、發(fā)展與現(xiàn)狀,從知識(shí)體系和問題解決思路上進(jìn)行引導(dǎo);而問題研究則以某個(gè)開源項(xiàng)目為依托,重在學(xué)習(xí)和閱讀相關(guān)文檔和源碼,自我學(xué)習(xí)、思考與動(dòng)手實(shí)踐,與開源社區(qū)的交互、討論與合作等方面。最后,問題的研究成果作為課程評(píng)價(jià)的一部分計(jì)入課程成績,而這也能反過來有效推動(dòng)研究成果的產(chǎn)出。更為重要的是,學(xué)生對(duì)特定問題的研究與實(shí)踐成果可以反饋到開源社區(qū),例如提交最新發(fā)現(xiàn)的bug,為開源項(xiàng)目編制文檔,在開源項(xiàng)目的基礎(chǔ)上貢獻(xiàn)新的代碼,甚至創(chuàng)建新的開源項(xiàng)目并持續(xù)建設(shè)。這些提交的內(nèi)容一旦被開源社區(qū)所接受,將極大地激勵(lì)學(xué)生對(duì)相關(guān)問題的進(jìn)一步學(xué)習(xí)和探討。

針對(duì)編譯原理課程的具體教學(xué)內(nèi)容,大量的開源項(xiàng)目貫穿整個(gè)編譯教學(xué)過程,這里既有重量級(jí)的項(xiàng)目(例如GCC和LLVM),也有輕量級(jí)的(例如lcc和Vlint等)。以Soot為例,Soot是一個(gè)Java代碼分析框架,現(xiàn)在隨著Soot的不斷優(yōu)化改進(jìn),Soot已經(jīng)成為一個(gè)廣泛應(yīng)用于Java 程序分析和優(yōu)化的通用框架。Soot提供4種類型的代碼中間表示形式:Baf,Jimple,Shimple和Grimp?;赟oot框架,能夠方便地完成全局方法調(diào)用圖的構(gòu)建,結(jié)合其IFDS數(shù)據(jù)流分析框架,可以完成到達(dá)定值等數(shù)據(jù)流問題的實(shí)現(xiàn),進(jìn)一步拓展可以在全局方法調(diào)用圖和數(shù)據(jù)流分析的基礎(chǔ)上基于該框架構(gòu)建代碼缺陷分析工具。由于空間有限,圖2僅僅羅列了很少部分開源項(xiàng)目。如前所述,每個(gè)語言幾乎都能找到開源實(shí)現(xiàn),并且存在非常多的編譯分析框架和工具,其他開源項(xiàng)目也可以成為編譯分析和優(yōu)化的對(duì)象,因此實(shí)際可用的開源項(xiàng)目遠(yuǎn)遠(yuǎn)超出圖中所列的部分。

四、編譯原理研究型課程實(shí)施方案

針對(duì)編譯原理教學(xué)目標(biāo)和教學(xué)內(nèi)容,按照U型七步探究法給出教學(xué)組織與實(shí)施方案。在研究型課程教學(xué)的過程中,教師和學(xué)生各有分工,且互相合作,課上課下有銜接,線上線下相結(jié)合,具體方案如圖3所示。

首先,在開課前教師圍繞教學(xué)內(nèi)容創(chuàng)設(shè)情境、提出問題、調(diào)研開源項(xiàng)目并完成教案設(shè)計(jì)。在這里情境創(chuàng)設(shè)應(yīng)選擇學(xué)生身邊發(fā)生的,易于代入的事件和人物,并在此基礎(chǔ)上提出初步問題。還需要根據(jù)教學(xué)內(nèi)容和所提出的問題選擇合適的開源項(xiàng)目供學(xué)生進(jìn)行學(xué)習(xí)、分析和實(shí)踐。在面向大規(guī)模學(xué)生群體授課時(shí),開源項(xiàng)目的選擇應(yīng)具有層次性,能夠滿足不同學(xué)生的需求。也可以根據(jù)需要構(gòu)建新的開源項(xiàng)目,由教師進(jìn)行項(xiàng)目管理,多名學(xué)生聯(lián)合參與完成。

其次,教師開課后在適當(dāng)?shù)臅r(shí)間拋出情境、問題和資料,留出一定的時(shí)間給學(xué)生做調(diào)研與實(shí)踐。最重要的是在課堂上進(jìn)行組織討論,經(jīng)過課堂上的討論和思想的碰撞,要求學(xué)生在課后進(jìn)行深入調(diào)研、總結(jié)和驗(yàn)證。

最后,教師對(duì)這段教學(xué)活動(dòng)進(jìn)行評(píng)價(jià)和總結(jié)。除了課堂上的展示之外,學(xué)生還應(yīng)該積極向開源社區(qū)反饋經(jīng)與教師確認(rèn)后有價(jià)值的成果,積極參與開源項(xiàng)目建設(shè),以獲得開源社區(qū)的認(rèn)可。

與U型七步法中的定題、提問、探究、定見、解析、反思、心得相對(duì)應(yīng),其中定題和提問由教師在開課前完成,探究和定見是對(duì)問題的進(jìn)一步深入和分析,由教師和學(xué)生互相配合、由淺入深、從課上到課下完成,而問題的解析是通過同學(xué)課堂討論和教師引導(dǎo)、結(jié)合開源項(xiàng)目實(shí)際調(diào)研、分析和實(shí)踐完成。最后教師和學(xué)生都要進(jìn)行反思,學(xué)生對(duì)問題進(jìn)行總結(jié)、鞏固深化,教師對(duì)教學(xué)效果進(jìn)行評(píng)價(jià)和總結(jié),以便于完成課程的持續(xù)改進(jìn)。

在這個(gè)過程中,開源項(xiàng)目是老師和學(xué)生工作的對(duì)象。學(xué)生不再是被動(dòng)的知識(shí)接受者,而是主動(dòng)的思考者、探究者和建構(gòu)者,他們通過研究開源項(xiàng)目主動(dòng)發(fā)現(xiàn)和重構(gòu)知識(shí);教師成為教學(xué)活動(dòng)的設(shè)計(jì)者、組織者、參與者、指導(dǎo)者和幫助者,主要做法是以不同粒度的“問題”為主線來進(jìn)行組織和設(shè)計(jì),使學(xué)生在問題調(diào)研的過程中更主動(dòng)、更廣泛、更深入地激活自己的原有經(jīng)驗(yàn),幫助理解當(dāng)前的問題情境,通過分析推理得到新結(jié)論,從而構(gòu)建自己的新知識(shí),豐富自己的實(shí)踐經(jīng)驗(yàn)。

采用“問題導(dǎo)向式教學(xué)”策略進(jìn)行編譯原理課程教學(xué)設(shè)計(jì),其核心思想是強(qiáng)調(diào)把學(xué)習(xí)設(shè)置在復(fù)雜的、有意義的問題情境中,通過讓學(xué)生合作解決真實(shí)世界中的現(xiàn)實(shí)問題,來探究隱含于問題背后的科學(xué)知識(shí)。以教學(xué)內(nèi)容為基礎(chǔ),設(shè)計(jì)明確適當(dāng)?shù)膶W(xué)習(xí)場(chǎng)景來開展“問題導(dǎo)向式教學(xué)”,提出切合實(shí)際的“現(xiàn)實(shí)問題”,這二者是能否成功實(shí)施研究型教學(xué)的關(guān)鍵。場(chǎng)景應(yīng)與當(dāng)前的熱點(diǎn)相關(guān),與時(shí)代發(fā)展相符,場(chǎng)景決定了問題的代入是否成功,現(xiàn)實(shí)問題要有一定的挑戰(zhàn)性,也要符合學(xué)生當(dāng)前的學(xué)習(xí)時(shí)限和未來工作與研究需要。如前所述,解決實(shí)際問題,符合近工業(yè)強(qiáng)度,實(shí)現(xiàn)國際聯(lián)結(jié),開源項(xiàng)目是非常好的切入點(diǎn)。下面以運(yùn)行時(shí)系統(tǒng)和程序設(shè)計(jì)語言為例簡單介紹筆者在實(shí)踐中提出的兩個(gè)問題。

(1)華為為什么要構(gòu)建自己的編譯器?2019年8月,華為部分開源了方舟編譯器的源碼,在此之前已經(jīng)有較多的新聞報(bào)道,甚至一度成為大家討論的熱點(diǎn)問題。在此背景下深入探討方舟編譯器出現(xiàn)的背景,有利于學(xué)生對(duì)編譯器以及計(jì)算機(jī)系統(tǒng)工作過程的深入理解。這一問題的解析可以貫穿整個(gè)教學(xué)過程,覆蓋編譯引論、前端實(shí)現(xiàn)、中間代碼呈現(xiàn)、運(yùn)行時(shí)系統(tǒng)構(gòu)建、目標(biāo)代碼生成等各個(gè)教學(xué)環(huán)節(jié)。在解析方舟編譯器部分開源代碼的基礎(chǔ)上,還可以為其實(shí)現(xiàn)新的前端,構(gòu)建一個(gè)輕量級(jí)的虛擬機(jī)對(duì)中間代碼進(jìn)行解釋執(zhí)行,甚至可以在后端沒有發(fā)布出來之前,將其MAPLE代碼翻譯到ARM或者x86等平臺(tái)上執(zhí)行。為了引導(dǎo)學(xué)生完成工作,教師需要講授相關(guān)的原理,提供相關(guān)的源碼和文檔資料,并給出建議的分析重點(diǎn)、分析方法和工具、實(shí)現(xiàn)技術(shù)路徑,需要解決的關(guān)鍵問題等。

(2)什么樣的編程語言適合青少年學(xué)習(xí)?隨著大數(shù)據(jù)技術(shù)和人工智能技術(shù)的深入發(fā)展和普及,目前關(guān)于青少年計(jì)算思維培養(yǎng)和編程教育的廣告隨處可見,各個(gè)教育機(jī)構(gòu)和研究機(jī)構(gòu)也紛紛推出了自己的培訓(xùn)方案。很多家長在為小孩學(xué)習(xí)C++還是學(xué)習(xí)Python而苦惱,除此之外,還有Scratch之類的圖形化編程語言?;诖藞?chǎng)景構(gòu)建的初步問題就是什么樣的編程語言適合青少年學(xué)習(xí)。在這個(gè)問題的調(diào)研中,需要了解目前流行的編程語言有哪些,有何不同,分別適合于哪些應(yīng)用領(lǐng)域和人群?進(jìn)一步的延伸討論問題包括什么是一個(gè)好的編程語言,為什么會(huì)有這么多編程語言?在實(shí)踐階段可以對(duì)目前主流程序設(shè)計(jì)語言進(jìn)行調(diào)研、對(duì)比分析,并對(duì)現(xiàn)有的語言進(jìn)行改造和擴(kuò)展,當(dāng)然也可以引導(dǎo)學(xué)生設(shè)計(jì)并實(shí)現(xiàn)適合于青少年學(xué)習(xí)的新的編程語言。在這個(gè)過程中涉及的開源項(xiàng)目包括Scratch,Python以及各種IDE和OJ系統(tǒng)。

五、教學(xué)實(shí)踐及其效果

筆者基于上述思路進(jìn)行了實(shí)踐,首先搭建了一個(gè)半開源的編譯器實(shí)現(xiàn)框架BIT-MiniCC,要求大部分學(xué)生在實(shí)踐中基于該開源項(xiàng)目進(jìn)行增量開發(fā)。此外,在小部分學(xué)生中進(jìn)行了深入實(shí)踐,針對(duì)相應(yīng)的場(chǎng)景和問題,成立了7個(gè)研究小組,分別從程序設(shè)計(jì)語言比較與分析、新語言設(shè)計(jì)與實(shí)現(xiàn)、已有語言實(shí)現(xiàn)分析、數(shù)據(jù)庫軟件中用到的編譯原理技術(shù)等方面進(jìn)行深入研究。在課程結(jié)束的時(shí)候,7個(gè)研究小組中,有1個(gè)小組向開源社區(qū)提交了問題,2個(gè)研究小組對(duì)已有的開源項(xiàng)目進(jìn)行深入分析,1個(gè)小組對(duì)已有的開源項(xiàng)目進(jìn)行了升級(jí)改造,3個(gè)研究小組建立自己的開源項(xiàng)目。

如圖4所示,通過對(duì)課程教學(xué)過程中完成基礎(chǔ)實(shí)驗(yàn)部分使用的開源項(xiàng)目BIT-MiniCC進(jìn)行統(tǒng)計(jì)分析,發(fā)現(xiàn)接近85%的同學(xué)選擇使用了該項(xiàng)目作為增量開發(fā)的基礎(chǔ),也有少部分同學(xué)由于對(duì)BIT-MiniCC開發(fā)使用的Java語言不熟悉,選擇使用了自己更為熟悉的C/C++或者Python進(jìn)行開發(fā),還有部分同學(xué)前期自己開發(fā),但是后期感覺時(shí)間壓力比較大,所以轉(zhuǎn)為使用開源框架提高開發(fā)效率。

圖5展示了在課程學(xué)習(xí)過程中大家對(duì)開源項(xiàng)目的使用情況,普遍使用比較多的是詞法和語法自動(dòng)生成工具,以及學(xué)習(xí)和分析已有編譯器LLVM,GCC,Python的內(nèi)部具體實(shí)現(xiàn)方式,還有JSON解析、MIPS和RISC-V模擬器等相關(guān)開源項(xiàng)目。目前大部分獲取閱讀、修改和提交主要集中在BIT-MiniCC上,也有部分同學(xué)將自己的完整實(shí)現(xiàn)進(jìn)行了開源。

最后,基于開源社區(qū)的顯著變化就是,由于大家了解了開源項(xiàng)目實(shí)現(xiàn)過程中使用的中間代碼的多樣性,部分同學(xué)還對(duì)部分開源項(xiàng)目進(jìn)行了深入的分析,因此在編譯課程實(shí)驗(yàn)中就有了更多的選擇。其中最大的變化是更多的同學(xué)選擇了華為方舟編譯器的MAPLE IR進(jìn)行課程實(shí)驗(yàn)。

六、結(jié)語

國產(chǎn)自主化計(jì)算機(jī)系統(tǒng)的快速發(fā)展離不開開源社區(qū)的建設(shè)和運(yùn)營,因此基于開源社區(qū)進(jìn)行研究型課程的建設(shè)具有良好的根基,并且符合研究型課程的科教融合、國際聯(lián)結(jié)和社區(qū)參與等基本特征。本文雖然對(duì)研究型課程的定義和特征作了進(jìn)一步的推演,但是其內(nèi)涵和外延還有待進(jìn)一步深入研究和明確。基于開源社區(qū)和U型七步法構(gòu)建的研究型課程教學(xué)方案是在一流課程建設(shè)背景下的一次重要嘗試,所給出的方案在局部進(jìn)行了教學(xué)實(shí)踐并取得了顯著的效果,對(duì)其他研究型課程建設(shè)具有較好的參考價(jià)值。

參考文獻(xiàn):

[1]陳琦,劉儒德. 當(dāng)代教育心理學(xué)[M]. 北京:北京師范大學(xué)出版社,2007.

[2]卞素萍. 美國研究型教學(xué)的啟示[J]. 江蘇高教,2019(11):65-68.

[3]李彩飛. 馬克思主義基本原理概論課研究型教學(xué)的模式創(chuàng)新與功能價(jià)值[J]. 教學(xué)研究,2017,40(2):73-77.

[4]葉國榮,陳達(dá)強(qiáng),吳碧艷. 高校本科生教育中研究型教學(xué)模式探討[J]. 中國高教研究,2009(3):90-91.

[5]李春,鄒逢興,周宗潭,等.《計(jì)算機(jī)硬件技術(shù)基礎(chǔ)》精品課程研究型教學(xué)探索與實(shí)踐[J]. 高等教育研究學(xué)報(bào),2013,36(1):26-29.

[6]李曉東,李玉川,李曉萌. “功能高分子材料”研究型課程初探[C]. Proceedings of 2018.

[7]席酉民. 研究型教學(xué):并非在傳統(tǒng)教學(xué)中加點(diǎn)研究佐料[J]. 中國高等教育,2016(21):42-44.

[8]里瑟琦智庫. 歐美研究型大學(xué)本科課程改革的五個(gè)關(guān)鍵詞[EB/OL]. http://www.idmresearch.com/news/html/?3558.html, 2020.

[9]殷開梁. 研究型教學(xué)的新方法——U型7步探究法[J]. 化學(xué)教育,2019,40(4):40-42.

[10] Github. The State of the Octoverse[EB/OL]. https://octoverse.github.com/, 2020.

[責(zé)任編輯:余大品]

猜你喜歡
課程建設(shè)人才培養(yǎng)
高職機(jī)械類專業(yè)“CAD圖形設(shè)計(jì)”課程建設(shè)
《海圖學(xué)》課程的建設(shè)與實(shí)踐
“誤差理論與數(shù)據(jù)處理”課程建設(shè)的實(shí)踐與思考
速錄專業(yè) “三個(gè)一” 人才培養(yǎng)模式的研究
基于卓越計(jì)劃的金屬結(jié)構(gòu)材料課程實(shí)踐化改革與建設(shè)
資源、生態(tài)與環(huán)境學(xué)科群體系下普通地質(zhì)學(xué)課程建設(shè)思考
學(xué)研產(chǎn)模式下的醫(yī)藥英語人才培養(yǎng)研究
中高職一體化課程體系建設(shè)的探索與實(shí)踐
基于人才培養(yǎng)的中職生日常管理研究
基于人才培養(yǎng)的高校舞蹈教育研究
运城市| 渭南市| 靖远县| 福鼎市| 柳江县| 宁陕县| 康马县| 万盛区| 颍上县| 青冈县| 永福县| 宁河县| 贺州市| 盐山县| 沐川县| 澜沧| 南昌市| 天门市| 武隆县| 措美县| 新疆| 普兰店市| 潼南县| 揭西县| 遵义县| 台山市| 商丘市| 永清县| 宾川县| 舞阳县| 玉环县| 井陉县| 弋阳县| 旬邑县| 高青县| 横山县| 上饶县| 楚雄市| 绥德县| 岐山县| 金昌市|