gpt4 book ai didi

python - Python概念应该以什么顺序向绝对的初学者解释?

转载 作者:IT老高 更新时间:2023-10-28 21:11:14 27 4
gpt4 key购买 nike

我在给数学专业的本科生教授蟒蛇。我对向学生介绍各种Python概念的最佳顺序感兴趣。在我看来,在每个阶段,学生都应该能够使用当时可用的工具来解决一个非常重要的编程问题。每种新工具都应该能够对熟悉的问题提供更简单的解决方案。为了保持学生的注意力集中,在python中可以选择许多概念。他们也应该有动机,应该欣赏每一个新掌握的工具,而不是太多的记忆。以下是一些具体问题:
例如,我的前任在字符串之前引入了列表。我认为相反的是一个更好的解决方案。
函数定义应该在开始时引入还是在掌握基本的结构化编程思想之后引入,例如决策(if)和循环(while)?
词典前应该引入集合吗?
在课程的早期引入读写文件是更好还是应该在大部分课程中使用输入和打印?
任何有解释的建议都是最受欢迎的。
编辑:在高中,学生们被介绍到计算机。他们中的一些人学会了编程。在此之前,他们有一门课程,涵盖了Word、Excel、PowerPoint、HTML、LaTex、Mathematica的味道,但没有编程。5年前,我在这门课中使用了Mathematica,后续课程使用C和后来的Java。现在我教你如何介绍Python,在接下来的课程中,我的同事教你如何使用Python进行面向对象的编程。之后,学生可以选修数据结构、算法、优化等专业课程,在一些选修课程中,他们可以自学mathematica、matlab和r。

最佳答案

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

关于python - Python概念应该以什么顺序向绝对的初学者解释? ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2439638/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com