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?

  1. 有趣且高效 — 编程体验轻松,学生能快速获得成就感
  2. 平衡实用与概念 — 既可做实际项目,又可引入 CS 概念
  3. 多平台支持 — Linux、Windows、Mac 均可运行
  4. 开源免费 — 学生可在家继续使用

与 C++/Java 对比

  • 无编译链接问题,解释执行
  • 语法简洁,减少语法错误干扰
  • 丰富的标准库,可做有意义的项目
  • 支持过程式和面向对象编程

内容结构

第一部分:基础概念

  1. 程序 — 什么是程序,第一个 Python 程序
  2. 变量 — 数据类型、命名规则
  3. 函数 — 函数定义、参数传递
  4. 条件执行 — if/else/elif 分支
  5. 递归 — 递归思维、递归追踪
  6. 字符串 — 字符串操作、格式化

第二部分:数据结构

  1. 列表 — 序列、修改、方法
  2. 字典 — 映射类型、键值对
  3. 元组 — 不可变序列
  4. 数组 — 数值计算基础

第三部分:面向对象

  1. 对象 — 类与实例
  2. 属性 — 封装、访问控制
  3. 继承 — 多态、方法重写
  4. 复杂数字 — 自定义类型设计

第四部分:调试与异常

  1. 调试 — 常见错误类型
  2. 异常 — 错误处理机制

附录

  • GNU 自由文档许可证

关键概念详解

编程思维三要素

  1. 分解 — 将大问题分解为子问题
  2. 抽象 — 提取共性,忽略细节
  3. 算法化 — 设计可执行的步骤序列

递归的核心思想

  • 基准情况(base case)— 终止条件
  • 递归情况(recursive case)— 向基准情况收敛
  • 递归追踪 — 理解调用栈

对象设计原则

  • 封装数据和方法
  • 隐藏内部实现细节
  • 通过接口交互

教学特色

项目驱动

  • pyTicket — 技术问题报告系统(Jeffrey 的学生作品)
  • 游戏开发 — 增强学习趣味性
  • 数据分析 — 实际应用示例

练习设计

  • 每章配有练习题
  • 鼓励学生发现并修正书中错误(获得奖励)
  • 从错误中学习编程调试

关联知识

备注

  • 本书采用 GNU 自由文档许可证(GFDL)
  • 源代码可从 http://www.thinkpython.com 获取
  • 适合零基础的编程入门学习者
  • 强调”思考方式”而非语法记忆