我正在向本科数学专业教授Python.我对学生应该介绍各种Python概念的最佳顺序感兴趣.在我看来,在每个阶段,学生应该只使用当时可用的工具来解决一个非平凡的编程问题.每个新工具都应该能够为熟悉的问题提供更简单的解决方案.为了让学生专注,必须选择Python中的众多概念.他们也应该激励并且应该欣赏每个新掌握的工具,而不需要太多的记忆.以下是一些具体问题:
任何有解释的建议都是最受欢迎的.
编辑:在高中时,学生们被介绍到计算机上.其中一些人学会了如何编程.在此之前,他们有一个课程,涵盖word,excel,powerpoint,html,latex,品味Mathematica,但没有编程.5年前我在本课程中使用了Mathematica,后续课程使用了C和后来的Java.现在我教Python的介绍,在后续课程中,我的同事在Python中教授面向对象的编程.之后,学生可以参加有关数据结构,算法,优化的特殊课程,以及他们在自己的Mathematica,Matlab和R上学习的一些选修课程.
e-s*_*tis 20
经过一些尝试/除了作为老师,我选择坚持:
(从无到有,调整到他们的水平)
print().1 / 0,10 / 3 但不要打扰它们的细节.%.只显示"%s",它足够并且始终有效.始终使用元组(具有结束昏迷),即使它只包含一个项目.For 循环字符串,然后列表,然后是元组,然后是字典.For循环嵌套类型.讨厌.慢慢来.知道这部分很好地改变了一切.items(),values()和keys().for包括读取文件IOErrors.strip(),lower(),split()等不解释OOP,只是如何使用的方法.从现在开始,使用世界"方法".return无print().禁止print()在功能).Try/ Except和例外.Import并创建自己的目录模块.显示所有特殊情况(它需要比你想象的更多时间来解释它).之后你可以把OOP放在桌子上,但它有点复杂.使用字符串,列表和文件来介绍对象的概念.当他们得到它时,从课程开始.那么力量可能与你同在:-)
print在函数中使用它来展示它的工作方式很诱人,而且使用起来更具吸引力raw_input.你应该不惜一切代价避免它.第一个使得很难带来"返回值"的概念,第二个隐藏了程序的真实流程,学生很难理解你需要链接功能,而不是要求用户提供每个值需要.
一般来说,选择一种适用于某些东西并坚持下去的方法.不要显示其他方式.例如:
仅显示字符串格式化%,并忽略+和,.您可以随时在讲座材料中为想要了解更多内容的人添加一些"更进一步"的内容.仅显示for而不是while.你可以编写几乎90%的Python程序while.避免+=.不要表明你可以将字符串/列表/字典与整数相乘.这没有错,但会导致他们误解.你需要他们专注于主要概念.
不要显示集.集很有用但很少使用.鼓励他们在家里编码并询问他们是否无法解决问题.在那种情况下,show会设置它们是否是解决方案.知道集合花费时间和学生的大脑资源可用于更常用的东西.如果没有你,他们将有足够的时间学习新工具:专注于单独学习困难或耗时的工作.
同样如此enumerate.具有C或Java背景的学生将使用索引循环而不是for给予它们enumerate.出于类似的原因,保持len,fd.read,fd.realines和range最后一门课程赋予"先进蟒蛇"如果您有任何时间上的方便.
甚至不要考虑发电机,元类和装饰器.即使经过数月的练习,这些也可以被极少数学生逮捕.with如果你觉得你的学生是聪明的驴,那么列表理解和三元操作可以带入一些最后的课程.
最终,任意执行良好做法.PEP8格式化,良好的体系结构,名称约定,没有不可变的默认参数等.他们现在无法了解它.不要打扰,你是老师,你有权不时地说"这就是它是怎样的".
哦,如果他们不是从字节码,递归,汇编,复杂性,冒泡排序,堆栈,实现细节等方面开始学习,那么他们将是更好的程序员.你浪费时间教给那些无法编码的人Python程序,他只是看不出这是什么.实践是你理论的最佳工具.如果你正确地准备它们,他们将在以后学习其他所有东西 - 所以优先考虑并且不要害怕跳过概念,甚至是简单/重要概念.