蔡荣华 樊蒙蒙
摘 要 以计算思维的三个维度和培养层次为基点,提出以协作结对编程新方式来培养计算思维。通过对基于协作结对编程的计算思维培养案例进行分析,总结出协作结对编程是一种新的培养计算思维的方式,这种方式增强了计算思维的计算概念、计算实践和计算观念三个不同维度的能力,也提升了计算思维的培养层次。
关键词 计算思维;计算概念;协作结对编程;计算实践;计算观念
中图分类号:G652 文献标识码:B
文章编号:1671-489X(2018)14-0075-03
Research on Training Method of Computational Thinking based
on Collaborative Pair Programming//CAI Ronghua, FAN Meng-meng
Abstract Based on the three dimensions and cultivation level of com-
putational thinking, this paper proposes a new way of collaboration pair programming to develop computational thinking. Through ana-
lyzing the training cases of computational thinking based on colla-boration pair programming, it is concluded that collaboration pair
programming is a new way of cultivating computational thinking. This way strengthens the ability of the computational concepts, com-
putational practices and computational perspectives of Computa-
tional Thinking, and improved the cultivation level of Computa-tional Thinking.
Key words computational thinking; computational concepts; colla-borative pair programming; computational practices; computational perspectives
1 前言
計算思维体现了一种普遍适用的态度和技能,不仅仅是计算机科学家,更是每个人都应学习和使用的态度和技能。正如2006年卡内基·梅隆大学的周以真教授提到的:计算思维是运用计算机科学中的基本概念来解决问题、设计系统和理解人类行为等涵盖计算机科学领域的一系列思维活动。发展学生计算思维就是要像计算机科学家那样去思考信息化问题,这些问题绝不只是局限于计算机科学领域,它也包含信息技术所渗透的每一个角落[1]。
即使对于非计算机专业,计算思维在他们的日常生活中也是适用和有用的。近年来,研究工作者和教育者对教学模式和学习方式的创新有了空前高涨的热情,此时探究协作结对编程的新方式,对培养计算机思维的影响就显得尤为重要。
2 计算思维
计算思维的三个维度 计算思维的三个维度是计算概念,计算实践,计算观念。
1)计算概念是指程序使用的概念,如顺序、循环、并行等。
2)计算实践是指发生在编程过程中的问题解决实践,如增量和迭代、测试和调试、再利用和再创造、抽象和模块化。
3)计算观念是指学生对自己、与别人的关系以及他们身边的技术世界的理解,如关于技术世界的表达、联系和质疑。
计算思维的三个培养层次 计算思维就是解决问题的一种能力,以问题为基点,利用问题引导学生思考,通过不断修炼方案和反思,理解并加强思维方式,最终提升自己的计算思维能力。计算思维培养引导过程可分为三个层次:第一个层次是学会解决同类问题;第二个层次是运用思维能力来解决已知问题;第三层次是能够利用思维能力发现并加以解决问题,这是创新的基础能力。培养计算思维运用能力至第三层次是培养的目标[2]。
对计算思维三个层次的培养,可以选择以问题为导向的教学方式方法,在教学内容的设计中要体现循序渐进、螺旋上升的原则,以逐步培养学生更高层次的能力。根据个体差异性,要培养学生不同阶段和不同层次的计算思维能力,渐渐养成利用计算思维解决问题的习惯,然后迁移到更多不同的学习情境中。
3 协作结对编程方式
协作结对编程(Collaborative Pair Programming,简称CPP)是指两个程序员并行工作,在相同的算法中进行设计和编码,将个体活动转变为协作合作。在编程过程中通常有两个角色,分别是驾驶员(driver)和领航员(navi-
gator)。其中,前者控制计算机键盘和鼠标,编写代码;后者检查程序工作,为设计和代码提供建议和更正,协助驾驶员设计规划。协作结对编程是基于Dillenbourg的四个条件提出的,引领了一种新颖的培养计算思维方法的潮流,弥补了普通结对编程的不足,在过去几年的研究中也已经证实:协作结对编程减少了学生的认知负荷;通过共享开发环境,合作者之间的持续沉浸与参与、不断的反馈与评论,提高了彼此整体的意识和代码的集成。
根据Dillenbourg的观点,为了最大限度提升学生的互动性和学习兴趣,提出协作模式应该具备的四个条件:
1)设置初始条件;
2)在基于角色的场景中制定协作契约;
3)通过在媒介中的相互作用来构建支架的创造性协作;
4)对协作合作的监测和管理。
表1显示了四个条件与教学实施的对应关系。
4 协作结对编程在实践教学中的实验探究及分析
实验探究 本实验是基于计算机编程导论课程,共有178名学生,他们分为三个批次的实验班。学生一共分为两组:第一组包括66名在K-12教育期间具有预先编程经验的学生,他们被要求在整个学期独立工作;第二组由112名没有编程经验的学生组成,他们被要求结对工作。在这学期,学生可以选择自己的永久合作伙伴。
每个组合的任务是基于单个任务设计的,并且需要以前的工作的协作。每个练习或问题都分为两部分,第一部分要求一对学生独立工作。每个人都有一个问题,需要应用相同的概念来解决难度等级一样的问题;在解决各自的任务后,他们一起解决组合任务。组合任务的难度高于单个任务,并且组合任务的解决方案中应包含学生单个任务解决方案的概念、逻辑和代码。表2显示了实验室练习中的个人任务和组合任务。
有编程经验的学生需要直接单独执行组合任务。如果发现组合任务困难时,他们可以首先解决第一部分中的两个个人任务,然后解决组合的任务。结对中的没有经验的学生必须单独解决个人任务。每个学生都必须为自己的问题提供解决方案,然后通过结合独立工作中應用的概念来协作解决第二部分中的组合任务。在每个实验室中都有相应的指导员对教学过程进行监测和指导。
教学案例分析 在上述实验探究中,整个教学过程包含与计算思维相关的概念和技能,也通过计算实践让学生潜移默化地形成计算观念和态度。通过实验探究和案例分析,可以总结出协作结对编程对计算思维三个维度培养的优势与特点。
1)概念巩固。像计算机科学家一样思考,意味着不仅仅有能编程计算机程序的能力,更需要在多个抽象层次上进行思考。协作结对编程引导学生审视自己的思考和路径,与同伴一起审查和讨论彼此的想法,计算概念更加巩固,因此,协作结对的学生可以很容易地在更短的时间内完成逻辑并评价他人的解决方案。每个学生都是自己解决方案的制定者,也是结对伙伴解决方案的评议者,在适应解决新的组合任务时,使得计算概念得到加深理解和应用。
2)实践反思。反思能够促进计算实践和计算观念,因为协作结对编程会督促双方学生检讨并思考自己的编程过程。这样的反思可以对学生的编程性能进行指导,也有益于将思考转化为实践行为。不断地自我反思会促进学生的增量和迭代的发展,并且自我反思和同行代码审查可以帮助学生测试和调试。
3)观念加固。协作结对编程也是一种策略。在协作结对编程过程中,结对学生相互观察、表达、争论、联系和质疑,潜移默化地学习如何更好地处理问题,如何更好地编程,以及如何更好地使用开发工具,使得学生的逻辑能力、算法能力、递归能力和抽象能力等得到提升,最后形成自己的计算观念,对自己、他人或世界都具有自己的计算风格和多重抽象的思考。这种思维观念才是最根本的,也是创造性思维、批判性思维和解决问题能力的综合体现。
在整个教学案例中也体现了计算思维培养层次的逐步提升。
1)解决同类问题。通过学习和练习,学生能够利用解决个人任务后掌握的知识来解决同类问题。利用个人任务和组合任务的回环,培养学生解决同类问题的能力。
2)解决已知问题。学生在解决每个任务时,涉及使用有关计算机科学的相关概念(如条件、顺序等),利用可视化的编程工具或其他技术,然后通过设计解决方案等行为来解决已知问题。编程的过程也会将学生的计算思维呈现出来。协作结对编程的方式正是凭借计算机科学中的概念来解决问题,当遇到一个很复杂的问题或任务时,计算思维会促使学生通过还原、嵌入、转化或模拟,将看起来困难的问题转化为他们知道如何解决的问题,选择合适的解决方法,最后提升他们解决问题的能力。
3)主动发现并解决问题。通过协作结对编程方式来培养学生的计算思维,将该问题的求解过程进行推广并迁移到更广泛的问题情境中去,协作结对编程过程中能发现问题、提出解决方案并解决问题。完成任务的过程中体现计算思维三个培养层次能力的螺旋上升。
协作结对编程的方式采用“计算支架”(学习同伴)的策略,使得学生的计算概念更加巩固,不断反思和审查计算实践,最后计算观念也得到提升。用问题引导学生用计算思维来思考并解决问题,逐步形成良好的计算思维能力,达到计算思维培养层次的提升,并渗透到生活和学习的方方面面。
5 结语
编程不仅仅是编码,它反映了学生的计算思维,协作结对编程模型是基于Dillenbourg的四个条件的集合,通过建立积极的协作环境和采用“计算支架”的策略,来培养学生的计算思维能力。协作结对编程通过对计算思维的计算概念、计算实践和计算观念三个维度中的不同能力培养,来提升计算思维的整体综合能力。以上研究为进一步培养计算思维的研究与实践提供了重要基础。然而这些研究可能还有一些不足,在未来的研究中也将比较不同的结对方式对计算思维的培养会产生什么样的影响,从而使计算思维的培养真正“落地”。
参考文献
[1]Wing J M. Computational Thinking[J].Communica-tions of the ACM,2006(3):33-35.
[2]鲍宇,孟凡荣,张艳群.“阶梯式”引导的计算思维自主养成模式[J].电化教育研究,2015,36(6):87-92,99.
[3]王旭卿.面向三维目标的国外中小学计算思维培养与评价研究[J].电化教育研究,2014,35(7):48-53.
[4]熊晶,高峰,王爱民.结对编程在师范院校计算机专业实践教学改革中的应用[J].现代教育技术,2013,23(7):
122-126.
[5]王旭卿.从计算思维到计算参与:美国中小学程序设计教学的社会化转向与启示[J].中国电化教育,2014(3):97-100.