作者:empty 页数:240 出版社:empty |
我看到的问题之一是教材。1999年1月, 我正准备使用Java教一门编程入门课程, 我之前已经开了三次课, 但是却感到越来越沮丧。课程的不及格率太高,即使对于及格的学生,他们整体的收获也太低。它们都太厚重了, 写了太多关于Java的不必要细节, 却缺乏如何编程的上层指导(high-level guidance) 。这些教材都陷入了陷阱门效应(trapdoor effect) :开始的时候简单, 逐渐深入,然后大概到了第五章左右,基础差的学生就跟不上了。学生们看的材料太多,进展太快, 最后, 我在接下米的学期里都是在收拾残局(pickup the pieces) .·聚焦于编程, 而不是编程语言, 我只涵盖了Java最小可用子集, 易除了其余的部分,所以,在开始上课前两周,我决定自己写一本书,我的目标是:·尽量简短。让学生们读10页,胜过让他们读50页。·谨慎使用术语。我会尽量少用术语,而且第一次使用时,会给出定义.·循序渐进。为了避免陷阱门,我将最难的主题拆分成了很多个小节。我需要一个书名,所以一时兴起,我选择了《如何像计算机科学家一样思考》。这本书的第一版很粗糙,但是却起了作用,学生们读了它之后,对书中内容理解的很好,因此我才可以在课堂上讲授那些困难,有趣的主题,并让学生们动手实践(这点最重要).我将此书以GNU自有文档许可的形式发布, 允许用户拷贝、修改和传播此书。有趣的是接下来发生的事, 弗吉尼亚一所高中的教师Jeff Elk ne采用了我的教材, 并改为使用Python语言, 他将修改过的书发给了我一份, 就这样, 我读着自己的书学会了Python。2001年, 通过GreenTea Press, 我出版了本书的第一个Python版本,2003年, 我开始在Olin College教书, 井且第一次教授Python语言, 与Java教学的对比很明显。学生们遇到的困难更少,学到的更多,开发了更有趣的工程,并且大部分人都学的更开心。
此后,我一直致力于改善本书,纠正错误,改进一些示例,新增教学材料,尤其是练习题。是一些变化:最后的结果, 就是此书。现在的书名没有之前那么浮夸, 就叫《Think Python》。下面ThikPython2e中译版.1.0·我在每章的最后新增了一个名叫调试的小节,我会在这些小节中,为大家介绍如何发现及避免bug的一般技巧, 开提醒大家注意使用Python过程中可能的陷阱.·我增补了更多的练习题,从测试是否理解书中概念的小测试,到部分较大的项目.大部分的练习题后,我都会附上答案的链接。·我新增了一系列案例研究——更长的代码示例,既有练习题,也有答题解释和讨论·我扩充了对程序开发计划及基本设计模式的内容介绍。·我增加了关于调试和算法分析的附录。《Think Python》第二版还有以下新特点:·本书及其中的代码都已更新至Python 3.·我增加了一些小节内容, 还在本书网站上介绍如何在网络浏览器上运行Python.这样,如果你嫌麻烦的话, 就可以先不用在本地安装Python.·在海龟绘图这章中, 我没有继续使用自己编写的海龟绘图包“Swampy“, 改用了一个更标准的Python包turtle, 这个包更容易安装, 也更强大。·我新增了一个叫作“The Goodies 的章节, 给大家介绍一些严格来说并不是必须了解的Python特性, 不过有时候这些特性还是很方便的。我希望你能使用该书愉快的工作,也希望它能帮助你学习编程,学会像计算机科学家一样思考,至少有那么一点像,
1.1本书与众不同的历史
12Acknwledgments.
2第一章:程序之道
3第二章:变量、表达式和语句
什么是程序?
算术运算符.
值和类型.
形式语吉和自然语言
调试,.
术语表
练习题.
赋值语句,
变量名.
表达式和语句
脚本模式,
运算顺序
字符申运算
置对巧
注释调试术语表
3.10练习题
数调用
数学函数
组合、,
新建函数
定义和使用.
执行流程.
形参和实参
变量和形参都是局部的.
堆1图
有返回值雨数和无返回值数
为什么写函数?
么写的数:
调试.
简单的重复.
练习.
封装-
泛化.
接设计
原料
开发方案
文档字符申
二选一执行.
链式条件
嵌套条件.
递归,,.
适归函数的堆栈图
返回值
增量式开发,,
组合,
4第三章:函数
4.13术语表
4.14练习题.
拍丑丑斜药勿
5第四章:案例研究:接设计
5.1turtle模块
5.10调试:
5.11术语表
5.12练习题
6第五章:条件和递归
6.1地板除和求余
6.2布尔表达式.
6.3逻辑运算符
64有条件的执行
6.10无限递归:
6.11键盘输入
6.12调试.
6.13术语表+++
6.14练习题.
7第六章:有返回值的函数
布尔函数
再谈递归
如之
检查类型
调试,
术语表
练习题
调试
8第七章:迭代
81重新赋值
8.2更新变量
83while语句
84break
8.5平方根
8.6算法
8.8米语表
8.9练习题
9第八章:字符串
9.11字符串是一个序列:.
使用fr环遍历:
7符申切片
字符串是不可变的
搜索,
循环和计数
字符串方法.
in运算符
字符串比较
调试.
912术语表
9.13
练习题.
10第九章:文字游戏
10.1读取单词列表
10.2练习
10.3搜索
10.4使用素引进行循环
10.5调试
10.6术语表
10.7练习题
11第十章:列表
11.1列表是个序列
11.2列表是可变的
11.3通历列表
11.4列表操作
115列表切片,
11.6列表万法
映射,筛选和归并
耐除元素
列表和字符申
辛典作为计数器集合
元组是不可变的.
11.10对象和值