肖斌 汪敏 王兵
摘? 要:新經(jīng)濟(jì)形態(tài)對(duì)計(jì)算機(jī)人才培養(yǎng)提出了新的要求,結(jié)合C語(yǔ)言程序在人才培養(yǎng)體系中的重要性,以及當(dāng)前的教學(xué)現(xiàn)狀,將計(jì)算思維融入教學(xué)中培養(yǎng)學(xué)生的分析問(wèn)題的能力和抽象建模的能力,使得學(xué)生的程序設(shè)計(jì)思維清晰化、規(guī)范化。同時(shí)結(jié)合MOOC平臺(tái)實(shí)施線上線下的混合式教學(xué),保證教師實(shí)施有效過(guò)程監(jiān)督。
關(guān)鍵詞:計(jì)算思維;C程序設(shè)計(jì);MOOC;程序設(shè)計(jì)實(shí)踐
中圖分類號(hào):TP311.5? ? ?文獻(xiàn)標(biāo)識(shí)碼:A
Abstract:The new economic forms put forward new requirements for the cultivation of computer talents.Combining the importance of C language programs in the personnel training system with the current teaching status,this paper integrates computational thinking into teaching to cultivate students' analytical problems and abstract modeling,making students' programming thinking clear and standardized.At the same time,it is combined with the MOOC platform to achieve online and offline hybrid teaching,to ensure that teachers implement effective process supervision.
Keywords:computational thinking;C programming;MOOC;programming practice
1? ?引言(Introduction)
伴隨著大數(shù)據(jù)、物聯(lián)網(wǎng)、人工智能、云計(jì)算的飛速發(fā)展,實(shí)現(xiàn)了新技術(shù)與新產(chǎn)業(yè)的深度融合,產(chǎn)生了第四次工業(yè)革命下的工程新業(yè)態(tài),帶來(lái)了工程科技人才培養(yǎng)的新要求。而程序設(shè)計(jì)是實(shí)現(xiàn)信息技術(shù)與新工科的關(guān)鍵,對(duì)未來(lái)技術(shù)和產(chǎn)業(yè)起到引領(lǐng)作用[1]。因此程序設(shè)計(jì)的工程實(shí)踐能力、分析設(shè)計(jì)能力、創(chuàng)新能力、終身學(xué)習(xí)能力成為新工科軟件工程人才的核心能力[2]。
2? C程序設(shè)計(jì)的地位和現(xiàn)狀(The status and current situation of C programming)
2.1? ?C程序設(shè)計(jì)語(yǔ)言的地位
C語(yǔ)言程序設(shè)計(jì)主要包含變量、語(yǔ)句、控制流程、數(shù)組、指針、結(jié)構(gòu)體、函數(shù)等知識(shí)點(diǎn)內(nèi)容的一門面向過(guò)程的程序設(shè)計(jì)課程。該語(yǔ)言很好地支持結(jié)構(gòu)化程序設(shè)計(jì),也是面向?qū)ο笳Z(yǔ)言、數(shù)據(jù)結(jié)構(gòu)的基礎(chǔ)。
通過(guò)C程序設(shè)計(jì)語(yǔ)言的學(xué)習(xí),學(xué)生掌握變量、控制流程語(yǔ)句、函數(shù)、數(shù)組、指針、結(jié)構(gòu)體的相關(guān)基礎(chǔ)知識(shí),掌握程序模塊化編程的編程思想,具備利用計(jì)算機(jī)的思維方式分析問(wèn)題進(jìn)行數(shù)據(jù)表達(dá)和算法描述的能力、利用基本算法解決問(wèn)題的能力,具備工程設(shè)計(jì)和工程的調(diào)試分析能力,達(dá)到利用計(jì)算機(jī)求解復(fù)雜科學(xué)問(wèn)題的計(jì)算思維能力。能力培養(yǎng)體系層次關(guān)系如圖1所示。
2.2? ?C程序設(shè)計(jì)語(yǔ)言的教學(xué)現(xiàn)狀
在新工科背景下,針對(duì)C語(yǔ)言程序設(shè)計(jì),需要培養(yǎng)基礎(chǔ)知識(shí)扎實(shí),具有分析設(shè)計(jì)能力,具有工程設(shè)計(jì)能力的人才的三層綜合能力,但課程實(shí)際教學(xué)中往往停留在第一層,存在大量問(wèn)題。
(1)C語(yǔ)言教學(xué)中,學(xué)生剛從高中升入大學(xué),已有的學(xué)習(xí)模式與計(jì)算機(jī)思維的學(xué)習(xí)模式具有不一致性,記憶性的知識(shí)能夠?qū)W習(xí),但抽象思維和邏輯思維能力比較弱,即計(jì)算思維能力較差,導(dǎo)致對(duì)問(wèn)題的分析不透徹,編寫程序時(shí)不知道如何設(shè)置變量;不知道如何設(shè)計(jì)程序的結(jié)構(gòu);不知道什么時(shí)候定義函數(shù)、如何定義函數(shù);不知道函數(shù)的粒度和職能范圍有多大;不知道數(shù)據(jù)如何存儲(chǔ)、算法如何實(shí)現(xiàn)[3]。學(xué)生缺乏這方面的引導(dǎo)和大量訓(xùn)練。
(2)語(yǔ)法規(guī)則是記憶性的知識(shí)點(diǎn),但許多教師在教學(xué)過(guò)程中會(huì)花費(fèi)大量的時(shí)間和精力講述,由于課時(shí)有限,當(dāng)課程結(jié)束時(shí),學(xué)生只是機(jī)械性地記住了這些知識(shí)點(diǎn)的規(guī)則,但不能真正掌握和理解如何運(yùn)用這些法規(guī)則,不能利用計(jì)算機(jī)解決實(shí)際問(wèn)題。高校教育沒(méi)能夠完成大學(xué)生與社會(huì)的接軌。大學(xué)的教育要擺脫以傳授知識(shí)為主,應(yīng)主要培養(yǎng)計(jì)算機(jī)專業(yè)學(xué)生的主動(dòng)自學(xué)能力、抽象思維能力、理解應(yīng)用能力和實(shí)踐操作能力。
(3)傳統(tǒng)教學(xué)導(dǎo)致教學(xué)時(shí)間有限,無(wú)法保證有效的過(guò)程監(jiān)督機(jī)制[4]。課前學(xué)習(xí)和課后總結(jié)測(cè)試是保證學(xué)習(xí)效果的重要途徑,在實(shí)際教學(xué)中,主要依靠學(xué)生自覺(jué)完成,教師不了解學(xué)生的學(xué)習(xí)狀態(tài)和學(xué)習(xí)效果。另外,高校在程序設(shè)計(jì)類課程中,缺乏資金投入,往往采用大班上課,評(píng)閱作業(yè)存在有效性和滯后性等問(wèn)題,而作業(yè)是教師掌握學(xué)生學(xué)習(xí)情況的重要途徑,導(dǎo)致教師不能全面掌握學(xué)生的真實(shí)學(xué)習(xí)效果,不能及時(shí)解決學(xué)生問(wèn)題。問(wèn)題積少成多,學(xué)生學(xué)習(xí)興趣受到挫敗。教師也無(wú)法通過(guò)有效的作業(yè)反饋調(diào)整上課內(nèi)容,改進(jìn)教學(xué)方法。
(4)英文語(yǔ)言基礎(chǔ)薄弱遇到計(jì)算機(jī)語(yǔ)言的初學(xué)狀態(tài)導(dǎo)致學(xué)生看不懂錯(cuò)誤、理解不了錯(cuò)誤,并缺乏分析程序、跟蹤程序的能力,不會(huì)解決編譯時(shí)碰到的語(yǔ)法錯(cuò),更不能解決邏輯錯(cuò)誤。這與教學(xué)的時(shí)間投入、教學(xué)的方法,以及學(xué)生實(shí)踐經(jīng)驗(yàn)缺乏密切相關(guān)。學(xué)生需要提高閱讀程序的能力和調(diào)試程序的能力[5]。
(5)C語(yǔ)言程序設(shè)計(jì)是一門應(yīng)用性、實(shí)踐性和現(xiàn)實(shí)性很強(qiáng)的課程,而課程教學(xué)內(nèi)容在創(chuàng)新項(xiàng)目?jī)?nèi)容深度不夠,過(guò)多關(guān)注程序設(shè)計(jì)語(yǔ)言本身的訓(xùn)練和數(shù)據(jù)的簡(jiǎn)單呈現(xiàn),而忽視了整體性與綜合創(chuàng)新性思維培養(yǎng)。創(chuàng)新實(shí)踐教學(xué)的總體規(guī)劃、內(nèi)容設(shè)計(jì)等方面不合理,實(shí)踐教學(xué)效果差[6]。
3 C程序設(shè)計(jì)的教學(xué)組織方法(Teaching organization method for C programming)
3.1? ?計(jì)算思維構(gòu)建C程序設(shè)計(jì)教學(xué)設(shè)計(jì)
計(jì)算思維是指以抽象化與自動(dòng)化為特征的一種思維。學(xué)生之所以不會(huì)寫程序,不知道怎么寫程序就是這種抽象化和自動(dòng)化能力不足的體現(xiàn)[7]。通過(guò)計(jì)算思維能給運(yùn)用計(jì)算機(jī)科學(xué)的基礎(chǔ)概念進(jìn)行問(wèn)題求解、系統(tǒng)設(shè)計(jì),將增強(qiáng)學(xué)生程序設(shè)計(jì)的能力。其計(jì)算思維活動(dòng)序列圖如圖3所示。
在圖3中,抽象指的是對(duì)求解問(wèn)題的一種描述,是對(duì)問(wèn)題的表達(dá)和推演。在C語(yǔ)言中,把實(shí)際問(wèn)題抽象成與其相應(yīng)的形式化數(shù)學(xué)模型,然后構(gòu)建數(shù)據(jù)結(jié)構(gòu),確定算法,最后編寫程序求解問(wèn)題。具體而言,抽象就是用變量、函數(shù)、數(shù)組等數(shù)據(jù)結(jié)構(gòu)和算法對(duì)需要解決的實(shí)際問(wèn)題進(jìn)行概括描述,抽象的過(guò)程實(shí)際上就是對(duì)實(shí)際問(wèn)題確立數(shù)學(xué)模型的過(guò)程。抽象與實(shí)際問(wèn)題的對(duì)應(yīng)關(guān)系,見(jiàn)表1所示。
自動(dòng)化就C語(yǔ)言而言,則是利用該語(yǔ)言的語(yǔ)法規(guī)則編寫語(yǔ)句,按照順序自動(dòng)執(zhí)行語(yǔ)句并進(jìn)行自動(dòng)轉(zhuǎn)換。運(yùn)用該框架,構(gòu)建數(shù)學(xué)模型、設(shè)計(jì)算法策略和數(shù)據(jù)結(jié)構(gòu),通過(guò)C語(yǔ)言實(shí)現(xiàn)問(wèn)題工程,學(xué)生通過(guò)不斷的計(jì)算思維訓(xùn)練和編程實(shí)踐,將有助于培養(yǎng)分析設(shè)計(jì)能力和工程設(shè)計(jì)能力,從而解決復(fù)雜工程問(wèn)題,達(dá)到新工科人才培養(yǎng)的目的。但是C語(yǔ)言程序設(shè)計(jì)是面向大一新生的課程,理解抽象和自動(dòng)化培養(yǎng)計(jì)算思維是比較困難的。需要在教學(xué)案例中針對(duì)實(shí)際的問(wèn)題反復(fù)采用計(jì)算思維方式來(lái)分析問(wèn)題,逐步培養(yǎng)使用C語(yǔ)言描述實(shí)際系統(tǒng)的思維。但這一映射過(guò)程達(dá)到熟能生巧的地步,學(xué)生就學(xué)會(huì)了如何定義變量,如何選擇邏輯結(jié)構(gòu),如何合理組織算法,如何編程實(shí)現(xiàn)客觀世界到邏輯世界的映射。如對(duì)以下問(wèn)題的求解,見(jiàn)表2所示。
在教學(xué)中貫穿計(jì)算思維能力訓(xùn)練,特別是在解決實(shí)際問(wèn)題時(shí)展現(xiàn)科學(xué)分析問(wèn)題過(guò)程,完成數(shù)學(xué)抽象,分析如何將數(shù)學(xué)模型映射為對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)和符合邏輯的算法設(shè)計(jì),展示編程與調(diào)試,以及生成可執(zhí)行的程序的過(guò)程,實(shí)現(xiàn)對(duì)計(jì)算思維的詮釋。這將保證學(xué)生的基礎(chǔ)知識(shí)、分析設(shè)計(jì)能力、工程設(shè)計(jì)能力的達(dá)成度。
3.2? ?基于MOOC完成自構(gòu)建的過(guò)程監(jiān)督體系
建構(gòu)主義學(xué)習(xí)理論提倡在教師指導(dǎo)下的、以學(xué)習(xí)者為中心的學(xué)習(xí),從而培養(yǎng)學(xué)生的自我學(xué)習(xí)能力以適應(yīng)新工科人才的需要[8]。MOOC平臺(tái)是實(shí)現(xiàn)建構(gòu)主義學(xué)習(xí)的有效平臺(tái),通過(guò)該平臺(tái),突出學(xué)習(xí)者的認(rèn)知主體地位,體現(xiàn)教師的指導(dǎo)、幫助和促進(jìn)作用,教師是整個(gè)學(xué)習(xí)過(guò)程中的組織者、幫助者和促進(jìn)者,實(shí)現(xiàn)從傳授者和灌輸者的轉(zhuǎn)變。角色功能如圖4所示。
在該平臺(tái)中,教師將C程序設(shè)計(jì)中的基礎(chǔ)語(yǔ)法知識(shí)的相關(guān)內(nèi)容發(fā)布到平臺(tái)中,學(xué)生根據(jù)教師指令,以及自身情況提前在平臺(tái)中有選擇的完成相關(guān)基礎(chǔ)知識(shí)的自主學(xué)習(xí),在課堂教學(xué)中,根據(jù)學(xué)生的學(xué)習(xí)情況針對(duì)特定問(wèn)題進(jìn)行講解,節(jié)省了大量的課堂時(shí)間,教師可充分利用剩下的時(shí)間探討實(shí)際問(wèn)題的解決方案,將有充分的時(shí)間進(jìn)行計(jì)算思維、工程分析設(shè)計(jì)、工程規(guī)范、程序分析與調(diào)試方面的訓(xùn)練。
同時(shí),平臺(tái)具有記錄學(xué)生的學(xué)習(xí)痕跡的功能,將學(xué)生的學(xué)習(xí)時(shí)間、學(xué)習(xí)效果、學(xué)習(xí)程度等相關(guān)信息以統(tǒng)計(jì)的方式進(jìn)行呈現(xiàn),教師能及時(shí)發(fā)現(xiàn)學(xué)生的問(wèn)題,實(shí)現(xiàn)快速反饋和分層指導(dǎo),實(shí)現(xiàn)過(guò)程監(jiān)督的有效性。同時(shí)將學(xué)習(xí)過(guò)程納入考試成績(jī),可有助于提升學(xué)生對(duì)過(guò)程學(xué)習(xí)的重視程度,保證學(xué)習(xí)效果,排除期末臨時(shí)死記硬背應(yīng)付考試的情況。
3.3? ?層層遞進(jìn)實(shí)現(xiàn)知識(shí)內(nèi)化的工程設(shè)計(jì)能力
學(xué)生在構(gòu)建C語(yǔ)言知識(shí)體系時(shí),可通過(guò)MOOC線上平臺(tái)完成基礎(chǔ)知識(shí)體系的構(gòu)建,形成C語(yǔ)言的關(guān)鍵字、規(guī)則、規(guī)范的識(shí)記。在線下,在課堂活動(dòng)中,通過(guò)計(jì)算思維訓(xùn)練形成分析、設(shè)計(jì)、實(shí)現(xiàn)實(shí)際問(wèn)題的求解,在求解過(guò)程中,教師融入工程設(shè)計(jì)的一些理念、框架培養(yǎng)工程設(shè)計(jì)能力。在C程序設(shè)計(jì)中主要思想見(jiàn)表3所示。
程序設(shè)計(jì)的學(xué)習(xí)從模仿開(kāi)始,但在知識(shí)學(xué)習(xí)的積累過(guò)程中,要逐漸培養(yǎng)自己的思維邏輯,教師要積極引導(dǎo)學(xué)生進(jìn)行思維訓(xùn)練,鼓勵(lì)學(xué)生拓展思路,積極探索,采用不同方式實(shí)現(xiàn)一題多解,尋求更健壯、更容易維護(hù)的算法。實(shí)現(xiàn)知識(shí)內(nèi)化到高階思維的轉(zhuǎn)變。
4? ?程序設(shè)計(jì)實(shí)踐探討(Practice discussion)
針對(duì)C語(yǔ)言程序設(shè)計(jì),實(shí)踐是提升分析問(wèn)題、解決問(wèn)題的唯一途徑。只有在實(shí)踐過(guò)程中才能發(fā)現(xiàn)問(wèn)題,才能找出自身的不足。在不同階段開(kāi)展不同的實(shí)踐,見(jiàn)表5所示。
對(duì)于實(shí)踐的考核,一直以來(lái)是一個(gè)比較困難的問(wèn)題,實(shí)踐過(guò)程存在抄襲的問(wèn)題,如何判斷是否抄襲,如何阻止這一現(xiàn)象發(fā)生的最好方式就是實(shí)施過(guò)程監(jiān)督,過(guò)程監(jiān)督的載體就是實(shí)踐筆記,筆記中記錄實(shí)踐中遇到的問(wèn)題,以及解決這類問(wèn)題的方法,對(duì)實(shí)踐過(guò)程進(jìn)行歸納和總結(jié),并進(jìn)行反思。每個(gè)學(xué)生遇到的問(wèn)題和解決方案是不一樣的,容易發(fā)現(xiàn)抄襲的學(xué)生。同時(shí),實(shí)踐過(guò)程中形成的讀書筆記,將是一份寶貴的財(cái)富,歸納總結(jié)將加速學(xué)習(xí)的進(jìn)步與提高。
5? ?結(jié)論(Conclusion)
為滿足人工智能引導(dǎo)下的“新工科”人才培養(yǎng)需求,將計(jì)算思維融入課程教學(xué)中,可使學(xué)生發(fā)散、模糊、混亂的程序設(shè)計(jì)思維清晰化、規(guī)范化;通過(guò)課程的實(shí)踐環(huán)節(jié)訓(xùn)練能夠有效培養(yǎng)學(xué)生的計(jì)算思維、建立程序設(shè)計(jì)編程思想和編程規(guī)范和框架;并基于工程思想解決實(shí)際問(wèn)題。并結(jié)合MOOC平臺(tái)提高學(xué)生自我學(xué)習(xí)的能力,并為教師提供了更為充分的時(shí)間開(kāi)展計(jì)算思維和內(nèi)化教學(xué)設(shè)計(jì),培養(yǎng)學(xué)生的分析設(shè)計(jì)能力和工程能力。
參考文獻(xiàn)(References)
[1] 教育部高教司.新工科建設(shè)指南(“北京指南”)[J].高等工程教育研究,2017(04):20-21.
[2] 趙廣輝.面向新工科的Python程序設(shè)計(jì)交叉融合案例教學(xué)[J].計(jì)算機(jī)教育,2017(08):23-27.
[3] 顧麗紅,丁淑妍.面向計(jì)算思維的蒙特卡羅C語(yǔ)言程序設(shè)計(jì)案例探究[J].計(jì)算機(jī)教育,2018(01):105-111.
[4] 蘭麗,胡曉輝.工程認(rèn)證背景下基于“雨課堂”改進(jìn)“C語(yǔ)言程序設(shè)計(jì)”課程關(guān)鍵教學(xué)環(huán)節(jié)[J].計(jì)算機(jī)時(shí)代,2019(01):102-104.
[5] 季麗琴.以“編、改、調(diào)”三部曲改革C語(yǔ)言實(shí)踐教學(xué)[J].計(jì)算機(jī)教育,2018(04):114-116.
[6] 蔡美玲,張錦,竇亞玲,等.工程教育理念下《程序設(shè)計(jì)基礎(chǔ)》實(shí)驗(yàn)教學(xué)改革探索[J].計(jì)算機(jī)工程與科學(xué),2018,40(S1):21-26.
[7] 光蓉.融入計(jì)算思維的C語(yǔ)言實(shí)驗(yàn)教學(xué)設(shè)計(jì)[J].實(shí)驗(yàn)室研究與探索,2015,34(10):81-83;103.
[8] 于波,劉佳,張?jiān)凭?,?基于C語(yǔ)言課程的新工科人才編程能力培養(yǎng)支架式教學(xué)研究與實(shí)踐[J].吉林化工學(xué)院學(xué)報(bào),2018,35(08):28-31.