盧文偉 夏其表
摘 要: 程序設(shè)計(jì)是大學(xué)非計(jì)算機(jī)專業(yè)重要的計(jì)算機(jī)類課程,其中計(jì)算思維的培養(yǎng)是非計(jì)算機(jī)專業(yè)程序設(shè)計(jì)課程的主要目的。文章針對(duì)非計(jì)算機(jī)專業(yè)學(xué)生在學(xué)習(xí)程序設(shè)計(jì)課程中存在的問題,提出了基于螺旋式的教學(xué)模式下,以階段性項(xiàng)目設(shè)計(jì)為主體的程序設(shè)計(jì)課程中計(jì)算思維的培養(yǎng)方案。該研究通過對(duì)各階段課堂的合理安排與優(yōu)化,讓學(xué)生在掌握編程技能的同時(shí)能更好地理解計(jì)算思維。
關(guān)鍵詞: 程序設(shè)計(jì); 計(jì)算思維; 非計(jì)算機(jī)專業(yè); 螺旋式; 項(xiàng)目設(shè)計(jì)
中圖分類號(hào):G642 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1006-8228(2018)11-79-02
Abstract: Program design is an important computer course for non-computer specialty in colleges, and the training of computational thinking is the main purpose of programming courses to non-computer majored student. With the analysis of the problems in learning programming, in this paper, the spiral-model based teaching method is proposed which trains the computational thinking to non-computer majored student by designing projects phase by phase in programming courses. The students can master the programming skill, and meanwhile, understand computational thinking by the reasonable arrangement in each stage of the course.
Key words: program design; computational thinking; non-computer specialty; spiral model; project design
0 引言
計(jì)算機(jī)程序設(shè)計(jì)作為大學(xué)通識(shí)教育的重要課程,其主要目的不僅僅是使得大學(xué)生能夠掌握計(jì)算機(jī)的基本知識(shí),熟悉編程技能,更重要的是培養(yǎng)大學(xué)生具備計(jì)算的思維方式[1]。不同于傳統(tǒng)基于邏輯的理論思維和基于實(shí)證的實(shí)驗(yàn)思維,計(jì)算思維以從抽象到設(shè)計(jì)、從構(gòu)造到編程實(shí)現(xiàn)的計(jì)算方式對(duì)問題進(jìn)行基于構(gòu)造思維的研究[2]。隨著計(jì)算機(jī)科學(xué)與技術(shù)的不斷發(fā)展,人們對(duì)自然現(xiàn)象與規(guī)律的研究越來(lái)越依賴于相應(yīng)的計(jì)算模式[3],如:計(jì)算物理、計(jì)算仿真等等。然而,常規(guī)的計(jì)算機(jī)程序課堂往往只注重于對(duì)學(xué)生編程技能的培養(yǎng),特別是在針對(duì)非計(jì)算機(jī)專業(yè)的程序設(shè)計(jì)通識(shí)課程中,由于課時(shí)緊張,基礎(chǔ)相對(duì)薄弱,要培養(yǎng)學(xué)生的計(jì)算思維方式就顯得任重道遠(yuǎn)。
螺旋模式的教學(xué)是將整個(gè)課程合理地設(shè)置為若干個(gè)階段,以特定的學(xué)習(xí)目標(biāo)為契機(jī),將每一階段學(xué)習(xí)內(nèi)容與目標(biāo)建立在另一個(gè)階段的分析與整合之上,從整化零,又由零歸整。在簡(jiǎn)單的學(xué)習(xí)與復(fù)雜的整合間反復(fù)進(jìn)行,前一階段是后一階段的基礎(chǔ),后一階段是前一階段的發(fā)展,螺旋向上,逐步達(dá)到既定目標(biāo)[4]。計(jì)算思維的培養(yǎng)無(wú)法一蹴而就,也無(wú)法通過簡(jiǎn)單的程序設(shè)計(jì)案例的教學(xué)與實(shí)踐達(dá)到目標(biāo),其需要通過對(duì)能體現(xiàn)計(jì)算思維的問題或項(xiàng)目進(jìn)行不斷分析、整合,在反復(fù)向上的學(xué)習(xí)過程中激發(fā)學(xué)生興趣,理解計(jì)算思維的含義。在綜合分析學(xué)生學(xué)情與課程現(xiàn)狀的基礎(chǔ)上,研究在面向非計(jì)算機(jī)專業(yè)的程序設(shè)計(jì)課程(以c語(yǔ)言為例)中,以項(xiàng)目化、模塊化為向?qū)?,利用螺旋模式的課程發(fā)展方式,層層引導(dǎo),最終實(shí)現(xiàn)對(duì)學(xué)生計(jì)算思維的培養(yǎng)。
1 螺旋模式下的計(jì)算思維培養(yǎng)
由于非計(jì)算機(jī)專業(yè)的學(xué)生面臨所在的專業(yè)課程多,程序設(shè)計(jì)學(xué)習(xí)時(shí)間緊,且學(xué)習(xí)時(shí)間呈現(xiàn)碎片化等問題。在以項(xiàng)目化、模塊化為向?qū)?,進(jìn)行螺旋式教學(xué)時(shí),項(xiàng)目的設(shè)計(jì)需要符合學(xué)生學(xué)習(xí)所處階段的難度,并且模塊量不宜太大,以能在3到5次課完成為宜。以下,以程序流程控制的教學(xué)階段為學(xué)習(xí)目標(biāo),設(shè)計(jì)相關(guān)項(xiàng)目及功能模塊,對(duì)螺旋模式下的計(jì)算思維培養(yǎng)課堂方式進(jìn)行闡述與分析。
1.1 結(jié)合計(jì)算思維的項(xiàng)目設(shè)計(jì)與模塊分解
在結(jié)合計(jì)算思維的教學(xué)過程中,為充分發(fā)揮螺旋式的課程體系與方式,當(dāng)課程處于程序流程控制的教學(xué)階段時(shí),設(shè)計(jì)如圖1所示項(xiàng)目進(jìn)行教學(xué)與實(shí)踐。這是一個(gè)簡(jiǎn)單的“猜數(shù)字”與“猜大小”的游戲項(xiàng)目,該項(xiàng)目既符合螺旋式的教學(xué)方法,也有助于在設(shè)計(jì)過程中逐步理解計(jì)算思維,同時(shí),該項(xiàng)目具備一定的娛樂性和實(shí)用性,有助于激發(fā)學(xué)生的學(xué)習(xí)興趣。
在如圖1的項(xiàng)目中,為更好實(shí)現(xiàn)螺旋式教學(xué),首先,對(duì)項(xiàng)目進(jìn)行功能模塊的分解與說明,主要包括如下模塊。
⑴ 登錄模塊:用于用戶登錄,只有登錄成功才能進(jìn)入功能界面,有3次密碼輸入機(jī)會(huì),如果3次密碼輸入錯(cuò)誤,結(jié)束程序。
⑵ 選擇模塊:給出3個(gè)選項(xiàng),選“1”進(jìn)入“猜數(shù)字”模塊,選“2”進(jìn)入“猜大小”模塊,選“3”則“退出程序”,選擇其他數(shù)字提示“輸入錯(cuò)誤”并重新輸入。
⑶ 猜數(shù)字模塊:這是一個(gè)簡(jiǎn)單的猜數(shù)字游戲,隨機(jī)產(chǎn)生一個(gè)[10,99]之間的整數(shù),用戶猜測(cè)該數(shù)字,共5次機(jī)會(huì),每次的猜測(cè)會(huì)提示“太大”、“太小”或“猜對(duì)了”。
⑷ 猜大小模塊:隨機(jī)產(chǎn)生一個(gè)[1,6]之間整數(shù),1~3表示“小”,4~6代表“大”,用戶猜測(cè)隨機(jī)產(chǎn)生的數(shù)為“大”或“小”,并顯示結(jié)果。
1.2 螺旋式課堂設(shè)計(jì)與階段分解
在體現(xiàn)計(jì)算思維的螺旋式教學(xué)過程中,核心是如何進(jìn)行課堂的計(jì)算思維化設(shè)計(jì)以及各階段間的螺旋式關(guān)聯(lián)。針對(duì)上述設(shè)計(jì)的項(xiàng)目及模塊,本節(jié)進(jìn)行相關(guān)的課堂設(shè)計(jì)與分析。
如表1所示,該項(xiàng)目的設(shè)計(jì)是基于流程控制的教學(xué)階段,對(duì)于該項(xiàng)目,將其分解為三個(gè)課堂子階段,分別為項(xiàng)目架構(gòu)及解析、模塊分解與實(shí)現(xiàn)、項(xiàng)目整合及總結(jié),各子階段間互為基礎(chǔ)與提升,體現(xiàn)螺旋式的課堂方式。
在進(jìn)行課堂設(shè)計(jì)時(shí),采用理論與實(shí)踐的交叉模式,便于學(xué)生掌握編程技能的同時(shí),積極探索,主動(dòng)思考,理解計(jì)算思維。在第1個(gè)子階段中,首先對(duì)問題進(jìn)行抽象化,以計(jì)算思維方式對(duì)項(xiàng)目整體框架和流程進(jìn)行系統(tǒng)的分析。具體的流程分析如圖2所示,將問題進(jìn)行抽象化處理,并且在功能模塊選擇中引入if或switch選擇語(yǔ)句。該階段主要以理論分析為主,適當(dāng)結(jié)合實(shí)踐操作。在第2個(gè)子階段中,將各功能模塊單獨(dú)提取并實(shí)現(xiàn)。在各功能模塊的實(shí)現(xiàn)中會(huì)使用選擇及循環(huán)結(jié)構(gòu),該階段以實(shí)踐為主,其中適當(dāng)講解語(yǔ)法。在最后一個(gè)子階段中,結(jié)合第1、2個(gè)子階段內(nèi)容,將已實(shí)現(xiàn)的功能模塊進(jìn)行整合,該部分要以實(shí)踐操作為主;此外,對(duì)項(xiàng)目進(jìn)行總結(jié),主要要求體現(xiàn)計(jì)算思維相關(guān)內(nèi)容,該部分以理論為主。
2 總結(jié)
在計(jì)算機(jī)科學(xué)與技術(shù)全方位普及的時(shí)代,計(jì)算思維的培養(yǎng)是面向非計(jì)算機(jī)專業(yè)程序設(shè)計(jì)課堂的主要目標(biāo),但是傳統(tǒng)的小案例或大項(xiàng)目的教學(xué)方式并不能很好的實(shí)現(xiàn)計(jì)算思維的培養(yǎng)方向。本文的研究中,探索在課程的設(shè)計(jì)與實(shí)施過程中,以螺旋式的教學(xué)方法為基礎(chǔ),對(duì)各學(xué)習(xí)階段的設(shè)計(jì),要設(shè)計(jì)出能較好體現(xiàn)計(jì)算思維的項(xiàng)目,并合理設(shè)計(jì)課堂,優(yōu)化教學(xué)方案。通過對(duì)課堂與階段項(xiàng)目的合理安排,使學(xué)生在掌握編程技能的同時(shí)理解計(jì)算思維。
參考文獻(xiàn)(References):
[1] 鄭紅波,鄭浩,秦緒佳.非計(jì)算機(jī)專業(yè)程序設(shè)計(jì)類課程之計(jì)算思維培養(yǎng)[J].中國(guó)信息技術(shù)教育,2017.8:89-92
[2] Wing JM.Computational Thinking [J].Communications of the ACM,2006.49(3):33-35
[3] 陳杰華.程序設(shè)計(jì)課程中強(qiáng)化計(jì)算思維訓(xùn)練的實(shí)踐探索[J].計(jì)算機(jī)教育,2009.20:84-85
[4] 郭艷燕,周世平,賀利堅(jiān)等.信息化平臺(tái)下的程序設(shè)計(jì)課程混合式教學(xué)[J].計(jì)算機(jī)教育,2017.6:74-78