How to Think Like a Computer Scientist - Python编程入门
概述
《如何像计算机科学家一样思考》(How to Think Like a Computer Scientist: Learning with Python)是由 Allen Downey、Jeffrey Elkner 和 Chris Meyers 共同编写的 Python 编程入门教材,2002 年首次出版。本书强调编程思维过程而非语言特性,适合计算机科学初学者。
作者团队
- Allen Downey — 计算机科学家,原韦尔斯利学院教授,后任奥克兰大学教职
- Jeffrey Elkner — 弗吉尼亚州约克敦高中教师,将本书从 Java 翻译为 Python
- Chris Meyers — 专业程序员,俄勒冈州社区学院教师,负责面向对象编程部分
核心教学理念
为什么选择 Python?
- 有趣且高效 — 编程体验轻松,学生能快速获得成就感
- 平衡实用与概念 — 既可做实际项目,又可引入 CS 概念
- 多平台支持 — Linux、Windows、Mac 均可运行
- 开源免费 — 学生可在家继续使用
与 C++/Java 对比
- 无编译链接问题,解释执行
- 语法简洁,减少语法错误干扰
- 丰富的标准库,可做有意义的项目
- 支持过程式和面向对象编程
内容结构
第一部分:基础概念
- 程序 — 什么是程序,第一个 Python 程序
- 变量 — 数据类型、命名规则
- 函数 — 函数定义、参数传递
- 条件执行 — if/else/elif 分支
- 递归 — 递归思维、递归追踪
- 字符串 — 字符串操作、格式化
第二部分:数据结构
- 列表 — 序列、修改、方法
- 字典 — 映射类型、键值对
- 元组 — 不可变序列
- 数组 — 数值计算基础
第三部分:面向对象
- 对象 — 类与实例
- 属性 — 封装、访问控制
- 继承 — 多态、方法重写
- 复杂数字 — 自定义类型设计
第四部分:调试与异常
- 调试 — 常见错误类型
- 异常 — 错误处理机制
附录
- GNU 自由文档许可证
关键概念详解
编程思维三要素
- 分解 — 将大问题分解为子问题
- 抽象 — 提取共性,忽略细节
- 算法化 — 设计可执行的步骤序列
递归的核心思想
- 基准情况(base case)— 终止条件
- 递归情况(recursive case)— 向基准情况收敛
- 递归追踪 — 理解调用栈
对象设计原则
- 封装数据和方法
- 隐藏内部实现细节
- 通过接口交互
教学特色
项目驱动
- pyTicket — 技术问题报告系统(Jeffrey 的学生作品)
- 游戏开发 — 增强学习趣味性
- 数据分析 — 实际应用示例
练习设计
- 每章配有练习题
- 鼓励学生发现并修正书中错误(获得奖励)
- 从错误中学习编程调试
关联知识
- Python极简经典教程
- Effective-Python
- 代码大全2 — 编程方法论
- 程序设计实践 — 工程化思维
备注
- 本书采用 GNU 自由文档许可证(GFDL)
- 源代码可从 http://www.thinkpython.com 获取
- 适合零基础的编程入门学习者
- 强调”思考方式”而非语法记忆