03 第3 章 CHAPTER 3 3.1 项目式课程设计 3.2 以问题为驱动的课程设计 3.3 学科交叉课程的设计 3.4 课程设计方案及参考案例 课程设计与实践 52 计算思维与程序设计 计算思维培养重点在于培养学生利用计算的过程和方法,理解和解决现实问题的 能力,其落脚点在于人,在于核心素养的锻造,在于能力的培养,在于思维的训练。 3.1 项目式课程设计 计算思维作为一种思维方式,需要在解决问题的过程中不断通过分析思考、实践 求证、反馈调适而逐步形成。项目学习很大程度还原了学习的本质,基于真实情境的 学习可以促进学生对信息问题敏感性、对知识学习的掌控力、对问题求解的思考力的 发展。从认知科学、心理学和社会学等多角度来看,开展项目学习能够有效培养学生 计算思维,促进核心素养的发展。 开展项目式学习课程设计与实施流程包括确定项目、制订计划、活动探究、作品 制作、成果交流和总结评价,具体如图3-1 所示。 图3-1 项目式学习课程设计与实施流程 3.1.1 如何进行项目设置 合理设置项目主要包括驱动性任务设计和项目式学习设计两部分内容。 第3章 课程设计与实践 53 在项目式学习过程中,驱动性问题的设计是关键步骤。良好的驱动问题能够使学 生在项目学习过程中保持兴趣,激发深度思考与问题解决,引导学生完成挑战性任 务。驱动问题的设计一般由项目组教师提出,再与指导专家共同研讨后确定。设计驱 动性问题时,首先应保证紧扣项目学习目标,问题要具有一定挑战性,充分考虑学科 知识重构中的应用领域与学科融合,与生活实际紧密相连。其次注重其开放性与难 度,符合学习者的能力、特征,保证项目的可行性。 在完成驱动任务设计与项目式学习目标修订后,需要对项目式课程的核心过程进 行精细化设计,将项目式学习的实施脉络清晰呈现。具体包括项目情境构建、项目活 动设计、项目成果及评价方式设计、项目式学习所需资源与工具设计、项目计划制订 等关键步骤。 3.1.2 项目式课程的关键要素 项目式课程设计包括任务介绍、任务分析、相关知识、任务实施、归纳总结、拓 展提高、安排练习或者实训、课外学习指导等要素。 (1)任务介绍:主要介绍项目的环境和目的等。 (2)任务分析:介绍完成任务的思路,完成任务的技能点和知识点。这一环节要 注重教师的引导作用,引领学生对工作任务进行分析,有针对性地提出解决问题的方 法和技巧,并根据任务分析厘清解决问题的思路。 (3)相关知识:完成任务需要的背景知识,为实施任务做理论铺垫。 (4)任务实施:介绍任务完成的具体步骤,充分体现“做中学”的重要性。此环 节应叙述完成任务的详细操作步骤,对每一步操作,一定要有该操作对应效果的描述 或具体工艺效果、原理的叙述说明。 (5)归纳总结:主要介绍任务中的重要思想、方法、知识点等。由于这些知识不 便于在操作步骤中描述,所以可以在此处描述。其中,可以在这一环节中增加“操作 技巧”。 (6)拓展提高:主要介绍相关的理论、新知识等,或者任务难度较大的内容,是 为了弥补项目实施步骤中没有介绍的或者不方便介绍的内容。 (7)练习或实训:此模块可以包括常规的填空、选择、判断、问答等题型,更重 要的是实践题。 54 计算思维与程序设计 (8)课外学习指导:即教师为学生课外继续学习提供的建议、学习资源、参考书 目、网址等,主要供学生学习参考使用。 3.2 以问题为驱动的课程设计 3.2.1 课程设计策略与冲突 课程设计的主要目标是确定学生要通过编程解决哪些问题以及据此应当掌握哪些 知识。课程内容主要是确定学生应当通过什么路径实现课程目标以及据此产生的具体 的学习内容。在设计青少年计算思维与程序设计课程时,应充分意识到青少年信息技 术教育与成人信息技术教育和学科教育的区别,有针对性地设计青少年设计思维课程 的目标和课程内容。然而,青少年信息技术教育在课程目标设计方面是存在冲突的, 因为课程目标既要体现以问题为驱动的基本原则,又要兼顾计算思维与程序设计知识 的具体学习,涉及两方面问题的平衡,二者关系处理不当容易产生冲突。 从课程目标中的以问题为驱动原则来 看,青少年计算思维课程应重点突出“现实 问题如何解决”,然后以问题为驱动带动相 关知识的学习。而成人职业化信息技术课程 和语文、数学、外语课程目前关注的是知识 学习,然后以知识为驱动结合具体问题促进 学生相关能力的提高。这两种课程目标的区 别如图3-2 所示。 因此,在设计青少年计算思维课程时,可将“问题解决”放在课程目标的首要位 置,而将相关知识学习放在课程目标的次要位置。按照这种思路设计编程课程内容, 符合青少年的学习现状和学习心理。从学习现状来看,计算思维与程序设计课程并不 是强制性课程,属于素质教育范畴,学校和家长往往根据实际情况和个人认识决定学 生是否学习,甚至认为是一种可有可无的课程。在这种情况下,突出课程的问题导向 将会使课程的实用价值更容易得到体现,引起学生、教师、家长对于课程的关注;从 学生学习心理来看,解决问题相对于知识学习趣味性更强,更容易吸引学生,从而使 学生更容易接受课程。 图3-2 课程目标设计的比较示意图 第3章 课程设计与实践 55 从课程目标中的计算思维与程序设计知识学习来看,虽然以问题为驱动将会使课 程更容易被人们所接受,但同时也会带来知识设计上的困难。因为以问题为驱动将会 相对弱化编程知识的学习,从而产生需要什么,学习什么的尴尬局面,在一定程度上 破坏了计算思维与程序设计知识的系统性和 完整性。而且将知识体系打散为零碎的知识 点,需要什么用什么,为课程内容设计带来 了很大困难,如图3-3 所示。按照这种课程 目标设计课程内容,很难确保学生学习编程 知识的完整性,容易导致知识点的不均衡学 习,从而影响学生计算思维与程序设计能力 的有序提升。 问题驱动原则与计算思维与程序设计知识体系之间是存在冲突的。如何在课程目 标中既体现以问题为驱动的基本原则,同时又兼顾知识体系方面的完整性,是广大教 育者应当格外关注的问题。如果只关注以问题为驱动的基本原则,而忽视知识体系的 完整性,将会削弱多节课程之间内在的关联性,使课程内容非常松散,缺乏条理。 3.2.2 设计冲突的解决策略 有效的课程内容设计能够解决课程目标中问题驱动原则与知识系统性之间的冲 突,但与此同时,也对课程内容设计提出了更高的要求。在开展课程内容设计时,教 师应格外关注课程内容对于知识体系的全覆盖性,即以问题为驱动的课程内容能够覆 盖学生应该掌握的所有知识,这样才能有效地解决课程目标的内在冲突,既体现以问 题为驱动的课程目标设计原则,又体现课程内容对于计算思维与程序设计知识体系覆 盖的完整性。如果课程内容设计不当有可能出现以下三个方面的问题。 (1)知识覆盖不全。有些知识在多节课程内容中都没有体现出来,形成学生在计 算思维与程序设计学习上的盲点。 (2)重要知识被覆盖次数偏少。有些课程体系虽然在编程内容方面做到了全覆 盖,涉及计算思维与程序设计知识体系中的所有知识点,但对于某些重要知识点的覆 盖次数不够,难以达到使学生深入掌握该知识点的教学目的。 (3)有些重要知识点在单次课程中体现不明显。有些重要的知识点在单次课程中 图3-3 知识体系被打散使用示意图 ● 未被学习的知识点 56 计算思维与程序设计 虽然有体现,但被放在了次要地位,不能达到应用的教学效果,出现覆盖无效或覆盖 低效的问题。 由于尚未形成统一标准同时强调问题驱动,因此不适宜采用课程目标设计在先, 课程内容设计在后的传统课程设计流程,否则又会回归到强调编程知识学习的思路 上。对于青少年计算思维培养教育而言,课程目标设计和课程内容设计适宜同步进 行。以问题为驱动是要服务于知识学习的,因此问题是表面现象,而知识学习却是内 在特征,应当根据知识学习的内在规律和特点,科学选择和设计问题,以便开展教学 工作。 课程设计可分为单节课程设计和课程体系设计,对于单节课程设计,可按以下流 程操作。 (1)粗略确定学生需要掌握的知识点。有时可能很难找到能够恰好覆盖知识点的 合适问题案例,因此在没有确定教学内容的情况下,知识点的确定宜粗不宜细、宜少 不宜多,以便于课程目标的进一步调整。 (2)搜集能够覆盖知识点的教学素材,并分析其与知识点的匹配情况。此处会存 在两种不匹配情况,一是教学素材超出编程知识点,这种情况需要增加知识点;二是 教学素材少于知识点,这种情况需要减少知识点。若匹配程度难以达到课程目标要 求,可对课程目标进行调整,根据现有教学素材调整课程目标的情况在课程实施过程 中是很常见的做法。 (3)对教学素材进行提炼,形成驱动教学工作 开展的问题。根据流程图,问题是在教学素材梳理 过程中产生的,但是在课程实施过程中,却把问题 逆向推到了首位。从这个角度来看,以问题为驱动 实际上是一种课程设计技巧,问题从表面上看很重 要,但实际是服务于知识学习的。 (4)将教学问题、计算思维与程序设计知识点 合并,形成成熟的课程目标。 (5)以课程目标为指导,结合教学素材,进一 步形成完整的课程内容。 最终确定课程目标与课程内容,从而完成课程 设计工作。课程设计流程如图3-4 所示。图3-4 课程设计流程 第3章 课程设计与实践 57 课程体系是在大量单次课程基础上形成的,一套良好的课程体系应能解决课程目 标中问题驱动原则和计算思维、程序设计知识体系之间的冲突,因此课程体系应满足 以下要求。 (1)全覆盖要求。课程体系应覆盖知识体系中的所有知识点。 (2)均衡覆盖要求。课程体系对于知识点的覆盖次数要与知识点的学习重要性相 匹配,实现均衡覆盖。 (3)突出覆盖要求。对于重要知识点,要突出其在课程内容中的重要性,要围绕 该知识点专门进行课程内容设计。 3.2.3 单节课程设计案例 为了帮助读者更容易理解和应用前文所述的课程设计理念,本小节以循环模块和 变量迭代算法为例,编制单节课程设计案例,供读者参考。 1. 知识点确定 循环模块和变量迭代算法是计算思维与程序设计学习中的重要知识点,拟设计一 节课程使学生掌握循环模块使用方法以及迭代算法应用技巧。 2. 搜集教学素材 循环模块和变量迭代算法是程序中最为常见的组成部分,大部分程序素材中都涉 及了这两方面的知识。但经过分析,发现有些素材不适合转化为课程内容。 (1)有的素材中,循环模块和变量迭代算法在程序中未处于主导地位,不利于突 出循环模块和变量迭代算法作为学习重点的地位。如有些程序强调角色造型的设计, 在造型设计方面会占用学生较大的精力,进而冲击循环模块和变量迭代算法作为学习 重点的地位。 (2)有的素材学习难度较大,超出学生当前的理解能力。如汉诺塔自动计算程 序,虽然结构及编写看起来很简单,但是却涉及了较为抽象的递归算法,学生理解起 来有难度,也不适宜作为课程内容。 (3)有的素材过于简单,不利于调动学生的学习积极性。如小猫数数程序,能自 动从1 一直数到100,非常便于理解“循环”模块和变量迭代算法。但该程序适合低 年级学生学习,而本节课程主要针对高年级,该程序过于简单。 经过综合分析与比较,选取质数判断作为课程内容设计的依据。一方面,学生 58 计算思维与程序设计 已学习过质数知识,难度适中;另一方面,以质数判断为依据设计课程内容,能够 覆盖循环模块和变量迭代算法,并且循环模块和变量迭代算法在程序中处于主导 地位。 但是,在质数判断程序中,需要用到余数模块,原有知识点中没有考虑,因此进 一步调整课程目标,确定循环模块、余数模块的使用方法以及迭代算法应用技巧为本 节课的知识点。 (1)立足于质数判断素材进行提炼,得到能够激发学生学习兴趣的问题。较小的 数是否为质数很容易判断,但是如果遇到一个很大的数该怎么办呢? (2)确定本节课的课程设计目标:掌握质数判断程序编写方法,掌握循环模块和 余数模块的使用方法以及变量迭代算法应用技巧。 (3)在课程目标指导下,进行课程内容设计,形成能够指导课程实施的课程内 容。遵循以问题为驱动的教学原则,通常采用问题方式对课程内容进行描述,如对于 质数判断程序的学习,可采用以下问题概略描述课程内容。 ① 如何分析某个数是否为质数? ② 如何将暴力破解的思路转化为程序? ③ 用手工方式逐一尝试可以吗?如果不可以,应当由程序自动产生2,3,4,设 置一个变量,并对其进行迭代。 ④ 如何判断该数是否为合数? ⑤ 在什么情况下判断该数为质数? 3.3 学科交叉课程的设计 计算思维应在上下文情境中教授和学习,应嵌入具体的课堂科目中去。例如,分 析和逻辑思维可以通过猜谜语和单词问题来培养。学习编程时开发计算思维技能是非 常有趣实用的方法,但不是唯一的方法。学科交叉课程设计的目标是更加有意识地培 养学生建立清晰明确的计算思维能力,将编程工具结合到一些活动中,利用可能的自 动化和计算解决方案解决问题。以下是一些培养计算思维课程素材的来源,有些会受 益于编程学习。 第3章 课程设计与实践 59 3.3.1 猜价格 1. 教师活动 教师手里有一块新买的手表,让学生猜一猜手表的价格。学生猜的同时,由教师 输入答案,这个时候系统将会给出提示,提示所猜价格偏高、偏低或者回答正确。让 学生回答问题,“这个程序是如何实现的?”引导学生进行总结归纳。 简单的数学知识启发学生:大家都知道一个数的绝对值Y = |X|,当X ≥ 0 时, Y = X,X ≤ 0 时,Y = -X;那么这个小程序是如何实现的呢?总结学生的答案,启 发学生,学习选择结构的程序。 2. 学生活动 猜出价格,思考绝对值的程序和价格的程序是如何编写的,回答问题并进行 归纳。 3. 设计意图 通过简单的小任务与简单的数学知识融合,启发学生的思维,让学生总结归纳程 序是如何实现的,其中有哪个结构。本案例用到了计算思维中的启发和总结归纳的相 关方法。 3.3.2 龟兔赛跑 1. 教师活动 以“龟兔赛跑”为例,教师向学生讲述龟兔赛跑的故事,引导学生对故事情境进 行抽象建模。 2. 学生活动 根据故事场景进行抽象建模,画出故事梗概图和行为框图。 3. 设计意图 抽象是引导学生将真实复杂的问题与场景抽象化、简单化,提炼为有限的角色与 舞台。建模是针对特定的角色进行归纳,梳理它的行为表现,主要包括自主发生的动 作、按键事件触发的动作、与其他角色互动的动作、广播的消息事件触发的动作等。 用行为框图帮助学生对准备开发的创意作品进行系统建模,使学生在设计角色和舞台 时学会将场景的口头语言描述转化为程序设计语言。 60 计算思维与程序设计 本案例抽象与建模的参考示意结果如图3-5 和图3-6 所示。 图3-5 故事梗概图 图3-6 行为框图 3.3.3 班级成绩统计 1. 项目描述 教师需要对初三(1)班学生的成绩进行统计分析,以便更好地进行教学。表3-1 列出了班级20 位学生的数学和语文成绩。