文章来源:中国电化教育 2014.3 总第326期
作者:上海师范大学 信息与机电工程学院 王旭卿
计算思维概念的界定
定义
- 周以真于2006年提出的,他认为:“计算思维是一个明确问题和制定解决方案的思维过程,由此解决方案可以表示为能够被信息处理代理有效执行的形式”。
- 2011年ISTE联合CSTA在分析计算思维过程各要素的基础上提出了计算思维的操作性定义,即计算思维是一个问题解决的过程,该过程包括制定问题、分析数据、抽象、设计算法、选择最优方案、推广六大要素。
- 由美国麻省理工学院媒体实验室(MIT Media Lab)终身幼儿园研究小组(Lifelong Kindergarten Group)在多年研究互动媒体设计者活动的基础上提出,从三个维度分析了计算思维应包含的要素,即计算概念(设计者在编程时所使用的概念)、计算实践(设计者在编程时所概念)和计算观念(设计者形成的有关他们身边世纪和他们自己的观念)。
分析定义
MIT的定义与中小学信息技术课程三维目标近似,即计算机概念对应于知识与技能,计算实践对应于过程与方法,计算观念对应于情感态度与价值观。
计算参与:美国中小学程序设计教学的社会化转向
提出
2012年,美国宾夕法尼亚大学教育研究生院的Yasmin B. Kafai教授将近年来美国中小学鼓励创建和分享编程作品的程序设计教学实践归纳为“社会化转向”。
社会化转向特征
程序设计教学的“社会化转向”趋势具体表现为在学习编写代码的领域中从明显地以个人为中心和面向工具的方法转向基于创建和分享数字媒体并明显具有社会化和文化性倾向的方法。可以用以下三个维度来说明:
- 从编写代码到创建应用;
- 从设计工具到促进社区
- 从“白手起家”到再创作(Remix)他人成果。
从编写代码到创建应用
- 传统的编程学习总是与编写代码、开发算法和生成可运行的程序紧密联系在一起,学生常常还需要通过解决一些枯燥的、不太吸引人的数学题(如排序、查找、鸡兔同笼问题、找素数、求水仙花等)来学习编程。
- 由于受到基于情境的设计实践的影响,美国中小学开始采用一种“教学软件设计”的编程教学方式,即要求学生把学术内容应用到设计有意义的真实的应用程序中去,学生不再只是编写代码,而设计功能完整的软件应用程序则成为学习编程的重要任务。
- 支持青少年创建应用的编程工具有:MIT终身幼儿园研究小组开发的编程工具Scratch、微软开发的游戏开发工具Kodu。
- 创建编程作品中的系统思考是指学生需要在设计诸如游戏等应用程序时,要从设计系统、解决问题和理解人类行为等角度去“仔细思考用户与应用程序互动的方式和根据需求实现功能的方式来解决问题”。
- 创建编程作品中的创意思维是指学生可以把编程学习融入到创作具有现实社会意义和文化内涵及富有个性的互动媒体作品过程中,将技术学习与创意设计、日常生活有机统一。例如,Scratch网站上的互动媒体作品类型丰富,包括动画、游戏、故事、模拟等,
其中有对经典游戏的辛苦重建作品、有记录生活经
历或期望某种经历的作品、有培养人际关系的贺卡
或致谢作品、有关注社会问题(如全球变暖、虐待
动物)的作品,等等
从使用工具到参与社区
- 常用的工具有:适合三维动画创作和叙事创作的Alice、鼓励游戏
创作的Kodu、适合创建模拟应用程序的Agentsheet
和支持手机应用程序开发的App Inventor; - 这类编程工具的共同特点是低门槛(Low Floor)、高界限(High Ceiling)和阔空间(Wide Walls)。低门槛是指容易入门,高界限是指有机会制作越来越复杂的项目,阔空间是指不同兴趣和学习风格的学生都能参与进来,完成类型各异的项目。
- 学生以个体方式使用编程工具比较容易关注知识与技能方面的学习目标。随着结对编程(PairProgramming)应用于美国中小学各学段合作式设计活动,越来越多的编程工具开发者认识到了团队和社区在帮助和激励编程新手中的重要作用。
- 许多编程和设计工具都提供了与使用编程工具配套的、鼓励学生创建和分享编程制品的在线社区。最突出的例子就是Scratch网站,它是目前全球最大的青少年编程社区(被誉为青少年编程类的YouTube社区)。
- Scratch网站:注册用户的年龄主要是在8到16岁之
间(其中峰值年龄为12岁);用该社交网站,学生可以分享他们的Scratch作品、接受来自同伴的反馈和鼓励,并从其他用户的作品中汲取创作灵感和学习编程技巧;Scratch网站上的收藏、赞、评论、创建工作室、管理作品集、关注其他用户等功能为同伴间的互动提供了便利;最凸现合作学习功能的是Scratch网站上的特色工作室,多个Scratch成员可以加入特色工作室,并围绕特定项目参与制作编程作品,他们会把不同的技能(音乐、图像、编程)带入工作室,在提升个体智慧的同时发展集体智慧; - 把社区的概念和实践应用于中小学程序设计教学集中体现了学习的社会性本质,即有成效的学习不是孤立进行的,而是需要与他人发生联系。因此,单纯设计和开发能促进学生编程能力、提升计算思维的编程工具是不够的,而是要提供与使用编程工具和分享编程制品相呼应的社交情境,这种社交情境是将编程工具与在线编程社区紧密耦合的学习环境,并通过合作式编程和同伴间的互动把计算思维的其他元素凸现出来,例如学习分解复杂任务和协调不同组件之间的控制流 。综上,利用在线编程社区支撑的中小学程序设计教学可以关注除知识技能之外的其他学习目标,如过程与方法、情感态度与价值观。
从“白手起家”到再创作
- 以往编程学习者只能通过“白手起家”(或称“从零开始”)的方式编写代码来显示自己高超的编程能力,而且期望通过自己的创建和不断改进使那些代码在很大程度上成为不能自由共享的专有商品。这就是早期计算作业的风格。
- 随着利用组件设计程序的编程方式深入人心,在教学上,编程员新手有机会修改现有代码段来学习编程,这使他们能够创建超越自己水平的更复杂的程序。
- “白手起家”:是对教材范例的简单模仿,强调学生对知识的识记和理解;
- 再创作:对学生要求更高,学生不仅需要理解原始编程作品的功能和读懂原始作口的代码,还要考虑如何修改所选的代码段、保留什么、增加或删除程序中的哪些过程、变量等。再创作属于布鲁姆学习目标分类法中的高级思维水平,涉及分析、设计、创造和评价目标,而不是识记和理解目标。
- 在Scratch 2.0社区,用户可以通过“书包”(Backpack),即后备素材包功能对自己和其他Scratch用户保存的代码和相关资源(角色、代码、声音、造型)进行复制和再利用,也可以在线浏览他人作品、转到“设计页”之后使用“再创作”功能,通过复制他人作品和增添新想法及功能对原始作品进行再创作。为了强化版权尊重机制,Scratch 2.0社区在原始作品和再创作作品中都会增添有关原作者和新作者对作品修改的信息。此外,Scratch 2.0社区的创作树功能以可视化的方式展现了作品多次再创作版本之间的关系,挖掘了作品的再生价值。这些鼓励再创作和尊重知识版权的机制巧妙地解决了知识原创性和生产性的两难困境。