
本书旨在介绍STEM教育的历史背景、理论基础和课程设计方法。围绕计算思维驱动的STEM课程设计展开,帮助读者深度理解STEM教育课程的含义和基本理论,计算思维的核心理论,并让学习者掌握有效设计STEM课程的方法和能力。
如果要评选21 世纪教师的必备素养,计算思维应该是其重要组成部分。计算思维 (Computational Thinking)是指运用计算机科学的概念进行问题求解、系统设计和人类行 为理解等涵盖计算机科学广度的一系列思维活动。著名计算机科学家周以真(Jeannette Wing)教授在2006 年提出:计算思维是21 世纪每位儿童都应该掌握的技能,此后计算 思维风靡全球。教育的从业者纷纷开始探索计算思维的培养方式,越来越多的国家开始 普及计算机科学教育。 在信息社会的人工智能时代,计算思维是每个人必备的基本技能。虽然计算思维并 不等同于编程,但是编程是培养和实践计算思维的重要手段,因此21 世纪的师范生非常 需要掌握一门程序设计语言。 Python 作为当前流行的程序设计语言,在人工智能、大数据分析等领域被广泛使用。 我国的中学信息技术课程也逐步开始围绕Python 编程展开。相较于C 语言和Java,Python 因其优雅简洁的特点对初学者更为友好,非常适合作为编程入门语言。 作者讲授编程导论课程十年有余,拥有丰富的教学实践经验。作者认为,同样是学 习编程,专业人才与非专业人才在学习内容的深度与广度上都应该有所区别。虽然市面 上发行了大量关于Python 编程的书籍,但是多数都是面向专业人才的。许多高校的师范 专业(例如教育技术专业)都开设了程序设计入门课程,选用的教材通常是计算机专业 的入门教材。本书作为Python 编程导论,面向的读者群体是师范生或中小学教师。 本书主要有以下三大特点。 第一,关注基础概念。本书的内容包含Python 编程的核心概念,例如:变量、数据 类型、运算符、条件语句、循环语句、函数等。目前市面上大部分编程导论教材通常在 前两章介绍基本概念,大部分章节主要介绍面向对象、接口、数据结构等高阶内容。然 而,通过作者在编程教育领域的深入调查发现:许多本科生学习编程导论课程后,并没 有完全理解最基本的变量概念、程序的顺序结构,对类、对象、接口等需要大量编程实 践才能掌握的概念更是一知半解。因此,本书主要关注编程的基础概念,对相关内容进 行深入详细的介绍。 第二,强调任务驱动。学习编程应该围绕问题解决来展开,不适合以纯概念、纯知 识的方式进行。本书在介绍相关知识点和语句时,将围绕实际问题,通过任务驱动的方 式来讲解,并提供大量样例代码,方便读者进行实践与练习。本书通过任务驱动,可以 帮助读者更好地掌握编程技能。 第三,注重学科融合。近年出台的义务教育新课标非常强调跨学科活动,因此师范 生作为未来的教师,需要掌握一定的跨学科教学设计能力。编程课程可以与许多学科融 合,是设计跨学科教学的利器。本书中大多数任务与案例都体现了跨学科性,强调编程 与学科知识的融合。本书第7 章将介绍跨学科编程案例,用编程的方法进行学科问题 探究。 本书作为面向师范生的Python 编程导论,也适合其他非计算机专业的初学者学习。 本书从培养和实践计算思维角度出发,涵盖的内容非常丰富。如果读者能够按照本书中 所有的代码案例进行实践,一定会在计算思维方面受益匪浅。 钱逸舟 2022 年7 月9 日
第1 章 绪论 ............................................................................................................... 1 1.1 Python 编程 ...................................................................................................... 1 1.1.1 程序的概念 ........................................................................................... 1 1.1.2 为什么学习Python .............................................................................. 2 1.1.3 Python 是一种解释型语言 .................................................................. 4 1.1.4 Python 的发展历程 .............................................................................. 5 1.2 编写一个Python 程序 ..................................................................................... 6 1.2.1 安装Python .......................................................................................... 6 1.2.2 运行Python .......................................................................................... 7 1.2.3 尝试运行Python 代码 ....................................................................... 10 1.2.4 第一个完整的Python 程序 ............................................................... 11 1.2.5 人机互动 ............................................................................................. 13 本章小结 .................................................................................................................. 15 关键术语 .................................................................................................................. 15 课后习题 .................................................................................................................. 15 第2 章 数据与运算 .................................................................................................. 16 2.1 变量 ................................................................................................................ 16 2.1.1 变量的概念 ......................................................................................... 16 2.1.2 变量赋值 ............................................................................................. 17 2.1.3 变量的命名 ......................................................................................... 18 2.2 数据类型 ......................................................................................................... 20 2.2.1 基本数据类型 ..................................................................................... 20 2.2.2 常见运算符 ......................................................................................... 22 2.2.3 类型转换 ............................................................................................. 24 2.3 数据的输入与输出 ........................................................................................ 28 2.3.1 input()函数 .......................................................................................... 28 2.3.2 print()函数 .......................................................................................... 31 2.3.3 f-strings 格式化输出 .......................................................................... 33 2.4 运算符进阶 .................................................................................................... 36 2.4.1 ** 幂运算符 ....................................................................................... 36 2.4.2 // 取整除运算符 ................................................................................ 38 2.4.3 %取余数运算符 ................................................................................. 39 本章小结 .................................................................................................................. 42 关键术语 .................................................................................................................. 43 课后习题 .................................................................................................................. 43 第3 章 条件语句 ...................................................................................................... 44 3.1 布尔表达式 .................................................................................................... 44 3.1.1 回忆布尔类型 ..................................................................................... 44 3.1.2 关系运算符 ......................................................................................... 45 3.1.3 逻辑运算符 ......................................................................................... 46 3.2 if-else 语句 ..................................................................................................... 48 3.2.1 求绝对值 ............................................................................................. 48 3.2.2 动物园门票 ......................................................................................... 50 3.2.3 判断奇偶数 ......................................................................................... 51 3.3 if-elif-else 语句 ............................................................................................... 53 3.3.1 动物园门票进阶 ................................................................................. 53 3.3.2 数字比大小 ......................................................................................... 56 3.3.3 空气质量报告程序 ............................................................................. 59 3.3.4 石头剪刀布游戏 ................................................................................. 61 本章小结 .................................................................................................................. 63 关键术语 .................................................................................................................. 63 课后习题 .................................................................................................................. 64 第4 章 循环语句 ...................................................................................................... 65 4.1 while 循环 ...................................................................................................... 65 4.1.1 while 循环基础 ................................................................................... 65 4.1.2 while 循环进阶 ................................................................................... 66 4.1.3 棋盘的麦粒 ......................................................................................... 68 4.1.4 冰雹猜想 ............................................................................................. 70 4.2 for 循环 ........................................................................................................... 71 4.2.1 for 循环基础 ....................................................................................... 71 4.2.2 range()函数 ......................................................................................... 72 4.2.3 数列求和 ............................................................................................. 74 4.2.4 计算圆周率π ...................................................................................... 75 4.2.5 蒙特卡洛方法 ..................................................................................... 77 4.2.6 质数判断 ............................................................................................. 79 4.3 循环嵌套 ........................................................................................................ 80 4.3.1 字符三角形 ......................................................................................... 80 4.3.2 求100 以内的质数 ............................................................................. 82 本章小结 .................................................................................................................. 83 关键术语 .................................................................................................................. 84 课后习题 .................................................................................................................. 84 第5 章 数据类型进阶 .............................................................................................. 85 5.1 list 列表 .......................................................................................................... 85 5.1.1 list 简介 ............................................................................................... 85 5.1.2 list 操作 ............................................................................................... 87 5.2 tuple 元组 ....................................................................................................... 92 5.2.1 tuple 简介 ............................................................................................ 92 5.2.2 tuple 操作 ............................................................................................ 93 5.3 dict 字典 ......................................................................................................... 96 5.3.1 dict 简介 .............................................................................................. 96 5.3.2 dict 操作 .............................................................................................. 98 5.4 str 字符串 ..................................................................................................... 100 5.4.1 str 简介 .............................................................................................. 100 5.4.2 str 操作 .............................................................................................. 102 本章小结 ................................................................................................................ 105 关键术语 ................................................................................................................ 105 课后习题 ................................................................................................................ 105 第6 章 函数 ........................................................................................................... 106 6.1 函数入门 ...................................................................................................... 106 6.1.1 内置函数 ........................................................................................... 106 6.1.2 函数定义 ........................................................................................... 107 6.1.3 函数调用过程 ................................................................................... 108 6.1.4 计算统计数据 ................................................................................... 111 6.2 函数进阶 ...................................................................................................... 119 6.2.1 递归................................................................................................... 119 6.2.2 最大公约数 ....................................................................................... 121 6.2.3 斐波那契数列 ................................................................................... 123 本章小结 ................................................................................................................ 125 关键术语 ................................................................................................................ 126 课后习题 ................................................................................................................ 126 第7 章 跨学科编程案例 ......................................................................................... 127 7.1 素数探究 ...................................................................................................... 127 7.1.1 判断素数 ........................................................................................... 127 7.1.2 孪生素数 ........................................................................................... 130 7.1.3 素数个数 ........................................................................................... 132 7.1.4 哥德巴赫猜想 ................................................................................... 135 7.2 概率游戏 ...................................................................................................... 137 7.2.1 掷骰子 ............................................................................................... 137 7.2.2 帕斯卡的游戏 ................................................................................... 139 7.2.3 蒙提霍尔问题 ................................................................................... 142 7.3 二进制 .......................................................................................................... 144 7.3.1 看懂二进制数 ................................................................................... 144 7.3.2 进制转换 ........................................................................................... 145 7.3.3 小数转二进制 ................................................................................... 147 7.4 凯撒密码 ...................................................................................................... 148 7.4.1 信息加密 ........................................................................................... 148 7.4.2 实现加密函数 ................................................................................... 150 7.4.3 解密信息 ........................................................................................... 151 7.5 探索分形 ...................................................................................................... 154 7.5.1 海龟绘图 ........................................................................................... 154 7.5.2 绘制分形树 ....................................................................................... 156 7.5.3 科赫雪花 ........................................................................................... 160 7.6 布朗运动 ....................................................................................................... 163 7.6.1 醉龟漫步 ........................................................................................... 163 7.6.2 醉龟军团 ........................................................................................... 165 7.6.3 气体扩散 ........................................................................................... 168 本章小结 ................................................................................................................ 170 关键术语 ................................................................................................................ 170 课后习题 ................................................................................................................ 170