APP下载

图形化编程融入程序设计教学效果分析

2020-01-03彭之军

现代信息科技 2020年16期
关键词:比较教学法

摘  要:程序设计教学一直是计算机科学教育一个重要的关注点,如何使用图形化编程有效地提升教学有效性,研究通过提炼图形化编程语言和高级程序语言的常见设计要素,然后在教学中予以对应实施,使学生理解和掌握结构化程序设计的一般方法,了解面向对象编程的基本思想。通过结合图形化编程使用前后对比分析,最后得出结论为图形化编程融入程序设计能在一定程度上提升学生的学习兴趣和程序设计教学效果。

关键词:图形化编程语言;程序设计教学;比较教学法

中图分类号:G623.58      文献标识码:A 文章编号: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  引  言

程序設计教学是计算机科学教育一个重要方面,如何高效地提升教学有效性,成为国内外教育工作者研究的一个重点。早在1967年美国麻省理工学院的Seymour Papert教授就设计出了LOGO语言来帮助儿童学习人工智能,再到现在如雨后春笋般各种图形化编程语言的出现,都凸显了图形化编程在程序设计教学中的独特作用。

本文介绍了主流的图形化编程语言Scratch中程序设计要素的实现方式,并介绍了结合图形化编程在高级语言程序设计实际教学中的应用效果。

1  主要的图形化编程语言

目前主要的几种图形化编程语言有LOGO、Scratch、App Inventor、Makecode、Blockly等。LOGO已经50年以上历史了,目前在国内使用较少。目前国内使用人数最多的图形化编程语言非Scratch莫属了,在国际范围内TIOBE发布的2020年9月编程语言排行榜中LOGO语言依然排在21位,Scratch语言排在24位。

Scratch语言是美国麻省理工学院开发的一门语言,主要的使用对象是7~18岁青少年[1]。而企业界开发出的图形编程语言有Google公司的App Inventor等。App Inventor可以使用图形化的方式编写安卓应用程序,编程人员使用图形化的方式编写代码,经过内置的代码分析引擎转化成安卓应用程序,这是非常有益的尝试。虽然企业开发人员很少使用APP Inventor开发商用安卓应用程序,但是这种开发模式是非常有价值的一个研究方向。

MakeCode是微软公司开发的一种基于可以控制硬件开发板的编程语言。通过人工智能可以自动将图形化代码转化成JavaScript脚本,其转成Python语言的功能也处于试用阶段。

2  高级语言的学习效率

以C语言为例,学生普遍认为这门课难度大、不易学、期末考试不及格率高。另一方面教师也认为课堂时间少,教学效果不好[2]。大部分高校设置的C语言程序设计课程,至少要经过64学时的课堂讲授,辅以课后的双倍时间,也就是128小时的练习时间才能掌握基础语法。而要通过权威的全国计算机等级考试二级,则要再至少经过几十到上百个课时的复习才可能通过。而Java语言程序设计基础在经过一学期64学时的学习后,通过全国计算机等级考试二级真题的测试人数比率低于20%。并且使很多同学产生了畏惧编程语言的心理,进而对于后续的专业课程学习和将来就业会产生一定障碍。

3  图形化编程引入与Python语言结合

基于以上的原因,笔者在广东邮电职业技术学院通过成立的人工智能创客教师工作室,面向全校学生招收工作室成员,第一期共招收了22名学生,涵盖移动互联应用技术专业和移动通信专业。在工作室学习的第一门课程就是培养学生的编程能力,课程命名为“通过图形化编程学习程序设计”。

笔者设计了32学时的图形化编程课程,课程中以使用Scratch软件绘图开始,通过绘制从易到难的几何图形,再到一系列的有趣的游戏程序设计。经过一个学期的实验后,从课程出勤率,学习通过率来看,学生的积极性得到了很好的提升。工作室课程出勤率达到95%以上,图形化编程学习通过率,参照中国电子学会图形化编程等级考试标准四级,通过率达到了100%。在学习本课程前全国计算机二级等级考试真题内部测试合格率18%左右,经过学习后全国计算机二级等级考试真题内部测试合格率提高了5%左右。

经过在工作室小范围的试验后,在后续我校非计算机专业的学生教授第一门编程语言时,决定在“Python程序设计”课程中同时采用Scratch作为用来辅助程序设计教学工作的软件。

Python语言起源于1989年,是一门距今已经有30多年历史的编程语言,是目前美国大学最受欢迎的程序设计语言。Python语言的实际教学内容包含了顺序结构、分支选择、循环、函数等基本的程序逻辑关系[3]。

4  提取图形化编程的关键要素

在教学中,笔者通过使用图形化编程语言来对比Python编程语言进行教学,下文是实践中使用图形化编程语言和Python对比的关键知识点要素。

4.1  程序设计的要素

4.1.1  程序设计的第1个要素就是顺序结构

使用图形编程画正方形的代码为:

import turtle as t

t.forward(100) #前进100像素

t.right(90)    #右转90度

t.forward(100)

t.right(90)

t.forward(100)

t.right(90)

t.forward(100)

t.right(90)

使用Scratch绘制正方形如图1所示。

而同比使用Python的绘图库Turtle代码非常接近。通过反复地画一些基本几何图形,学生很快就能理解按顺序结构进行编码的概念。

4.1.2  得出规律并提取模式

通过画常见的图形,引导学生观察图形模块的代码,发现有规律的重复性的代码。然后使用循环模块来减少重复代码。引入重复执行模块后简化基本图形的代码量,再在Python语言中引入for循环或while循环,学生理解起来就过度地非常自然与平滑,学习曲线非常平缓。引入的第一个for循环代码为:

import turtle as t

for i in range(4):

t.forward(100) #前进100像素

t.right(90)    #右转90度

4.1.3  条件分支选择

通过不同条件判断的结果,来执行不同的动作,Scratch中的图形模块非常容易使用条件分支选择结构,这种结构在编程语言中普遍使用“if…”“else…”语句来实现。

4.1.4  循环和条件判断的复杂组合

经过初步的循环和条件判断训练之后,就可以将循环和判断进行复杂的组合,并辅助以嵌套循环以及条件判断个两类组合、并行等方式,使学生能完成更复杂的绘图设计,这是程序设计教学遇到的第1个难度高的地方,需要学生反复练习。循环和分支选择结构的组合如图2所示。

4.1.5  函数

函数的定义和调用是程序设计教学中第2个难度较高的知识点,使用图形的自定义模块可以完成此项功能。Scratch中的函数也分为有参数函数和无参数函数,但是Scratch缺少采用参数的返回值的功能,这是在Python语言教学中要补充的一项。

4.1.6  递归

递归也是程序设计教学中的1个难点,不仅难以理解,并且难以在代码中直观地展现调试过程。笔者在实践中使用几何学结合计算机图形中的分形进行介绍和对比完成这个知识点的讲解。图3为谢尔宾斯基三角形(Sierpinski triangle)的分形代码实现。

4.1.7  面向对象

在图形编程语言中的角色设计采用的就是面向对象的思想。在Scratch图形编程语言中,有角色和背景两大类,编程者可以引入多个角色,相当于生成了多个对象。对象中定义变量又可以分为独占变量和公共变量。通过这个概念可以帮助学生理解面向对象中的封装概念。

4.1.8  事件机制

Scratch中有完备的事件触发机制。对象被点击触发,鼠标、键盘和角色碰撞触发等等事件。

4.1.9  通信機制

孤立对象的功能是弱小的。在编程中级进阶阶段,对象之间的通信机制是一种非常重要的功能。在Scratch中有广播机制,采用发送命名广播方式来完成对象之间的通信。

4.1.10  线程机制

面向对象编程中多线程的调度和使用是1个难点,哪怕是具有丰富经验的程序员也可能会出错。Scratch中简化了此项技术,它的每个对象之间都是采用了并行的多线程机制,并且Scratch中独特的克隆机制,对学生理解子线程非常有帮助。

5  应用效果分析

通过两学期图形编程语言辅助高级编程语言的教学实施,并且和通过传统教学法学习高级编程语言的班级进行对比,得出如下数据,如表1所示。

在学期初针对学生的程序设计的学习现状,发出调查问卷330份,回收有效调查309份。在结合图形化编程教学过程完成后的学期末,再发出调查问卷330份,回收有效调查311份。其中未结合图形化编程的问卷为156份,结合图形化编程的问卷为155份。

从表2的学习前后兴趣调查表,选择对编程感兴趣的学习者中,结合了图形化编程的学生(比例为40.645%)比未结合图形化编程的学生(比例为33.970%)高出了6.675%。

6  结  论

由于我国的中小学计算机教育在目前的高考选拔体制下长期不受重视,导致高中毕业生计算机基础相对薄弱,仅仅通过1到2门课程来提升大学生的计算机应用能力和编程能力,很难达到教学效果要求。但是目前大学教学计划紧凑,已无法再增加课时,只能在目前的课时中采用更加有效的方式和方法来改善。本项目探索了结合图形化编程工具来学习“Python程序设计”课程,并提取了图形化编程对应高级编程语言中的关键要素,来提升“Python程序设计”教学效果。经过教学实践,通过表1的数据对比,可以得出图形编程语言和高级编程语言的比较教学法可以提高学生的考试通过率。从表2的兴趣调查表数据中,图形化编程可以提高学生学习编程的兴趣。不足之处在于学生在学习了编程之后不管是否采用图形化编程都比没有学习前的兴趣比例有所下降,说明在整体程序课程的设计方面,依然有待提升的空间。

参考文献:

[1] 朱丽彬,金炳尧.Scratch程序設计课教学实践研究——基于体验学习圈的视角 [J].现代教育技术,2013(7):30-33.

[2] 谢竞博.C语言程序设计教学中的问题及改革建议 [J].重庆邮电大学学报(社会科学版),2008(2):137-140.

[3] 嵩天,黄天羽,礼欣.Python语言:程序设计课程教学改革的理想选择 [J].中国大学教学,2016(2):42-47.

作者简介:彭之军(1978.11—),男,汉族,湖北潜江人,讲师,高级工程师,硕士,研究方向:企业信息系统开发、人工智能技术。

猜你喜欢

比较教学法
大班幼儿版画比较教学法的尝试
“比较”与“类比”在大学化学教学中的应用
比较教学法在“算法分析与设计”课程教学中的应用
泰勒公式与泰勒级数的比较教学
比较教学法在“毛泽东思想和中国特色社会主义理论体系概论”课教学中的运用研究
比较教学法在《传感器》理论教学过程中的应用
预算会计模块化教学改革研究
试论比较教学法在“概论”课教学中的运用
比一比,看透薄膜后的秘密
浅谈中国现当代文学的比较教学法