经过一些尝试/除了作为一名教师,
我选择了坚持
:
(从无到有,调整到他们的水平)
-
很快,python是什么,您可以用它做什么。跳过关于技术方面的演讲,专注于他们想要做的事情:音乐、图形用户界面、网站、重命名文件等。
-
安装python,运行解释器。如果可以,请使用
iPython
.
-
变量、基本字符串和
print()
.
-
int和类型(包括类型错误和强制转换)。
-
基础微积分。展示他们
1 / 0
,
10 / 3
但不要用细节来打扰他们
.
-
把微积分变成变量。
-
在微积分中使用变量。
-
字符串格式化方式
%
. 仅显示“%s”,这就足够了,而且始终有效。始终使用一个元组(结尾为Coma),即使它只包含一个项。
-
列表、索引、切片和常见错误。然后将元组显示为冻结列表(和强制转换)。显示可以包含彼此。
让他们继续努力直到他们完全掌握了它
:这非常非常重要。
-
字典,常见错误。用元组和列表嵌套。坚持最后一点。
-
For
循环字符串、列表、元组、字典。
-
为了
循环嵌套类型。讨厌。慢慢来。知道那部分会改变一切。
-
词典
items()
,
values()
和
keys()
.
-
使用读取文件
for
包括
IOErrors
.
-
编写文件。
-
使用方法。使用字符串作为示例
strip()
,
lower()
,
split()
等。
不要解释OOP
如何使用方法。以后经常使用世界上的“方法”。
-
创建并使用模块文件。
只有一个模块
.里面的一切。
-
功能(仅与
return
没有
打印()
.
禁止
打印()
在函数中
)。
-
功能参数。
-
命名参数。
-
默认值参数。
-
Try
/
Except
以及例外情况。
-
Import
以及创建自己的目录模块。展示所有的特殊情况(解释它比你想象的要花更多的时间)。
-
演示一些标准模块(但是
别在上面花太多时间,这只是为了展示
):datetime、string、os和sys。避免像Itertools这样的抽象事物,它们是一个编码者的梦想,但却是学生的噩梦。
在那之后你可以把OOP带到桌子上,但这有点复杂。使用字符串、列表和文件引入对象的概念。他们拿到后,就从上课开始。那么愿原力与你同在:—)
它很吸引人
print
在函数中显示它是如何工作的,甚至更容易使用
raw_input
.
你应该不惜一切代价避免它
. 第一个让“返回值”的概念变得非常困难,第二个隐藏了程序的真实流程,学生很难理解你需要链接函数,而不是向用户询问你需要的每一个值。
一般来说,选择一种适用于某事物的方法并坚持下去。不要表现出其他的方式。例如:
仅显示字符串格式,使用
%
忽略
+
和
,
. 你总是可以在你的演讲材料中为那些想了解更多的人加上一点“进一步”的障碍。仅显示
对于
而不是
while
. 几乎90%的python程序都可以在没有
虽然
. 避免
+=
. 不要显示可以将字符串/列表/dict与int相乘。这不是错误的,但会导致他们产生误解。你需要他们关注主要的概念。
不显示集合。集合非常有用,但很少使用。鼓励他们在家里编码,问你他们是否解决不了问题。在这种情况下,如果集合是解决方案,则显示它们。知识集需要时间和学生的大脑资源,这些资源可以用于更经常使用的事物。如果没有你,他们以后有足够的时间学习新工具:
专注于独自学习困难或耗时的事情。
同样的道理
enumerate
. C或Java背景的学生将使用索引来循环,而不是使用
对于
如果你给他们
枚举
. 出于类似的原因,保持
len
,
fd.read
,
fd.realines
和
range
对于最后一门课程,如果您有时间学习“高级python”,它将被授予“高级python”的称号。
甚至不要考虑生成器、元类和装饰器。很少有学生能抓住这些东西,
即使经过几个月的练习
. 列出理解,
with
如果你觉得你的学生很聪明,可以在最后的一些课程中加入三元运算。
最终,
任意实施良好做法
. pep8格式、良好的体系结构、名称约定、没有不变的默认参数等。他们现在还不知道。别费事,你是老师,你有权不时地说“这就是它的本来面目”。
哦,如果他们不从学习字节码、递归、汇编、复杂性、冒泡排序、堆栈、实现细节等开始,他们会是更好的程序员。如果你把时间浪费在教一个不会编写好的Python程序的人上,他就是看不到这是怎么回事。实践是带来理论的最好工具。再说一遍,如果你准备的正确,他们以后会自己学习其他的东西,所以
优先考虑和,不要害怕跳过概念,即使是简单/重要的概念。
.