Scratch语言对程序设计入门教学的意义研究

2015-05-30 10:48朱贇
软件工程 2015年9期
关键词:教学探索程序设计

摘 要:程序设计语言的入门教学常常会遇到学生基础薄弱的问题,在课时不足的情况下导致教学的困难,或者因为例题艰深导致学生在入门前就已经丧失了学习兴趣。而Scratch程序因其对可视化操作、对结构化程序设计的支持,能带来程序设计的趣味性及可操作性。本文讨论了程序设计教学的困境,Scratch程序作为前导课程的实践以及可能会对教学带来的帮助。

关键词:教学探索;程序设计;Scratch

中图分类号:G642 文献标识码:A

1 引言(Introduction)

1.1 基础薄弱

目前,中小学的信息化教育内容参差不齐,有的学校可能会有程序设计的教学,有的学校则以Word、Excel操作为主,对程序设计的入门不重视[1]。很多刚进入大学的学生在程序化的思维方式方面还比较弱,要入高级程序设计语言的门还有很长的路要走。

1.2 课时较少

通常程序设计入门以C语言或C++语言为教学内容。作为一种实践性较强的语言,在一个学期中要完成程序设计概念和语法的教学,又要在有限的时间里完成编程调试训练。如果学生没有一定的基础和自学能力,就很难适应这种节奏。

1.3 抽象带来的问题

语法、算法等抽象的教学内容将降低学生的学习兴趣,而学习兴趣对教授与学习两方面都非常重要。有的学生不能通过考核经常就跌入补考和重修的循环。程序设计入门作为核心课程,这个课程出了问题将给计算机专业的后续课程带来很多不好的影响,比如本专业学生对程序设计和其他专业技能缺乏信心以及实践能力。

2 程序设计课程的前导课程(Leading program of

programming classes)

学生在程序设计课程中,一方面要努力熟悉算法抽象、程序控制等一些全新的概念,一方面会遇到很多语法错误,必须要学习如何调试程序,理论加上实践可能都是前所未有的挑战。前导课程应带来有趣味的内容,为学生补充各种必要的基础概念,如抽象、逻辑、流程等,告诉学生如何在现实世界和计算机世界之间建立起一座桥梁。这样的课程会对程序设计教学有很大帮助。

3 Scratch简介(Introduction of scratch)

Scratch是美国麻省理工学院(MIT)媒体实验室开发的一套“程序语言”,利用这个软件可以轻轻松松地创造出互动式故事、动画、游戏、音乐等令人惊叹的作品,是一套简单又有趣的软件[2]。

Scratch采用拖曳、组合的方式来设计程序。它是可视化的程序语言,具有所见即所得的功能。设计Scratch作品的过程是学生学习用计算机进行思考、分析、解决问题的过程,还能进行团队建设方面的实践。

Scratch把程序命令归为几大部分:包括动作、外观、声音、画笔、变量、事件、控制等,并用颜色来分类。学生只需要了解各部分模块的功能,按照自己的想法拖到脚本窗口,并按一定规则堆积在一起,最后在浏览窗口就能根据命令脚本直接运行。通过可视化操作学生可以搭建起自己的程序,轻易地把自己的想法表达为计算机的程序。在这个抽象的过程中不用过分操心语法错误等问题。

图1为Scratch设计界面,左上为程序运行场景,左下为程序中设计的主体对象。一个项目可以有多个动画主体(可以是动物人物或其他一些对象),中间是可视化程序模块,右边是程序窗口,利用鼠标可以把中间的程序模块拖入右边的程序窗口,经过修改参数、安排程序模块的顺序和嵌套等工作,就完成了程序编制,接着程序可以在浏览器中执行。

4 Scratch对程序设计教学的支持(Supports to

programming classes)[3]

4.1 抽象

现实世界的问题如何抽象为计算机世界的模型?第一步可以从学习抽象为计算机里的对象开始。我们把需要处理的内容抽象为Scratch的动画主体,比如一个人物或一个物体。动画主体可以具有各种行为,比如在平面中移动。如图2是一个负责动作的程序模块,能控制动画主体平移到坐标(100,200)处,其中白色的部分为可以修改的坐标值。

4.2 结构化程序

Scratch具有可以拖曳的结构化模块。设计时候只需要把模块拖入场景中,就可以实现循环或选择的程序结构,并且能实现循环和选择的嵌套,制作需要的程序流程。图3演示了循环结构的程序模块,repeat后面的循环次数可以修改,可以看到循环程序模块和循环体中的其他程序模块的颜色是不同的,它们属于不同的功能分类。

Fig.4 Block to control choosing

其中使用的橙色模块i是Scratch的变量模块。Scratch程序能够使用数字和字符串变量。变量可用来控制某个图形的大小或个数,变量还能具有不同的作用域。由此我们向学生展示了变量存储值、变量值影响程序结果以及变量的作用域等概念。

Scratch具有列表的结构,列表可以存储数值或字符串。列表可以具有作用域,可以获得列表的长度。列表项具有添加、删除、插入等操作,并能通过下标获取特定的列表项。列表可以帮助学生学习数组的概念。

Scratch的结构化程序设计是可视化的,调试简单,能帮助学生把精力集中在程序结构上,而不需要为语法错误分心。

4.3 面向对象

Scratch能够设置动画主体,可以视为对象模块。不同的动画主体具有独特的属性,可操作自己的变量,能完成独特的任务。在后续课程中这些概念很容易引申为对象及其属性和行为的概念,这是面向对象程序设计的基础。图5为迷宫程序的设计,其中球体是一个对象,而终点方块的是另一个对象。我们可以利用键盘移动球体,当碰到方块对象时后者能做出赢得游戏的反应。球体对象在移动过程中碰到障碍则会产生反弹。

5 Scratch作为程序设计教学前导课程的实践

(Experiments in programming classes)

在参考文献[4]中提到的学校已经尝试使用Scratch平台作为计算机专业课程的前导课程。学校把学生分为两部分,一部分基础薄弱的学生在第一个学期先参加Scratch课程,到第二个学期才开始学习高级程序设计语言。而另一部分基础良好的学生则在第一个学期就开始学习高级程序设计。

最终学过Scratch的学生,尽管基础薄弱,他们的最终成绩在通过率和平均成绩方面都超过基础良好的学生,并且在精通程序、喜爱专业课程、参与专业实践等方面都有更好的表现。这些学生专业成绩更好,对专业更热爱,对程序设计更有信心。

6 结论(Conclusion)

程序设计是一种具有创造性的工作,它具有一定的抽象性,而且需要使用数学的方法去描述一些问题。这使得在语言程序设计的课程教学中,必须打破原有的教学模式和知识体系[5]。我们探索不同的方式帮助学生入门,Scratch可能是一个良好的平台,它的可视化特性,对结构化程序设计的支持,都能帮助学生在实践中培养计算机思维方式,为程序设计入门打下坚实基础,为后续课程的挑战做好准备。另一方面程序设计教学的困境也要需要在考核模式方面进行改革,激励学生重视创新和实践。

参考文献(References)

[1] 张传科.如何让抽象的设计变得精彩——LOGO程序设计与

Scratch[J].中国信息技术教育,2010,(5):29-31.

[2] 陈捷.Scratch语言简介及应用[J].电脑知识与技术,2009,5(26):

7439-7440.

[3] 朱贇,郑晓妹.C语言程序设计教学前导课程研究[J].软件导

刊,2014,13(4):160-162.

[4] M.Rizvi,T.Humphries,D.Major,M.Jones,and H.Lauzun.A

NewCS0 Course for At-Risk Majors[C].The Proceedings of

the 24th IEEE-CS Conference on Software Engineering

Education and Training,Honolulu,Hawaii,May 2011: 314-323.

[5] 刘兴林.大学工科C语言程序设计教学探索与实践——以五

邑大学为例[J].软件工程师,2014,17(5):39-40.

作者简介:

朱 贇(1978-),女,硕士,讲师.研究领域:计算机应用.

猜你喜欢
教学探索程序设计
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧
高职高专院校C语言程序设计教学改革探索
基于素质教育视角下的民族高校逻辑学教学探索与实践
高中数学课堂中德育溶合的探索
高分子材料与工程专业综合实验的教学探索
PLC梯形图程序设计技巧及应用