从计算思维角度探讨编程教学:周以真教授的理论与实践分析
从计算思维的角度出发的儿童编程该怎么教?

2006 年 3 月,当时担任美国卡内基·梅隆大学(CMU)计算机科学系主任的周以真教授,如今是美国基金会(MSP)计算机和信息科学与工程部(CISE)主任。她提出了计算思维(ComputationalThinking)的概念。计算思维就是运用计算机科学的基础概念来求解问题、设计系统以及理解人类的行为。它包括了涵盖计算机科学之广度的一系列思维活动。
培养儿童计算思维的编程课程
目前的编程教学,在课程方面思考得较少。它缺少系统的课程理念,也缺乏对课程内容的研究。教学的随意性较大,教学目标往往只是过分关注具体的编程技术学习,却缺乏对编程过程中计算的本质与思维的关注。
一个编程教学课程如果合理且能体现计算思维,就可以将计算思维教育的课程目标固定下来。像基于 Scratch 和 Kodu 编程平台的两门趣味编程课程就是这样。这两门课程的目标都涵盖了培养编程逻辑思维,以及培养创新性思维、叙事能力、解决问题能力和合作能力等。
基于计算思维培养的儿童编程课程结构可分为四个部分:
认识平台,进行基本编程技能学习。通过设计功能明确的游戏程序,来掌握较为基本的编程技能;设计半开放的项目选题,以此引导学生学会创编故事、进行需求分析,探究编程技能,逐步形成计算思维;对于选题开放的编程作品进行设计,让学生经历情境介绍、游戏规则、场景设计、编写程序以及修改程序等环节。
学习活动按照“故事—规则—语句—作品”这一适合低龄段儿童的编程教学流程来设计,逐步推进对所编程序的理解。在故事编制和游戏规则制订的环节,学生的理性思维得到了强化;而在语句编写和作品调试与评价的环节,体现了学生理性思维的落实以及对计算机自动化的体验。
促进计算思维形成的编程教学方法
当前大部分编程教学中,多数教师采用模仿式、传统化教学。有些教师即便使用项目教学方式,也只是简单套用。学生小组合作与探究活动较少。尤其对编程教学的过程和思想不够重视。
对于教师而言,编程教学包含教授编程技能这一方面,同时还需精心设计教学过程,合理安排教学活动,巧妙激发学生的兴趣,唤起他们的思考,以此来形成计算思维。在编程教学里,不但要开展算法与程序设计的教学,还要通过编程活动的过程,让学生理解抽象、概括以及问题解决等这些计算思维的本质。在具体的编程教学当中,我们能够:
1、利用游戏活动提高学生的编程兴趣
7 岁到 12 岁的孩子此时情况是这样的。他们从表象性思维中摆脱出来了。在他们的认知结构中已经有了抽象概念。所以他们能够进行逻辑推理。不过他们的运算依然离不开具体事物的支持。儿童在具体丰富的游戏活动中,能够获得相关直接经验,以此作为学习的支撑,这样能更好地理解和掌握编程。而且图形化拖曳式的编程软件可以对编程结果进行实时动画反馈,这无疑会激发学生对编程的好感。谁不想在快乐中学习,又在学习中获得快乐呢?
2、通过“玩中学”提高编程教学的效率
在编程教学里,教师通常会运用“观察、模仿、学习”这三个步骤。学生借助这种方法来完成编程作品,其所需时间较短,成功率也较高。然而,在这个过程中,学生的编程行为只是机械地重复,缺乏了思维方面的练习,也缺少了创造性的实践。教师在教学中运用“玩中学”的理念,引导把“玩”与“学”相结合,利用“玩”激发求知动力,提升动手操作能力,这样的学习是开心且有意义的。
以《吃苹果》的 Kodu 游戏编程作为例子,学生正沉浸在移动 Kodu 去吃苹果的游戏当中,此时教师提出了一些问题。
师:游戏场景里如果有一些烂苹果被Kodu吃了,会怎么样?
生:Kodu会生病,Kodu不能吃烂苹果。
师:那在游戏中我们该怎么设计呢?
生:Kodu吃到烂苹果要受罚,要减少分数。
师:好,那大家试着修改你们的游戏吧!
实际上,玩游戏本身并非编程教学的目的。修改游戏规则以及修改游戏程序,也不是为了学习新的语句或编程技术。其目的是强化学生的归纳与抽象思维,强化他们对控制计算机自动化的体验。
3、以项目学习的形式开展编程教学
中学孩子的认知活动具备了守恒性和可逆性,并且逐渐能够从他人角度看待问题,这个阶段比较适合培养孩子独立分析问题、抽象概括问题、团队合作以及逻辑思维的能力。基于项目式学习,让学习者通过自主探究与合作去解决问题,借此学习隐藏在问题背后的知识,形成解决问题的技能以及自主学习的能力。在项目完成期间,教育者所追求的一方面是提升学生的编程能力和编程素养,另一方面是培养与关注 21 世纪的 4C 个人核心能力。
写在后面
认知特点是通过直观感知事物的规律。在教学实践里,编程教学能够成为提高计算思维的有效方式。教师能够把计算思维融入到具有娱乐性、互动性和艺术性的编程教学当中。让学生在基于现实模拟的情境里初步学习编程知识,进而归纳并提炼出在信息时代应该具备的计算思维技能,同时培养他们把这些技能运用到学习、生活和实践中去,用编程知识去解决真实世界的问题,在游戏设计和制作的过程中体会到理性、抽象、严谨等计算思维特征的能力。
有人说,教育是慢的艺术。我认为,这不仅适用于信息技术这一门学科,对于整个基础教育来说,教育的本质实际上就如同农业一样。我们不能怀着工业主义的念头,只一味地强调完成率、成绩等,而忽视了教育的原点。教育需要回归本真。信息技术教育要让每个孩子都具备像计算机科学家那样思考的能力,要让孩子们能够应对人工智能时代带来的挑战,而不是仅仅掌握某一门技术或者某种编程语言。
参考文献:
[1]百度百科.计算思维[OL].
陈久华进行了基于计算思维的儿童编程教学实践。该实践成果发表在《中国信息技术教育》2017 年第 21 期,页码为 13 至 16 页。
王蕾针对基于计算思维的信息技术教学设计模式展开了研究,并且以儿童编程单元作为例子。此研究成果发表在 2018 年第 02 期的《中国信息技术教育》杂志上,该期杂志的页码范围是 15 到 18 页。