从Basic到Scratch
笔者在文中所讨论的教学用编程语言,只针对
高级语言,其按程序的执行方式可以分为两种:编译型、解释型。高级语言种类繁多,并且每年都有许多
新的语言诞生,但很多语言应用范围并不广,这里仅
谈论以下几种比较流行的高级语言。
基于过程的字符界面下的编程
依稀记得最早的教学语言应该是Basic,它的特点是简单。初学者很容易入门,但是由于它本身的缺点,有人认为用Basic不利于培养优良的编程习惯。Basic 是解释型编程语言,但是它的后续高版本VB,被做成了编译型语言。Pascal是编译型语言,语法严谨,层次分明,程序易写,可读性强,是第一个结构化编
程语言,它具有丰富的数据类型和简洁灵活的操作语句。发展到今天,Pascal计算机程序教程有很专业化的课程,并且越来越完善和严格化,所以有人把它称
为最好的教学语言。二十年前,大学学习DOS下编程时,入门所用语言就是Pascal。当时的教材不多。笔者毕业后刚从事信息技术教育时,中学课本中没有编
程的内容,几乎都是一些普及性的知识。自然而然地,
笔者在课外辅导学生们进行编程时,选择了Pascal编程语言。对于它,学生接受起来有一定的难度。该语
言本身虽然被人称为教学语言,但是兴趣小组的人数,在一个几百人的年级中只有十几个人。比如求1至100的和(如图1)。
这段短小的程序,笔者要讲好几节课,学生要记
住的东西很多。首先是关键字,记不住就没法编写,
然后是每一句的意思。也就是说,学生想明白循环语
句的用法,需要很长时间。如今,由于Delphi渐渐淡出了人们的视线,Pascal更是彻底沦为了纯教学语言。所以,有人认为应该直接教授C语言。C语言程序设计结构化,具有丰富的数据类型和灵活的控制结构,
运算符丰富、书写灵活、适应性广,拥有强大的指针
操作、丰富的函数库。因为功能太强大,所以也有人
认为它不适合初学者。笔者曾经教过几个四五年级的
孩子学习C语言编程,用的教材是《啊哈C!》,作者用风趣的语言把艰涩难懂的概念阐释得通俗易懂,孩
子们都能够看懂并学习下去。也就是说,C语言并不是不能作为教学语言,只要教师选取好内容,它可以
像Pascal一样作为教学语言。由于Pascal语法严谨,因此一些Pascal的源码,很容易修改成C的源码,教师可以比较容易地利用Pascal的教学资源来教授C语
言。Pascal和C都是编译型语言,执行效率比较高。
同样是求1至100的和,用C语言可以这样写(如下页图2)。
面向对象的编程
pascal语言面向对象吗
随着时代的发展,面向对象的编程出现了,面向
对象的语言运用愈来愈频繁,如Java。由于面向对象本身难度有点大,入门时很少有人直接讲授面向对象
的概念。学生大都是面向过程的编程入门后再去理解
面向对象的概念。
说到Windows下的编程,不能不提一下可视化编程。1991年4月,Visual Basic 1.0forWindows版本发布,这在当时引起了很大的轰动,许多专家把VB的出现当作是软件开发史上的一件具有划时代意义的事件。对于可视化编程来说,VB无疑是最容易入门的。后来出现了delphi、VC++。公认的可视化编程,比较容易入门的就是VB了。山东省现行泰山版初中教材中,程序设计部分用的是VB。有的教师是从其他专
业转过来教授信息技术课的,感觉困难很大。同样是
上面的程序,它的实现如图3所示。
它看上去比较短小,好像比Pascal和C容易理解。但实际上,因为要学习窗体控件之类的知识,还有就
是消息的传递,所以虽然结果看上去直观了,但是学
习起来难度并没有降低多少,甚至更大了。由于VB 隐藏了太多的东西,不利于整体理解程序的概念,所
以很多专业人员渐渐地转到了其他方面。虽然后来微
软把它做成了编译型语言,也增加了面向对象的功能,但现在用它的人也渐渐地少了。
图形化编程
时间转眼过去了十多年,程序设计语言也在飞速
发展,图形化编程工具的出现为初学者带来了福音。
其中的代表当属Scratch。用Scratch来引导小学生学习编程,结果他们很轻松地对照教材完成了任务,而
且很容易地加入了自己的创意。
例如,在C语言中常见的赋值语句i=i+1初学者就很难搞明白,但是在Scratch中比较容易理解了。用scr
atch编程求1至100的和,这样看上去比那些字符直观多了(如图4)。
可能在很多专业人员眼中,Scratch就是一个玩具,执行效率差,数据类型不如专业语言丰富,处理
问题不如专业语言灵活……然而就是这个玩具,可以
让孩子们把他们想象中的一些东西变为现实,最大限
度地激发了孩子们的学习热情。并且有很多非计算机
专业的创客,用这个工具实现了他们的创意。
Scratch作为程序教学的优点有很多,但这并不是
说传统的编程软件不好,它们的专业性很强,都是非
常优秀的编程工具。这里只是谈论中小学生学习编程
入门的工具。如果学生想更深入地学习计算机专业知识,还是需要去研究C语言甚至汇编语言,即使工作中用不到,这些传统语言的学习也有助于对计算机系
统本身的工作原理的深入学习。
计算机编程语言的不断发展,就是为了让人更容
易地使用计算机。随着技术的发展,计算机的速度越
来越快,人们越来越重视代码的可读性和重复使用性。除了一些专业系统,一般而言,对于执行的效率需求
退到了次要的位置。从汇编语言到C、Basic、Pascal 是一种飞跃。横空出世的Java语言以其颠覆式的面向对象的特性迅速获得了开发者的关注,C也摇身一变成为了C++,Pascal没变名字,但也增加了面向对象
的支持。VB、VC、Delphi等可视化编程又是一种进步。后来在细分的专业领域,人们又开发出了如PHP 之类的语言。Scratch等图形化编程软件的出现也是历史的必然。每一种新的语言的出现并没有完全淘汰掉
原有的语言,原有语言也在不断地吸收新的思想,也
在进步。只能说每一种语言都有它最适用的范围。Scratch也有很多缺点,这使得它在使用时很受限。最
起码现在无法完全替代传统的编程语言,它的应用领
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论