孫守卿 鞠傳香 劉曉紅
摘要:計(jì)算思維是當(dāng)前教育界廣為關(guān)注的一個(gè)重要概念。該文結(jié)合編譯原理實(shí)驗(yàn)課程中的實(shí)驗(yàn)內(nèi)容,以培養(yǎng)學(xué)生的計(jì)算思維為核心,從實(shí)驗(yàn)內(nèi)容、實(shí)驗(yàn)過(guò)程及考核方式三方面,對(duì)編譯原理的實(shí)驗(yàn)課程實(shí)施改革,從而提高學(xué)生運(yùn)用形式化方法抽象問(wèn)題、描述問(wèn)題、解決復(fù)雜問(wèn)題的能力。
關(guān)鍵詞:計(jì)算思維;計(jì)算參與;形式化描述;關(guān)注點(diǎn)分離;
中圖分類(lèi)號(hào):G642? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ? ? 文章編號(hào):1009-3044(2018)34-0090-01
1計(jì)算思維概述
計(jì)算思維是通過(guò)抽象、約減、遞歸、轉(zhuǎn)換和仿真等方法,把一個(gè)復(fù)雜問(wèn)題轉(zhuǎn)換為可解問(wèn)題的思維方法。計(jì)算思維是使用計(jì)算原理解決問(wèn)題的一系列心智技能的集合,是邏輯思維、數(shù)學(xué)思維、創(chuàng)新思維、工程思維等多種思維的組和應(yīng)用。
周以真教授2006年第一次明確描述了計(jì)算思維,認(rèn)為計(jì)算思維是一種使用計(jì)算機(jī)科學(xué) 的基礎(chǔ)概念解決問(wèn)題、設(shè)計(jì)系統(tǒng)和理解人類(lèi)行為等涵蓋計(jì)算機(jī)科學(xué)的一系列思維活動(dòng)。[2]
2011年美國(guó)國(guó)際教育技術(shù)協(xié)會(huì)和計(jì)算機(jī)科學(xué)教師協(xié)會(huì)( ISTE&CSTA) 聯(lián)合推出的計(jì)算思維操作性定義中規(guī)定計(jì)算思維包含:提出問(wèn)題、組織和分析問(wèn)題、表征數(shù)據(jù)、自動(dòng)化解決方案、分析和實(shí)施解決方案、遷移六個(gè)要素。九項(xiàng)核心概念和能力:數(shù)據(jù)收集、數(shù)據(jù)分析、數(shù)據(jù)表征、問(wèn)題分解、抽象、算法和程序、自動(dòng)化、模擬、并行化。[1]
2 編譯原理實(shí)驗(yàn)教學(xué)目標(biāo)
編譯原理課程是大學(xué)計(jì)算機(jī)相關(guān)專(zhuān)業(yè)的重要課程,編譯原理實(shí)驗(yàn)教學(xué)的目標(biāo)是希望學(xué)生掌握程序設(shè)計(jì)語(yǔ)言編譯程序構(gòu)造的一般原理、基本設(shè)計(jì)方法和實(shí)現(xiàn)技術(shù)。目前編譯原理實(shí)驗(yàn)課的內(nèi)容主要有詞法分析設(shè)計(jì),語(yǔ)法分析設(shè)計(jì)、中間代碼生成及優(yōu)化這幾部分。實(shí)驗(yàn)內(nèi)容主要為驗(yàn)證性實(shí)驗(yàn),學(xué)生只是單純編程實(shí)現(xiàn)特定語(yǔ)言如PL0語(yǔ)言的詞法分析和語(yǔ)法分析等算法的驗(yàn)證。
以培養(yǎng)計(jì)算思維為核心的編譯實(shí)驗(yàn)課程,主要訓(xùn)練學(xué)生從計(jì)算原理、思想和方法的角度完成對(duì)自然語(yǔ)言、程序設(shè)計(jì)語(yǔ)言的詞法、語(yǔ)法完成形式化描述,訓(xùn)練學(xué)生的抽象能力;通過(guò)對(duì)正規(guī)式的構(gòu)造、算法的實(shí)現(xiàn)、遞歸下降子程序的驗(yàn)證實(shí)驗(yàn)幫助學(xué)生理解遞歸的思想,訓(xùn)練學(xué)生的算法思維和程序思維。通過(guò)對(duì)小型編譯器的構(gòu)造,培養(yǎng)學(xué)生的系統(tǒng)思維、工程思維及合作思維同時(shí)提高學(xué)生解決復(fù)雜工程問(wèn)題的能力。
2.1 計(jì)算思維培養(yǎng)在編譯原理實(shí)驗(yàn)教學(xué)中的實(shí)踐
(1)以編譯程序的構(gòu)造為整體目標(biāo),采用“自上而下”逐層細(xì)化的方式,設(shè)計(jì)實(shí)驗(yàn)內(nèi)容。編譯原理實(shí)驗(yàn)內(nèi)容及計(jì)算思維培養(yǎng)邏輯框架如下圖1所示:
(2)按照由淺入深、循序漸進(jìn)的原則組織實(shí)驗(yàn)。從學(xué)生的認(rèn)知角度出發(fā),遵循螺旋式地?cái)U(kuò)展加深實(shí)驗(yàn)內(nèi)容,直至復(fù)雜系統(tǒng)。實(shí)驗(yàn)類(lèi)別既包含驗(yàn)證型實(shí)驗(yàn)又包含設(shè)計(jì)型綜合實(shí)驗(yàn)和研究型實(shí)驗(yàn),做到既能使學(xué)生在實(shí)驗(yàn)的過(guò)程中鞏固了理論知識(shí)又能提高抽象問(wèn)題的能力、算法分析的能力、程序設(shè)計(jì)的能力。真正做到創(chuàng)新思維的培養(yǎng)和實(shí)驗(yàn)內(nèi)容有機(jī)結(jié)合、融會(huì)貫通。
2.2 編譯原理實(shí)驗(yàn)教學(xué)組織過(guò)程
(1)實(shí)驗(yàn)教學(xué)方法以任務(wù)驅(qū)動(dòng)為主,有效利用網(wǎng)絡(luò)教學(xué)平臺(tái)。
首先,借助網(wǎng)絡(luò)教學(xué)平臺(tái),教師將實(shí)驗(yàn)的所有資料以及實(shí)驗(yàn)任務(wù)提前發(fā)布到網(wǎng)絡(luò)教學(xué)平臺(tái)。學(xué)生可以從網(wǎng)絡(luò)教學(xué)平臺(tái)上下載學(xué)習(xí)和實(shí)驗(yàn)課程相關(guān)的資料,完成課前的自主學(xué)習(xí)。這樣在實(shí)驗(yàn)課程開(kāi)始之前,學(xué)生對(duì)實(shí)驗(yàn)項(xiàng)目?jī)?nèi)容以及所使用的軟件工具已經(jīng)有了基本的了解。對(duì)實(shí)驗(yàn)所需的環(huán)境,需抽象的語(yǔ)言集合,如TEST語(yǔ)言的詞法規(guī)則和語(yǔ)法規(guī)則有了初步的認(rèn)識(shí)。
將實(shí)驗(yàn)教學(xué)從以基本知識(shí)學(xué)習(xí)為主轉(zhuǎn)變?yōu)橐詥?wèn)題求解和創(chuàng)新思維為主,使學(xué)生能夠主動(dòng)探究實(shí)驗(yàn)任務(wù)的解決方案。學(xué)生在自主完成實(shí)驗(yàn)任務(wù)的過(guò)程中,可以將問(wèn)題發(fā)布到網(wǎng)絡(luò)教學(xué)平臺(tái)的論壇中,進(jìn)行討論。也可以給教師留言,教師可以及時(shí)為學(xué)生解決問(wèn)題提供線索,增加了學(xué)生之間、師生之間的討論和交流。通過(guò)討論和交流,學(xué)生可以對(duì)實(shí)驗(yàn)問(wèn)題的解決方案有更多的認(rèn)識(shí),可以在實(shí)驗(yàn)的過(guò)程中不斷更新、遞進(jìn)完善自己的解決方案,與此同時(shí),學(xué)生的創(chuàng)造力、算法思維以及批判性思維都得到了培養(yǎng)和訓(xùn)練。
(2)采用SDUTOJ在線測(cè)試平臺(tái)為支撐。
將實(shí)驗(yàn)題目發(fā)布到SDUTOJ系統(tǒng)中,借助該平臺(tái),可以打破實(shí)驗(yàn)教學(xué)的時(shí)空限制,學(xué)生可以隨時(shí)隨地進(jìn)行實(shí)驗(yàn)代碼的提交、調(diào)試、線上自動(dòng)評(píng)測(cè)等。教師可以隨時(shí)掌握學(xué)生實(shí)驗(yàn)提交的具體情況,并根據(jù)提交數(shù)據(jù),對(duì)實(shí)驗(yàn)進(jìn)行重點(diǎn)講解。同時(shí),利用SDUTOJ系統(tǒng)進(jìn)行隨機(jī)代碼查重,有效防止學(xué)生之間的代碼復(fù)制現(xiàn)象。
(3)線下答辯。對(duì)于課程最后設(shè)計(jì)一個(gè)小型的編譯器的綜合性實(shí)驗(yàn),采用線下小組答辯的方式。主要檢查學(xué)生對(duì)編譯系統(tǒng)各部分具體實(shí)現(xiàn)的過(guò)程、算法及據(jù)結(jié)構(gòu)的應(yīng)用情況、算法的創(chuàng)新性等。
3實(shí)施效果
通過(guò)實(shí)施該教學(xué)方法,學(xué)生在完成編譯原理實(shí)驗(yàn)任務(wù)的同時(shí),既加深了學(xué)生對(duì)編譯原理概念知識(shí)的理解,又鍛煉了編程能力,同時(shí),培養(yǎng)訓(xùn)練了學(xué)生對(duì)復(fù)雜系統(tǒng)進(jìn)行抽象、約減的思維能力、解決復(fù)雜工程問(wèn)題的能力。
參考文獻(xiàn):
[1]劉敏娜,張倩葦.國(guó)外計(jì)算思維教育研究進(jìn)展[J].開(kāi)放教育研究, 2018,24(1):41-53.
[2]Wing, J.M.Computational thinking[J]. Communications of the ACM,2006,49(3):33-35.
[3]Wing, J.M. Computational thinking and thinking about computing[J]. Philosophical Transactions of the Royal Society, 2008,366(1881):3717-3725.
【通聯(lián)編輯:王力】