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

?

圖形化編程融入程序設(shè)計(jì)教學(xué)效果分析

2020-01-03 10:10彭之軍
現(xiàn)代信息科技 2020年16期
關(guān)鍵詞:比較教學(xué)法

摘? 要:程序設(shè)計(jì)教學(xué)一直是計(jì)算機(jī)科學(xué)教育一個(gè)重要的關(guān)注點(diǎn),如何使用圖形化編程有效地提升教學(xué)有效性,研究通過提煉圖形化編程語言和高級(jí)程序語言的常見設(shè)計(jì)要素,然后在教學(xué)中予以對(duì)應(yīng)實(shí)施,使學(xué)生理解和掌握結(jié)構(gòu)化程序設(shè)計(jì)的一般方法,了解面向?qū)ο缶幊痰幕舅枷?。通過結(jié)合圖形化編程使用前后對(duì)比分析,最后得出結(jié)論為圖形化編程融入程序設(shè)計(jì)能在一定程度上提升學(xué)生的學(xué)習(xí)興趣和程序設(shè)計(jì)教學(xué)效果。

關(guān)鍵詞:圖形化編程語言;程序設(shè)計(jì)教學(xué);比較教學(xué)法

中圖分類號(hào):G623.58? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2096-4706(2020)16-0193-03

An Analysis of the Teaching Effect of Integrating Graphic Programming

into Programming

PENG Zhijun

(Guangdong Vocational College of Post and Telecom,Guangzhou? 510630,China)

Abstract:Programming teaching has always been an important focus of computer science education. How to use graphical programming to effectively improve teaching effectiveness,research and refine the common design elements of graphical programming languages and high-level programming languages,and then implement them in teaching. Enable students to understand and master the general methods of structured programming and understand the basic ideas of object-oriented programming. Through the comparative analysis before and after the use of graphical programming,it is concluded that the integration of graphical programming into programming has a certain degree of procedural improvement of studentsinterest in learning and teaching effects.

Keywords:graphical programming language;programming teaching;comparative teaching method

0? 引? 言

程序設(shè)計(jì)教學(xué)是計(jì)算機(jī)科學(xué)教育一個(gè)重要方面,如何高效地提升教學(xué)有效性,成為國內(nèi)外教育工作者研究的一個(gè)重點(diǎn)。早在1967年美國麻省理工學(xué)院的Seymour Papert教授就設(shè)計(jì)出了LOGO語言來幫助兒童學(xué)習(xí)人工智能,再到現(xiàn)在如雨后春筍般各種圖形化編程語言的出現(xiàn),都凸顯了圖形化編程在程序設(shè)計(jì)教學(xué)中的獨(dú)特作用。

本文介紹了主流的圖形化編程語言Scratch中程序設(shè)計(jì)要素的實(shí)現(xiàn)方式,并介紹了結(jié)合圖形化編程在高級(jí)語言程序設(shè)計(jì)實(shí)際教學(xué)中的應(yīng)用效果。

1? 主要的圖形化編程語言

目前主要的幾種圖形化編程語言有LOGO、Scratch、App Inventor、Makecode、Blockly等。LOGO已經(jīng)50年以上歷史了,目前在國內(nèi)使用較少。目前國內(nèi)使用人數(shù)最多的圖形化編程語言非Scratch莫屬了,在國際范圍內(nèi)TIOBE發(fā)布的2020年9月編程語言排行榜中LOGO語言依然排在21位,Scratch語言排在24位。

Scratch語言是美國麻省理工學(xué)院開發(fā)的一門語言,主要的使用對(duì)象是7~18歲青少年[1]。而企業(yè)界開發(fā)出的圖形編程語言有Google公司的App Inventor等。App Inventor可以使用圖形化的方式編寫安卓應(yīng)用程序,編程人員使用圖形化的方式編寫代碼,經(jīng)過內(nèi)置的代碼分析引擎轉(zhuǎn)化成安卓應(yīng)用程序,這是非常有益的嘗試。雖然企業(yè)開發(fā)人員很少使用APP Inventor開發(fā)商用安卓應(yīng)用程序,但是這種開發(fā)模式是非常有價(jià)值的一個(gè)研究方向。

MakeCode是微軟公司開發(fā)的一種基于可以控制硬件開發(fā)板的編程語言。通過人工智能可以自動(dòng)將圖形化代碼轉(zhuǎn)化成JavaScript腳本,其轉(zhuǎn)成Python語言的功能也處于試用階段。

2? 高級(jí)語言的學(xué)習(xí)效率

以C語言為例,學(xué)生普遍認(rèn)為這門課難度大、不易學(xué)、期末考試不及格率高。另一方面教師也認(rèn)為課堂時(shí)間少,教學(xué)效果不好[2]。大部分高校設(shè)置的C語言程序設(shè)計(jì)課程,至少要經(jīng)過64學(xué)時(shí)的課堂講授,輔以課后的雙倍時(shí)間,也就是128小時(shí)的練習(xí)時(shí)間才能掌握基礎(chǔ)語法。而要通過權(quán)威的全國計(jì)算機(jī)等級(jí)考試二級(jí),則要再至少經(jīng)過幾十到上百個(gè)課時(shí)的復(fù)習(xí)才可能通過。而Java語言程序設(shè)計(jì)基礎(chǔ)在經(jīng)過一學(xué)期64學(xué)時(shí)的學(xué)習(xí)后,通過全國計(jì)算機(jī)等級(jí)考試二級(jí)真題的測(cè)試人數(shù)比率低于20%。并且使很多同學(xué)產(chǎn)生了畏懼編程語言的心理,進(jìn)而對(duì)于后續(xù)的專業(yè)課程學(xué)習(xí)和將來就業(yè)會(huì)產(chǎn)生一定障礙。

3? 圖形化編程引入與Python語言結(jié)合

基于以上的原因,筆者在廣東郵電職業(yè)技術(shù)學(xué)院通過成立的人工智能創(chuàng)客教師工作室,面向全校學(xué)生招收工作室成員,第一期共招收了22名學(xué)生,涵蓋移動(dòng)互聯(lián)應(yīng)用技術(shù)專業(yè)和移動(dòng)通信專業(yè)。在工作室學(xué)習(xí)的第一門課程就是培養(yǎng)學(xué)生的編程能力,課程命名為“通過圖形化編程學(xué)習(xí)程序設(shè)計(jì)”。

筆者設(shè)計(jì)了32學(xué)時(shí)的圖形化編程課程,課程中以使用Scratch軟件繪圖開始,通過繪制從易到難的幾何圖形,再到一系列的有趣的游戲程序設(shè)計(jì)。經(jīng)過一個(gè)學(xué)期的實(shí)驗(yàn)后,從課程出勤率,學(xué)習(xí)通過率來看,學(xué)生的積極性得到了很好的提升。工作室課程出勤率達(dá)到95%以上,圖形化編程學(xué)習(xí)通過率,參照中國電子學(xué)會(huì)圖形化編程等級(jí)考試標(biāo)準(zhǔn)四級(jí),通過率達(dá)到了100%。在學(xué)習(xí)本課程前全國計(jì)算機(jī)二級(jí)等級(jí)考試真題內(nèi)部測(cè)試合格率18%左右,經(jīng)過學(xué)習(xí)后全國計(jì)算機(jī)二級(jí)等級(jí)考試真題內(nèi)部測(cè)試合格率提高了5%左右。

經(jīng)過在工作室小范圍的試驗(yàn)后,在后續(xù)我校非計(jì)算機(jī)專業(yè)的學(xué)生教授第一門編程語言時(shí),決定在“Python程序設(shè)計(jì)”課程中同時(shí)采用Scratch作為用來輔助程序設(shè)計(jì)教學(xué)工作的軟件。

Python語言起源于1989年,是一門距今已經(jīng)有30多年歷史的編程語言,是目前美國大學(xué)最受歡迎的程序設(shè)計(jì)語言。Python語言的實(shí)際教學(xué)內(nèi)容包含了順序結(jié)構(gòu)、分支選擇、循環(huán)、函數(shù)等基本的程序邏輯關(guān)系[3]。

4? 提取圖形化編程的關(guān)鍵要素

在教學(xué)中,筆者通過使用圖形化編程語言來對(duì)比Python編程語言進(jìn)行教學(xué),下文是實(shí)踐中使用圖形化編程語言和Python對(duì)比的關(guān)鍵知識(shí)點(diǎn)要素。

4.1? 程序設(shè)計(jì)的要素

4.1.1? 程序設(shè)計(jì)的第1個(gè)要素就是順序結(jié)構(gòu)

使用圖形編程畫正方形的代碼為:

import turtle as t

t.forward(100) #前進(jìn)100像素

t.right(90)? ? #右轉(zhuǎn)90度

t.forward(100)

t.right(90)

t.forward(100)

t.right(90)

t.forward(100)

t.right(90)

使用Scratch繪制正方形如圖1所示。

而同比使用Python的繪圖庫Turtle代碼非常接近。通過反復(fù)地畫一些基本幾何圖形,學(xué)生很快就能理解按順序結(jié)構(gòu)進(jìn)行編碼的概念。

4.1.2? 得出規(guī)律并提取模式

通過畫常見的圖形,引導(dǎo)學(xué)生觀察圖形模塊的代碼,發(fā)現(xiàn)有規(guī)律的重復(fù)性的代碼。然后使用循環(huán)模塊來減少重復(fù)代碼。引入重復(fù)執(zhí)行模塊后簡化基本圖形的代碼量,再在Python語言中引入for循環(huán)或while循環(huán),學(xué)生理解起來就過度地非常自然與平滑,學(xué)習(xí)曲線非常平緩。引入的第一個(gè)for循環(huán)代碼為:

import turtle as t

for i in range(4):

t.forward(100) #前進(jìn)100像素

t.right(90)? ? #右轉(zhuǎn)90度

4.1.3? 條件分支選擇

通過不同條件判斷的結(jié)果,來執(zhí)行不同的動(dòng)作,Scratch中的圖形模塊非常容易使用條件分支選擇結(jié)構(gòu),這種結(jié)構(gòu)在編程語言中普遍使用“if…”“else…”語句來實(shí)現(xiàn)。

4.1.4? 循環(huán)和條件判斷的復(fù)雜組合

經(jīng)過初步的循環(huán)和條件判斷訓(xùn)練之后,就可以將循環(huán)和判斷進(jìn)行復(fù)雜的組合,并輔助以嵌套循環(huán)以及條件判斷個(gè)兩類組合、并行等方式,使學(xué)生能完成更復(fù)雜的繪圖設(shè)計(jì),這是程序設(shè)計(jì)教學(xué)遇到的第1個(gè)難度高的地方,需要學(xué)生反復(fù)練習(xí)。循環(huán)和分支選擇結(jié)構(gòu)的組合如圖2所示。

4.1.5? 函數(shù)

函數(shù)的定義和調(diào)用是程序設(shè)計(jì)教學(xué)中第2個(gè)難度較高的知識(shí)點(diǎn),使用圖形的自定義模塊可以完成此項(xiàng)功能。Scratch中的函數(shù)也分為有參數(shù)函數(shù)和無參數(shù)函數(shù),但是Scratch缺少采用參數(shù)的返回值的功能,這是在Python語言教學(xué)中要補(bǔ)充的一項(xiàng)。

4.1.6? 遞歸

遞歸也是程序設(shè)計(jì)教學(xué)中的1個(gè)難點(diǎn),不僅難以理解,并且難以在代碼中直觀地展現(xiàn)調(diào)試過程。筆者在實(shí)踐中使用幾何學(xué)結(jié)合計(jì)算機(jī)圖形中的分形進(jìn)行介紹和對(duì)比完成這個(gè)知識(shí)點(diǎn)的講解。圖3為謝爾賓斯基三角形(Sierpinski triangle)的分形代碼實(shí)現(xiàn)。

4.1.7? 面向?qū)ο?/p>

在圖形編程語言中的角色設(shè)計(jì)采用的就是面向?qū)ο蟮乃枷?。在Scratch圖形編程語言中,有角色和背景兩大類,編程者可以引入多個(gè)角色,相當(dāng)于生成了多個(gè)對(duì)象。對(duì)象中定義變量又可以分為獨(dú)占變量和公共變量。通過這個(gè)概念可以幫助學(xué)生理解面向?qū)ο笾械姆庋b概念。

4.1.8? 事件機(jī)制

Scratch中有完備的事件觸發(fā)機(jī)制。對(duì)象被點(diǎn)擊觸發(fā),鼠標(biāo)、鍵盤和角色碰撞觸發(fā)等等事件。

4.1.9? 通信機(jī)制

孤立對(duì)象的功能是弱小的。在編程中級(jí)進(jìn)階階段,對(duì)象之間的通信機(jī)制是一種非常重要的功能。在Scratch中有廣播機(jī)制,采用發(fā)送命名廣播方式來完成對(duì)象之間的通信。

4.1.10? 線程機(jī)制

面向?qū)ο缶幊讨卸嗑€程的調(diào)度和使用是1個(gè)難點(diǎn),哪怕是具有豐富經(jīng)驗(yàn)的程序員也可能會(huì)出錯(cuò)。Scratch中簡化了此項(xiàng)技術(shù),它的每個(gè)對(duì)象之間都是采用了并行的多線程機(jī)制,并且Scratch中獨(dú)特的克隆機(jī)制,對(duì)學(xué)生理解子線程非常有幫助。

5? 應(yīng)用效果分析

通過兩學(xué)期圖形編程語言輔助高級(jí)編程語言的教學(xué)實(shí)施,并且和通過傳統(tǒng)教學(xué)法學(xué)習(xí)高級(jí)編程語言的班級(jí)進(jìn)行對(duì)比,得出如下數(shù)據(jù),如表1所示。

在學(xué)期初針對(duì)學(xué)生的程序設(shè)計(jì)的學(xué)習(xí)現(xiàn)狀,發(fā)出調(diào)查問卷330份,回收有效調(diào)查309份。在結(jié)合圖形化編程教學(xué)過程完成后的學(xué)期末,再發(fā)出調(diào)查問卷330份,回收有效調(diào)查311份。其中未結(jié)合圖形化編程的問卷為156份,結(jié)合圖形化編程的問卷為155份。

從表2的學(xué)習(xí)前后興趣調(diào)查表,選擇對(duì)編程感興趣的學(xué)習(xí)者中,結(jié)合了圖形化編程的學(xué)生(比例為40.645%)比未結(jié)合圖形化編程的學(xué)生(比例為33.970%)高出了6.675%。

6? 結(jié)? 論

由于我國的中小學(xué)計(jì)算機(jī)教育在目前的高考選拔體制下長期不受重視,導(dǎo)致高中畢業(yè)生計(jì)算機(jī)基礎(chǔ)相對(duì)薄弱,僅僅通過1到2門課程來提升大學(xué)生的計(jì)算機(jī)應(yīng)用能力和編程能力,很難達(dá)到教學(xué)效果要求。但是目前大學(xué)教學(xué)計(jì)劃緊湊,已無法再增加課時(shí),只能在目前的課時(shí)中采用更加有效的方式和方法來改善。本項(xiàng)目探索了結(jié)合圖形化編程工具來學(xué)習(xí)“Python程序設(shè)計(jì)”課程,并提取了圖形化編程對(duì)應(yīng)高級(jí)編程語言中的關(guān)鍵要素,來提升“Python程序設(shè)計(jì)”教學(xué)效果。經(jīng)過教學(xué)實(shí)踐,通過表1的數(shù)據(jù)對(duì)比,可以得出圖形編程語言和高級(jí)編程語言的比較教學(xué)法可以提高學(xué)生的考試通過率。從表2的興趣調(diào)查表數(shù)據(jù)中,圖形化編程可以提高學(xué)生學(xué)習(xí)編程的興趣。不足之處在于學(xué)生在學(xué)習(xí)了編程之后不管是否采用圖形化編程都比沒有學(xué)習(xí)前的興趣比例有所下降,說明在整體程序課程的設(shè)計(jì)方面,依然有待提升的空間。

參考文獻(xiàn):

[1] 朱麗彬,金炳堯.Scratch程序設(shè)計(jì)課教學(xué)實(shí)踐研究——基于體驗(yàn)學(xué)習(xí)圈的視角 [J].現(xiàn)代教育技術(shù),2013(7):30-33.

[2] 謝競博.C語言程序設(shè)計(jì)教學(xué)中的問題及改革建議 [J].重慶郵電大學(xué)學(xué)報(bào)(社會(huì)科學(xué)版),2008(2):137-140.

[3] 嵩天,黃天羽,禮欣.Python語言:程序設(shè)計(jì)課程教學(xué)改革的理想選擇 [J].中國大學(xué)教學(xué),2016(2):42-47.

作者簡介:彭之軍(1978.11—),男,漢族,湖北潛江人,講師,高級(jí)工程師,碩士,研究方向:企業(yè)信息系統(tǒng)開發(fā)、人工智能技術(shù)。

猜你喜歡
比較教學(xué)法
大班幼兒版畫比較教學(xué)法的嘗試
“比較”與“類比”在大學(xué)化學(xué)教學(xué)中的應(yīng)用
比較教學(xué)法在“算法分析與設(shè)計(jì)”課程教學(xué)中的應(yīng)用
泰勒公式與泰勒級(jí)數(shù)的比較教學(xué)
比較教學(xué)法在“毛澤東思想和中國特色社會(huì)主義理論體系概論”課教學(xué)中的運(yùn)用研究
比較教學(xué)法在《傳感器》理論教學(xué)過程中的應(yīng)用
預(yù)算會(huì)計(jì)模塊化教學(xué)改革研究
試論比較教學(xué)法在“概論”課教學(xué)中的運(yùn)用
比一比,看透薄膜后的秘密
淺談中國現(xiàn)當(dāng)代文學(xué)的比較教學(xué)法
沈阳市| 塘沽区| 玉环县| 延寿县| 平乡县| 呈贡县| 安阳县| 高雄市| 太仓市| 胶州市| 大渡口区| 班玛县| 鸡泽县| 寻乌县| 河源市| 镇坪县| 石家庄市| 明溪县| 五莲县| 新沂市| 财经| 山丹县| 锦屏县| 余江县| 苗栗县| 柳州市| 安徽省| SHOW| 阳西县| 乌海市| 建水县| 无为县| 台北市| 平原县| 都匀市| 丹东市| 洛宁县| 雅安市| 延川县| 革吉县| 玉树县|