分享

LOGO:儿童的计算机编程语言

 sduwalker 2010-09-18

LOGO及其发展历史

1.西蒙•派珀特的建构主义观——“在制作中学习”
西蒙•派珀特(Seymour Papert)于1968年发明了LOGO编程语言(LOGO programming language ),自20世纪70年代开始,他一直致力于通过LOGO语言帮助儿童成为他们自己“智力建设”的建设者。在其1980年出版的著作《头脑风暴:儿童、计算机及充满活力的创意》(Mindstorms: Children, Computers, and Powerful Ideas)中,他系统阐述了自己的建构主义观“在制作中学习”(Learning by makgin),在他看来,好的教育不是如何让老师教得更好,而是如如何提供充分的空间和机会让学习者去构建自己的知识体系。当孩子们在制作一些对自己有意义的作品时,如做小机器、编故事、编程序、或是作歌时,孩子们正处于学习知识的最佳状态。这与“做中学”(learning by doing)有着质的区别。西蒙•派珀特把计算机作为帮助学习者形成算法、解决问题并在此过程中学习和锻炼智力的强有力的工具。他倡导将LOGO作为年幼儿童的编程语言,让学习者在计算机上画图、编歌曲、玩游戏等活动并提倡儿童利用LOGO进行制作和解决问题。
他的思路是首先引导学习者形成制作某种几何图形的算法,然后利用计算机验证这些算法。其中的关键是学习者利用程序控制计算机做成某种动作,而在先前的程序教学、计算机辅助教学中,都是由计算机中实现编制好的程序来控制计算机。
2.LOGO教学环境的特点
西蒙•派珀特在描述自己最初设计LOGO的动机时说:“(LOGO是) 一种适合儿童的计算机语言,但并不意味着这是一种‘玩具’语言。相反,我希望其具有专业编程语言的功能,而且希望LOGO具有非数学专业人员容易入门的学习路径”。LOGO语言主要具有以下特点:
(1)生动有趣、直观易学
LOGO语言在具备多种优秀程序设计语言的特点的同时,更接近自然语言,具有生动的图形处理功能,能用直观的运动来体现编程的结果,让儿童在游戏中进行思考,在趣味中学习,尤其适合青少年学习者和初学者学习和使用。
在最初的LOGO教学环境中,西蒙•派珀特使用一个实物机器人乌龟,通过在计算机中输入“forward”(前进)和“Right”(向右转)两个指令以及在两个指令后输入不同数据来控制机器人乌龟在地面上爬行的距离和路线,例如输入“forward 100”,机器人乌龟就“前进100步”,而输入“Right 45”,机器人乌龟就顺时针转动45度。机器人乌龟还带有一支垂在地面上的笔以便留下其运动的轨迹,通过这些轨迹绘出的几何图形,学习者即可检验其形成的算法是否满足事先的设想。因此,这个计算器人乌龟被人们称为“LOGO海龟”(LOGO Turtle)。后来LOGO的设计人员将海龟搬到了计算机屏幕上,屏幕上的海龟照样可以根据学习者输入“forward”和“Right”两个指令做出动作,绘制出预期的几何图形。例如,画一个正方形
forward 50
right 90
forward 50
right 90
forward 50
right 90
forward 50
right 90

如果使用“repeat”命令,程序即可表示为:
repeat 4 [forward 50 right 90]
(2)LOGO支持词汇表的修改与扩充,允许递归调用(recursion),是一种交互式、模块化的编程环境
LOGO词汇表功能,允许学习者与计算机对话并修改与扩充词汇表,学习者在LOGO中不仅可使用其提供的上述基本命令,学习者还可以“教会”LOGO程序一些新的命令和动作,即界定新的语句,例如,如果学习者输入“square”(走正方形)这一指令,计算机会提示“I don't know how to square”(我不知道如何走正方形),则学习者可以通过下述语句告诉LOGO一个新的语句:
to square
repeat 4 [forward 50 right 90]
end
现在,当学习者输入“square”命令时,LOGO会像输入“repeat 4 [forward 50 right 90]”一样绘制出一个正方形,表明LOGO已经学会一个新语句语,“square”就进入LOGO的词汇表中。而学习者可以在执行新任务时调用进入词汇表的这些新词汇使其成为其他指令的一个模块,学术可以通过不断界定和调用这些模块,像搭积木一样来搭建逐渐复杂的程序,并完成任务。例如,在画图15-6所示的复杂的葵花图形(由36个顺时针相差10度的正方形叠加组成)时,学习者只需输入下面的语句即可画出“葵花”图:
repeat 36 [right 10 square]

而且,学习者同样可以利用下面的指令教会LOGO识别画葵花的新语句:
to flower
repeat 36 [right 10 square]
end
因此,在使用LOGO时,学习者的编程就是通过现有的词汇表中添加新的语句来实现的,这种学习跟学习者学习口语的情况很相似——新的词汇是用学习者已有的词汇来界定的。
(3)它是过程化的程序语言,包含了过程、参数、变量、循环等常用的编程功能
复杂的LOGO编程允许使用者使用参数、变量等程序功能,例如,学习者可以用“size” 这一变量来设定海龟运动的步数(即图形的大小),利用LOGO变量画出的复杂几何图形的语言如下:
to spiral :size :angle
if :size > 100 [stop]
forward :size
right :angle
spiral :size + 2 :angle
end

3.追踪LOGO运动的兴衰,理想分析其深远影响
西蒙•派珀特认为海龟作为儿童“思考的对象”(“object to think”)会对学习产生广泛的影响,LOGO的批评者通常担心儿童学习编程会使儿童产生“机械思维”。但西蒙•派珀特认为与此相反,如果不具备为机械设备编程的亲身体验的儿童才会形成机械思维,因为与接触传统的抽象理解知识的方式相比,将某件事情或问题解决的方法形成算法的尝试可以引导学习者形成更深层次的理解。他认为,如果儿童不能教会计算机做某件事情,那他就没有真正理解相关知识。在西蒙•派珀特设计了LOGO并在《头脑风暴》中介绍了相关原理后,很多不同版本的LOGO和“海龟几何学”方面的书籍相继涌现。20世纪70年代后期,随着个人计算机开始广泛使用, LOGO语言也开始迅速的传播,LOGO运动在20世纪80年代前后盛极一时,与LOGO相关的各类活动、有关的研究成为计算机应用教学领域的主流话题。直到1985年后才慢慢平静下来。
尽管现在人们对LOGO已经不再狂热,但LOGO的出现为教育界提供了一种应用信息技术的新视角,LOGO自身也在随着技术环境的变更和教学需求的变化不断发展变化,并以各种各样的方式存在中小学教学中并发挥着其独特的作用:
一方面,LOGO因循不同软硬件载体的特性产生了多样化的变型。20世纪80年代出现了动态海龟(Dynamic turtles,又称“蜘蛛”sprites),可通过程序实现动画效果(如小鸟振动翅膀等),被美国德州仪器公司的一些便携式计算机(Texas Instruments TI99/4)采用。后来开发出可在Windows环境下运行的“PC LOGO for Windows”:随着互联网的出现,LOGO又与Java语言联姻,开发出可在互联网上运行的绘图插件(A Turtle Graphics in Java, http://kaminari.scitec./java/logo/)。2003年推出的NETLOGO,是用JAVA语言编写的跨平台软件,可为学习者提供模拟自然现象和社会现象可编程的建模环境;2004年推出研究分散系统运行机制的建模环境StarLogo 2.1,StarLogo是一种特殊的Logo语言,容许并行地控制上千个小海龟,并且为这些小海龟设定不同的行为模式,使用StarLogo可以对许多现实世界中的复杂现象及其运动进行(如鸟群和蚂蚁的活动;交通的发展变化;市场经济运行)建模和观察研究;而“微世界”(Microworlds) 系列软件是加拿大的LOGO计算机系统有限公司(Logo Computer Systems Inc., 简称 LCSI,是一家在构建和提供建构主义教育技术环境方面居全球领先地位的公司)开发的新一代系列LOGO语言平台,通过引导和支持开展有关微观世界的研究性学习活动来发展学习者的问题解决能力和批判思维能力(详见www.)。可见,不管是LOGO的最初版本,还是其后续生发出的版本,其主要应用目的是引导学习者利用信息技术解决问题,其基本流程是:“思考问题-确定算法-编程实现-通过控制(仿真)机器人的动作外化问题解决结果-根据问题解决结果反思问题解决的思路与过程”。通过这一过程来激发学习者的深层次思维和对相关问题的深度研究,而利用信息技术激发和支持学习者的深层次思维未来最具潜力的信息技术应用方式之一。
另一方面,由于LOGO语言具有很强的直观性、生动性和生成性,而且便于学习者解决各种实际问题,大多数中小学机器人和机器人教学平台中都是在LOGO的基础上开发的,或者提供兼容LOGO语言的功能。例如,目前在全球影响深广,在国内也已经开始推广使用的乐高机器人(Lego,http://www.)就是在LOGO的基础上开发的。

西蒙•派珀特(Seymour Papert, 1928年-)简介
西蒙•派珀特1928年出生于南非,1954-1958年在英国剑桥大学从事数学研究,1958-1963年在瑞士日内瓦大学师从于皮亚杰并与其一起工作。这些经历促使其思考如何利用数学去理解和解释学习者的学习与思维。20世纪60年代初,他进入麻省理工学院并创办了人工智能实验室(Artificial Intelligence Laboratory),他是著名的麻省理工学院媒体实验室(Media Laboratory, MIT, http://www.media./)的创建者之一并一直在该实验室工作。他于1968年发明了LOGO编程语言(LOGO programming language )。 1970年与其同事合著了人工智能著作《认知器演算法》(Perceptrons).。西蒙•派珀特其他比较知名的代表作还有1980年出版的《头脑风暴:儿童、计算机及充满活力的创意》(Mindstorms: Children, Computers, and Powerful Ideas)和1992年的《儿童的机器:重新思考计算机时代的学校》,其最近的著作是1996年出版的《连接家庭:弥合数字代沟》(The Connected Family: Bridging the Digital Generation Gap)(http://www./)。他还与其学习者合作,为信息时代的儿童和家长创建了“妈妈媒体”网站(MaMaMedia,http://www./),通过提供在线咨询和不断更新的资源来帮助家长加强对信息时代儿童的监管和教育。
由于在多个领域的突出成就,西蒙•派珀特被人们尊称为数学家、计算机科学家、心理学家、教育家,他也是近代人工智能领域的先驱者之一。
西蒙•派珀特个人主页:http://www./
麻省理工学院媒体实验室对西蒙•派珀特的介绍:http://web.media./~papert/
维基百科中关于西蒙•派珀特的介绍:http://en./wiki/Seymour_Papert

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多