用Alice学编程(原书第2版)
基本信息
- 作者: (美)Wanda P.Dann Stephen Cooper Randy Pausch [作译者介绍]
- 译者: 付永刚
- 丛书名: 数字媒体专业规划教材
- 出版社:机械工业出版社
- ISBN:9787111274629
- 上架时间:2009-7-10
- 出版日期:2009 年7月
- 开本:16开
- 页码:265
- 版次:2-1
- 所属分类:
计算机 > 软件与程序设计 > 综合 > 高级程序语言设计
计算机 > 软件工程及软件方法学 > 面向对象
内容简介回到顶部↑
书籍
计算机书籍
本书是一种全新的面向对象的编程方式的程序设计课程的入门教材。主要内容包括:程序的设计与实现、内置函数与表达式、事件与事件处理、函数和if/else语句、循环、递归、列表、变量等。在各章的后面都有提示与技巧、小结及练习,让学生在实际操作中掌握编程的技巧。.
书中包含大量丰富生动的示例、练习,很容易激发学生的兴趣。本书可作为大学计算机、数字媒体、动漫等专业学生程序设计课程的入门教材,也可供对编程感兴趣的其他读者参考。..
本书介绍的alice系统将以一种全新的、更有乐趣的方式教你学习编程,避免了传统编程方式中程序语言的语法、编译连接时的错误处理等令人困惑的一系列问题。
alice系统是面向对象编程教学的一个突破:在alice中,所有的对象都是直观可见的,它们被具体化为三维的人、动物、家具等。这些对象的状态可以通过调用如“向前走1米”或“向左转1/4圈”这样的方法来改变的,这些方法对学生来说都是简单易懂的。计算的过程是以动画的方式,通过改变对象的状态来表现的,很难想出比这种表达概念和计算过程更自然的表达方式了。alice的优点之一就是它把抽象的概念用形象的方式呈现给初学编程的人。...
计算机书籍
本书是一种全新的面向对象的编程方式的程序设计课程的入门教材。主要内容包括:程序的设计与实现、内置函数与表达式、事件与事件处理、函数和if/else语句、循环、递归、列表、变量等。在各章的后面都有提示与技巧、小结及练习,让学生在实际操作中掌握编程的技巧。.
书中包含大量丰富生动的示例、练习,很容易激发学生的兴趣。本书可作为大学计算机、数字媒体、动漫等专业学生程序设计课程的入门教材,也可供对编程感兴趣的其他读者参考。..
本书介绍的alice系统将以一种全新的、更有乐趣的方式教你学习编程,避免了传统编程方式中程序语言的语法、编译连接时的错误处理等令人困惑的一系列问题。
alice系统是面向对象编程教学的一个突破:在alice中,所有的对象都是直观可见的,它们被具体化为三维的人、动物、家具等。这些对象的状态可以通过调用如“向前走1米”或“向左转1/4圈”这样的方法来改变的,这些方法对学生来说都是简单易懂的。计算的过程是以动画的方式,通过改变对象的状态来表现的,很难想出比这种表达概念和计算过程更自然的表达方式了。alice的优点之一就是它把抽象的概念用形象的方式呈现给初学编程的人。...
作译者回到顶部↑
本书提供作译者介绍
Wanda P.Dann是Carnegie Mellon大学的副教授和Alice项目的负责人。她的研究领域是:程序及程序设计语言的可视化、程序设计入门课程的创新性方法。.
Stephen Cooper是Saint Joseph大学数学和计算机科学系的副教授。由于在Alice项目上的工作,他获得了该校历史上最大的国家自然科学基金资助项目。..
Randy Pausch是Carnegie Mellon大学计算机科学、人机交互和设计系的教授,同时也是CarnegieMellon大学娱乐技术中心的创始人之一,并且是Google、Walt Disney Imagineering和Xerox .. << 查看详细
Stephen Cooper是Saint Joseph大学数学和计算机科学系的副教授。由于在Alice项目上的工作,他获得了该校历史上最大的国家自然科学基金资助项目。..
Randy Pausch是Carnegie Mellon大学计算机科学、人机交互和设计系的教授,同时也是CarnegieMellon大学娱乐技术中心的创始人之一,并且是Google、Walt Disney Imagineering和Xerox .. << 查看详细
目录回到顶部↑
译者序.
序
前言
致谢
第一部分 alice简介
第1章 alice入门 2
1.1 alice简介 2
1.2 alice中的概念 6
提示与技巧1 特效:文本与二维图像 12
小结 14
练习 15
第2章 程序的设计与实现 17
2.1 剧情与故事板 17
2.2 第一个程序 22
提示与技巧2 方位指令与运动指令 33
小结 41
练习 43
第3章 编程:把代码片段集中到一起 45
3.1 内置函数与表达式 45
3.2 简单的控制结构 49
序
前言
致谢
第一部分 alice简介
第1章 alice入门 2
1.1 alice简介 2
1.2 alice中的概念 6
提示与技巧1 特效:文本与二维图像 12
小结 14
练习 15
第2章 程序的设计与实现 17
2.1 剧情与故事板 17
2.2 第一个程序 22
提示与技巧2 方位指令与运动指令 33
小结 41
练习 43
第3章 编程:把代码片段集中到一起 45
3.1 内置函数与表达式 45
3.2 简单的控制结构 49
译者序回到顶部↑
2001年,我由于师从戴国忠老师学习人机交互而了解到Randy Pausch——Alice项目的负责人,同时也是CMU娱乐技术中心(ETC)和Stage3实验室的创始人之一,他领导的团队致力于创新的三维交互技术及其应用研究。十余年来,Alice从最初的虚拟场景快速原型工具,逐步演变成为了一个面向程序设计入门课程的教育软件。在美国大概有300多所大学采用这种简单有趣的方法来讲授程序设计中的基本概念,甚至有不少高中也在用它进行初级的逻辑思维训炼。在其他国家,越来越多的教育机构也开始使用Alice开设程序设计入门的课程。.
我一直觉得将Alice引入到现在的教学体系中是一件很有意义的事情。在成为一名教师后,这种愿望更加强烈。2006年和2007年,我尝试着在多媒体技术基础课程的实验中,简短地介绍Alice。有趣的是,我所执教的班级女生偏多,学生对Alice表现出了极大的兴趣。2008年,我尝试着给全院的大一新生开设程序设计基础的课程,借鉴国外的教学内容和方法,用Alice来讲解概念,而不是某种计算机语言。令人鼓舞的是,在每周2个小时的上课时间内,绝大部分学生都能乐在其中,全神贯注地创作自己的“作品”。接下来的学期,当他们继续学习C和C++语言时,接受程度和学习效果都有很大提升。
从我个人的一点经验来看,把Alice纳入现有信息类专业的课程体系中,最佳的时间是第一学期,因为它既能调动学生的学习积极性,又能避免由于语法和开发环境的原因而影响对核心概念的学习。在讲授方式上,我不太赞同对象早行(object-early)和对象先行(objectfirst)的观点,而觉得应该采用Y. Daniel Liang教授在《Introduction to Programming Using C++》一书中所用的基础先行(fundamental-first)的方法,即先介绍程序设计的基本概念和方法,如控制语句、循环、函数、数组以及逐步细化的设计方法等,然后再介绍面向对象的设计方法。程序设计的本质实际上是问题求解,不具备基本的问题分析和程序设计能力的学生是不可能学好面向对象的设计方法的。
除了能够纳入现有信息类课程体系中以外, Alice还可作为其他专业的学生普及计算机知识的教学工具,甚至是为中学生开设的一门计算机课程。
关于Alice软件的几点说明..
Alice并不是一个面向对象的编程语言,而是用面向对象的语言(Java)开发的交互式虚拟场景创作工具。Alice并不能用来讲解面向对象设计中的核心概念:封装、继承和多态性。Alice并没有实现严格意义上的封装,即没有访问控制;它所实现的继承也很有限,父类的改变并不会影响子类;它更没有实现多态性。即便如此,Alice依然是一个优秀的讲解程序设计和面向对象概念的教学软件,它是一种把程序可视化的方法。Alice甚至直接提供了数组可视化对象来形象地表现数组的操作原理。Alice还可以作为一个动画或者游戏的快速原型工具,基于丰富的模型库,用鼠标拖拽就可以迅速表达设计创意和程序过程。
关于翻译风格
本书保留相当分量的英文术语,经常中英并陈。一方面,对于一些关键的程序设计概念,如函数、递归、数组、类等词语保留英文可以方便学生转向某种程序设计语言(如C、C++、Java)时不至于感到陌生;另一方面,由于Alice软件目前还没有中文版,其用户界面和代码中皆用英文表述,因此保留英文词语以方便学生查阅。本书还有诸多地方采用这种方式,意在告诉读者,译者深知自己的不足与局限,惟恐造成读者对中译名词的误解和不习惯,所以附上原文。
为保证插图质量,文中绝大部分插图都用Alice 2.0实际操作后截图得到,同时修正了原文中的几个错误。
最后,我要特别感谢我的学生白浩,他完成了本书初稿并验证了每章的练习和工程,为了让译稿更加符合中国人的阅读习惯,他花费了很大精力反复校对和推敲。我还要感谢我去年刚刚执教过的学生:张贞艳、张玢玢、朱枝红和丁伟峰,他们重新制作了全书的插图。
付永刚
2009年6月8日
北京语言大学...
我一直觉得将Alice引入到现在的教学体系中是一件很有意义的事情。在成为一名教师后,这种愿望更加强烈。2006年和2007年,我尝试着在多媒体技术基础课程的实验中,简短地介绍Alice。有趣的是,我所执教的班级女生偏多,学生对Alice表现出了极大的兴趣。2008年,我尝试着给全院的大一新生开设程序设计基础的课程,借鉴国外的教学内容和方法,用Alice来讲解概念,而不是某种计算机语言。令人鼓舞的是,在每周2个小时的上课时间内,绝大部分学生都能乐在其中,全神贯注地创作自己的“作品”。接下来的学期,当他们继续学习C和C++语言时,接受程度和学习效果都有很大提升。
从我个人的一点经验来看,把Alice纳入现有信息类专业的课程体系中,最佳的时间是第一学期,因为它既能调动学生的学习积极性,又能避免由于语法和开发环境的原因而影响对核心概念的学习。在讲授方式上,我不太赞同对象早行(object-early)和对象先行(objectfirst)的观点,而觉得应该采用Y. Daniel Liang教授在《Introduction to Programming Using C++》一书中所用的基础先行(fundamental-first)的方法,即先介绍程序设计的基本概念和方法,如控制语句、循环、函数、数组以及逐步细化的设计方法等,然后再介绍面向对象的设计方法。程序设计的本质实际上是问题求解,不具备基本的问题分析和程序设计能力的学生是不可能学好面向对象的设计方法的。
除了能够纳入现有信息类课程体系中以外, Alice还可作为其他专业的学生普及计算机知识的教学工具,甚至是为中学生开设的一门计算机课程。
关于Alice软件的几点说明..
Alice并不是一个面向对象的编程语言,而是用面向对象的语言(Java)开发的交互式虚拟场景创作工具。Alice并不能用来讲解面向对象设计中的核心概念:封装、继承和多态性。Alice并没有实现严格意义上的封装,即没有访问控制;它所实现的继承也很有限,父类的改变并不会影响子类;它更没有实现多态性。即便如此,Alice依然是一个优秀的讲解程序设计和面向对象概念的教学软件,它是一种把程序可视化的方法。Alice甚至直接提供了数组可视化对象来形象地表现数组的操作原理。Alice还可以作为一个动画或者游戏的快速原型工具,基于丰富的模型库,用鼠标拖拽就可以迅速表达设计创意和程序过程。
关于翻译风格
本书保留相当分量的英文术语,经常中英并陈。一方面,对于一些关键的程序设计概念,如函数、递归、数组、类等词语保留英文可以方便学生转向某种程序设计语言(如C、C++、Java)时不至于感到陌生;另一方面,由于Alice软件目前还没有中文版,其用户界面和代码中皆用英文表述,因此保留英文词语以方便学生查阅。本书还有诸多地方采用这种方式,意在告诉读者,译者深知自己的不足与局限,惟恐造成读者对中译名词的误解和不习惯,所以附上原文。
为保证插图质量,文中绝大部分插图都用Alice 2.0实际操作后截图得到,同时修正了原文中的几个错误。
最后,我要特别感谢我的学生白浩,他完成了本书初稿并验证了每章的练习和工程,为了让译稿更加符合中国人的阅读习惯,他花费了很大精力反复校对和推敲。我还要感谢我去年刚刚执教过的学生:张贞艳、张玢玢、朱枝红和丁伟峰,他们重新制作了全书的插图。
付永刚
2009年6月8日
北京语言大学...
前言回到顶部↑
“一本书如果没有插图和对话还有什么用呢?”Alice想到。.
本书及配套的Alice系统采用一种创新的方式来介绍程序设计入门课程。过去的30年里,这些课程对学生来说是相当头疼的,但其教学方式却几乎没有创新。我们用这种全新的教学方式的目标就是让传统的编程概念更容易讲解和接受。Alice系统是免费的,可以在网站www.alice.org下载。
程序设计课程应该教些什么
许多人都讨论过这个问题,大部分人都认为学生通过这门课程应该学到以下内容:
·算法式的思维及表达方式:能够读写一种正式的编程语言。
·抽象能力:能简单表达复杂的概念,并有逻辑性地分解一个问题的能力。
·尽善尽美:认识到虽然解决一个问题有多种方式,但肯定有一些是更好的。
我们的教学方式有什么不同
我们的教学方式是让学生创作电影和游戏,通过这种方式让程序中“对象”的概念变为切实可见的三维物体。在Alice中,屏幕上的物体构成了一个微型的三维世界。学生用鼠标在编辑器中拖放程序的组成元素(if/then语句、循环、变量等)来编程,能避免语法错误。Alice是一个功能强大的现代化编程环境,支持方法、函数、变量、参数、递归、数组和事件。我们用这个强大的可视化环境来辅助“对象先行”(object-first)或“对象早行”(object-early)的教学方式(在ACM和IEEE2001年关于计算机专业课表的研究报告中有述)。在Alice中,每一个对象都是一个实实在在可见的物体!我们在本书开始的章节中就会介绍对象的概念。
我们认为,在程序设计入门课程中必须解决以下四个问题:
1) 编程中零散易错的规则,尤其是语法。Alice的编辑器根除了让学生头疼的语法错误问题,它让学生建立起对语法的直观认识,每当拖拽一个程序元素到编辑器中时,所有有效的匹配位置都会高亮显示。
2) 程序运行时不能看到计算结果。虽然文本式的调试器和变量监视器比没有它们要好一点,但在Alice中,程序中的状态在本质上就都是可见的。从某种意义上说,我们是把学生的心理负担从认知系统转移到了感知系统。对学生来说看到一个物体向后运动而不是向前运动,比观察一个“sum”变量是减少而不是增加要容易得多。Alice让学生可以看到动画程序怎样运行,这样就能在程序结构与表现的动画之间建立一种简单易懂的关系。现在的学生的生活中充满了交互式的三维图形,我们希望直接利用这一点,而不是强加给他们这种学习方式。
3) 缺乏编程动力。多数学生学习程序设计的入门课程仅仅因为学校的要求。没有什么能比一个好老师更能激发学生的动力,但一个好的学习环境的确会有很大帮助。对使用Alice的学生的一项调查研究表明,相比那些用传统方式学习的学生而言,使用Alice的学生会去做更多的练习,也倾向于去学习第2门程序设计课程。关于Alice的早期版本我们收到最多的意见就是希望能分享他们的成果,因此我们已经添加了在网页内运行Alice的新功能,以便学生把程序发布到他们自己的网页上。在使用Alice之后所有学生的编程动力都有所提高,尤其是在女同学身上我们看到了非常令人鼓舞的结果。
4) 理解复合逻辑与学习设计技巧的困难。Alice环境当然鼓励你去创建小规模的方法和函数。更重要的是,Alice把程序设计类比为电影创作的过程,这样,我们可以借鉴其中故事板的概念,而学生们可以把它理解为一个设计好的电影制作过程。我们用简单的草图和屏幕截图来说明程序设计技巧,而建议使用文本式的故事板,逐步细化最终设计出程序的伪代码。
如何使用本书
当然,使用本书的老师可以选择最适合自己的方式来授课。下面列举了我们能想到的四种方式:
作为短期或长期程序设计课程唯一的教科书。这种方式的结果是学生在期末时能够写出相当复杂的程序(如300行)。这门课程可能适合那些非计算机专业的学生,只是想学习程序设计而不需要学习一种具体的程序语言。它也可以作为准备选择计算机专业但之前缺乏编程经验的学生的预备课程。在一个国家自然基金项目(NSF-0126833)研究中我们发现,那些没有或有很少编程经验的人直接去学习第一门程序设计课程(如CS1)时都会有相当的受挫感,而以Alice作为第一门程序设计课程的预备课程(pre-CS1)时,这种情形就有很大改善。
作为传统的“程序设计入门”课程的第一部分,例如CS1。Seymour Papert开发的Logo语言和Rich Pattis开发的Karel the Robot系统都采用了这种教学方式,它们给了我们很大启发。不同的是,Alice的功能很强大,这使它可以作为几个学期的学习工具(如Carnegie Mellon大学计算机专业的高年级学生通常会用Alice写出3 000行左右的程序)。然而,许多程序设计的入门课程不仅要介绍程序设计的概念,同时还要学生用传统的编程语言如Java写程序。而先学习Alice,学生就可以先熟悉程序设计中的基本概念,然后当过渡到一门具体程序语言中详细的语法规则时,他们就能很快掌握。Alice中也可以用类似Java语法的方式显示代码,如图P-1-1所示。
作为“计算机文化”课程中程序设计的部分。在许多学校,计算机文化课程都是向非计算机专业的学生很宽泛地介绍关于计算机或信息技术的内容。大部分这类课程都去掉了程序设计的部分,更像是去学习电子表格和字处理等办公自动化软件的实验课。Alice作为计算机文化课程中程序设计的部分有较大潜质。
作为高中“程序设计入门”课程的教材。在高中,有趣的能激发学生学习动力的环境是老师最好的朋友,在这里Alice有更大的发展空间。这本书可以作为某门课的一部分,或者是为高考而作计算机类课程的预备学习。
本书及配套的Alice系统采用一种创新的方式来介绍程序设计入门课程。过去的30年里,这些课程对学生来说是相当头疼的,但其教学方式却几乎没有创新。我们用这种全新的教学方式的目标就是让传统的编程概念更容易讲解和接受。Alice系统是免费的,可以在网站www.alice.org下载。
程序设计课程应该教些什么
许多人都讨论过这个问题,大部分人都认为学生通过这门课程应该学到以下内容:
·算法式的思维及表达方式:能够读写一种正式的编程语言。
·抽象能力:能简单表达复杂的概念,并有逻辑性地分解一个问题的能力。
·尽善尽美:认识到虽然解决一个问题有多种方式,但肯定有一些是更好的。
我们的教学方式有什么不同
我们的教学方式是让学生创作电影和游戏,通过这种方式让程序中“对象”的概念变为切实可见的三维物体。在Alice中,屏幕上的物体构成了一个微型的三维世界。学生用鼠标在编辑器中拖放程序的组成元素(if/then语句、循环、变量等)来编程,能避免语法错误。Alice是一个功能强大的现代化编程环境,支持方法、函数、变量、参数、递归、数组和事件。我们用这个强大的可视化环境来辅助“对象先行”(object-first)或“对象早行”(object-early)的教学方式(在ACM和IEEE2001年关于计算机专业课表的研究报告中有述)。在Alice中,每一个对象都是一个实实在在可见的物体!我们在本书开始的章节中就会介绍对象的概念。
我们认为,在程序设计入门课程中必须解决以下四个问题:
1) 编程中零散易错的规则,尤其是语法。Alice的编辑器根除了让学生头疼的语法错误问题,它让学生建立起对语法的直观认识,每当拖拽一个程序元素到编辑器中时,所有有效的匹配位置都会高亮显示。
2) 程序运行时不能看到计算结果。虽然文本式的调试器和变量监视器比没有它们要好一点,但在Alice中,程序中的状态在本质上就都是可见的。从某种意义上说,我们是把学生的心理负担从认知系统转移到了感知系统。对学生来说看到一个物体向后运动而不是向前运动,比观察一个“sum”变量是减少而不是增加要容易得多。Alice让学生可以看到动画程序怎样运行,这样就能在程序结构与表现的动画之间建立一种简单易懂的关系。现在的学生的生活中充满了交互式的三维图形,我们希望直接利用这一点,而不是强加给他们这种学习方式。
3) 缺乏编程动力。多数学生学习程序设计的入门课程仅仅因为学校的要求。没有什么能比一个好老师更能激发学生的动力,但一个好的学习环境的确会有很大帮助。对使用Alice的学生的一项调查研究表明,相比那些用传统方式学习的学生而言,使用Alice的学生会去做更多的练习,也倾向于去学习第2门程序设计课程。关于Alice的早期版本我们收到最多的意见就是希望能分享他们的成果,因此我们已经添加了在网页内运行Alice的新功能,以便学生把程序发布到他们自己的网页上。在使用Alice之后所有学生的编程动力都有所提高,尤其是在女同学身上我们看到了非常令人鼓舞的结果。
4) 理解复合逻辑与学习设计技巧的困难。Alice环境当然鼓励你去创建小规模的方法和函数。更重要的是,Alice把程序设计类比为电影创作的过程,这样,我们可以借鉴其中故事板的概念,而学生们可以把它理解为一个设计好的电影制作过程。我们用简单的草图和屏幕截图来说明程序设计技巧,而建议使用文本式的故事板,逐步细化最终设计出程序的伪代码。
如何使用本书
当然,使用本书的老师可以选择最适合自己的方式来授课。下面列举了我们能想到的四种方式:
作为短期或长期程序设计课程唯一的教科书。这种方式的结果是学生在期末时能够写出相当复杂的程序(如300行)。这门课程可能适合那些非计算机专业的学生,只是想学习程序设计而不需要学习一种具体的程序语言。它也可以作为准备选择计算机专业但之前缺乏编程经验的学生的预备课程。在一个国家自然基金项目(NSF-0126833)研究中我们发现,那些没有或有很少编程经验的人直接去学习第一门程序设计课程(如CS1)时都会有相当的受挫感,而以Alice作为第一门程序设计课程的预备课程(pre-CS1)时,这种情形就有很大改善。
作为传统的“程序设计入门”课程的第一部分,例如CS1。Seymour Papert开发的Logo语言和Rich Pattis开发的Karel the Robot系统都采用了这种教学方式,它们给了我们很大启发。不同的是,Alice的功能很强大,这使它可以作为几个学期的学习工具(如Carnegie Mellon大学计算机专业的高年级学生通常会用Alice写出3 000行左右的程序)。然而,许多程序设计的入门课程不仅要介绍程序设计的概念,同时还要学生用传统的编程语言如Java写程序。而先学习Alice,学生就可以先熟悉程序设计中的基本概念,然后当过渡到一门具体程序语言中详细的语法规则时,他们就能很快掌握。Alice中也可以用类似Java语法的方式显示代码,如图P-1-1所示。
作为“计算机文化”课程中程序设计的部分。在许多学校,计算机文化课程都是向非计算机专业的学生很宽泛地介绍关于计算机或信息技术的内容。大部分这类课程都去掉了程序设计的部分,更像是去学习电子表格和字处理等办公自动化软件的实验课。Alice作为计算机文化课程中程序设计的部分有较大潜质。
作为高中“程序设计入门”课程的教材。在高中,有趣的能激发学生学习动力的环境是老师最好的朋友,在这里Alice有更大的发展空间。这本书可以作为某门课的一部分,或者是为高考而作计算机类课程的预备学习。
序言回到顶部↑
编程的入门课程一直都是让学生最头痛的,最近又有把面向对象的编程放在第一学期的趋势,这更是加重了学生的学习负担。近期的调查表明,选择计算机专业的学生人数下降了23%,这真是让人担忧。我们不该让学生在刚刚接触编程时就给他们不必要的打击。.
Alice系统是面向对象编程教学的一个突破:在Alice中,所有的对象都是直观可见的,它们被具体化为三维的人、动物、家具等。这些对象的状态可以通过调用诸如“向前走1米”或“向左转1/4圈”这样的方法来改变,这些方法对学生来说都是简单易懂的。计算的过程以动画的方式,通过改变对象的状态来表现,在表达概念和计算过程时很难想出比这种方法更自然的表达方式了。Alice的优点之一就是能把抽象的概念用形象的方式呈现给初学编程的人。
老师们都知道,如果学生没有学习动力,任何教学方法和教学技巧都将毫无用处,只有学生有内在动力时才能达到最好的效果。虽然可以采用奖励和惩罚的方式(如分数)来激发学习动力,但Alice使用的却是一种更直接的激励方式:它用讲故事的方式来讲授程序设计,这对所有人都很有吸引力,就像在洛杉矶每个人都会说:“人人都想当导演”。..
以三维图形作为创作手段,Alice系统能让那些玩游戏和看皮克斯动画片长大的年轻人很容易接受它,把计算机程序设计比喻成讲故事的过程,是少数几个能让大一新生迅速理解程序设计概念的方式之一。
配合一些高级概念,如直观可见的对象,同时受到Squeak系统中编辑器的启发,Alice设计了一个拖拽式的用户界面,使用它学生可以在屏幕上拖动程序中的组件而不会出现语法错误。
有些人说Alice是近20年来面向计算机入门课程的最有创新性的系统之一,而且它来得正是时候!
Alan Kay
Kay博士是最早研究面向对象编程、个人计算和图形用户界面的先驱之一。他曾获得美国国家工程院颁发的德雷珀奖(与Robert Taylor、Butler Lampson和Charles Thacker一同获奖)、美国计算机协会颁发的图灵奖和日本稻盛基金会颁发的京都奖。...
Alice系统是面向对象编程教学的一个突破:在Alice中,所有的对象都是直观可见的,它们被具体化为三维的人、动物、家具等。这些对象的状态可以通过调用诸如“向前走1米”或“向左转1/4圈”这样的方法来改变,这些方法对学生来说都是简单易懂的。计算的过程以动画的方式,通过改变对象的状态来表现,在表达概念和计算过程时很难想出比这种方法更自然的表达方式了。Alice的优点之一就是能把抽象的概念用形象的方式呈现给初学编程的人。
老师们都知道,如果学生没有学习动力,任何教学方法和教学技巧都将毫无用处,只有学生有内在动力时才能达到最好的效果。虽然可以采用奖励和惩罚的方式(如分数)来激发学习动力,但Alice使用的却是一种更直接的激励方式:它用讲故事的方式来讲授程序设计,这对所有人都很有吸引力,就像在洛杉矶每个人都会说:“人人都想当导演”。..
以三维图形作为创作手段,Alice系统能让那些玩游戏和看皮克斯动画片长大的年轻人很容易接受它,把计算机程序设计比喻成讲故事的过程,是少数几个能让大一新生迅速理解程序设计概念的方式之一。
配合一些高级概念,如直观可见的对象,同时受到Squeak系统中编辑器的启发,Alice设计了一个拖拽式的用户界面,使用它学生可以在屏幕上拖动程序中的组件而不会出现语法错误。
有些人说Alice是近20年来面向计算机入门课程的最有创新性的系统之一,而且它来得正是时候!
Alan Kay
Kay博士是最早研究面向对象编程、个人计算和图形用户界面的先驱之一。他曾获得美国国家工程院颁发的德雷珀奖(与Robert Taylor、Butler Lampson和Charles Thacker一同获奖)、美国计算机协会颁发的图灵奖和日本稻盛基金会颁发的京都奖。...







点击看大图



加载中...

