- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我在给数学专业的本科生教授蟒蛇。我对向学生介绍各种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 / 3
loop on strings,then lists,then tuples,then dictionaries.
嵌套类型上的循环。讨厌。慢慢来。知道那部分会改变一切。
字典%
、For
和For
。
使用items()
读取文件,包括values()
。
正在写入文件。
使用方法。使用一个字符串作为示例,显示keys()
、for
、IOErrors
等。不要解释oop,只说明如何使用方法。从现在开始,经常使用世界上的“方法”。
创建并使用模块文件。仅一个模块。里面的一切。
函数(仅与strip()
一起使用,不与lower()
一起使用)。在函数中禁止split()
)。
功能参数。
命名参数。
默认值参数。return
/print()
和异常。print()
并创建自己的目录模块。展示所有的特殊情况(解释它比你想象的要花更多的时间)。
演示一些标准模块(但不要在上面花费太多时间,它只是为了展示):datetime、string、os和sys。避免像Itertools这样的抽象事物,它们是一个编码者的梦想,但却是一个学生的噩梦。
在那之后你可以把OOP带到桌子上,但这有点复杂。使用字符串、列表和文件引入对象的概念。他们拿到后,就从上课开始。愿原力与你同在。
在函数中使用Try
来显示它的工作原理是很有诱惑力的,而使用Except
则更具诱惑力。你应该不惜一切代价避免它。第一个让“返回值”的概念变得非常困难,第二个隐藏了程序的真实流程,学生很难理解你需要链接函数,而不是向用户询问你需要的每一个值。
一般来说,选择一种适用于某事物的方法并坚持下去。不要表现出其他的方式。例如:
仅使用Import
显示字符串格式,忽略print
和raw_input
。你总是可以在你的演讲材料中为那些想了解更多的人加上一点“进一步”的障碍。仅显示%
而不显示+
。几乎90%的python程序都可以在不使用,
的情况下进行编码。避免for
。不要显示可以将字符串/列表/dict与int相乘。这不是错误的,但会导致他们产生误解。你需要他们关注主要的概念。
不显示集合。集合非常有用,但很少使用。鼓励他们在家里编码,问你他们是否解决不了问题。在这种情况下,如果集合是解决方案,则显示它们。知识集需要时间和学生的大脑资源,这些资源可以用于更经常使用的事物。如果没有你,他们以后有足够的时间学习新的工具:集中精力学习那些单独学习很难或费时的东西。
同样适用于while
。C或Java背景的学生将使用索引来循环而不是while
如果你给他们+=
。出于类似的原因,如果您有时间,请保留最后一门课程的“高级Python”。
甚至不要考虑生成器、元类和装饰器。即使经过几个月的练习,也很少有学生能理解这些。如果你觉得你的学生很聪明,那么可以在最后的一些课程中加入清单理解、enumerate
和三元运算。
最后,任意地执行好的实践。pep8格式、良好的体系结构、名称约定、没有不变的默认参数等。他们现在还不知道。别费事,你是老师,你有权不时地说“这就是它的本来面目”。
哦,如果他们不从学习字节码、递归、汇编、复杂性、冒泡排序、堆栈、实现细节等开始,他们将是更好的程序员。如果你把时间浪费在教那些不能编写好的Python程序的人上,他就是看不到这是什么。实践是你带来理论的最好工具。同样,如果你能正确地准备,他们以后会自己学习其他的东西,所以优先考虑并且不要害怕跳过概念,即使是简单的/重要的概念。
关于python - Python概念应该以什么顺序向绝对的初学者解释? ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2439638/
我想要做的是在每个框的蓝色标题之后获取红色文本。 看来我必须添加另一个 div?我已经添加并修改了 .card-indus img 的位置,但结果永远不是我想要的。 你知道为什么即使我将 positi
所以我一直在努力掌握绝对和相对定位的诀窍。关于这个主题有很多教程和问题,我已尽力理解它们。除了这一点,我大部分时间都很好。我正在创建一个页面,其中有较小的缩略图图像,用户可以选择单击并展开图像。为此,
下面是我正在处理的代码。如您所见,有一个“#parent”div 和一个“#child”div。 '#child' div 有一个未定义的高度,这是因为有时,'#child' 的高度小于或长于它的父级
我目前正在创建一个看起来有点像这样的固定 header 。 https://gyazo.com/e0bab8ba195e33110b19123c7fc3c568 Logo 始终位于左侧,小按钮始终位于
我怎样才能得到一个绝对定位的子 div,当它放在父 div 的范围之外时不显示? https://jsfiddle.net/knp9ebys/9/ .papa { background:red;
如果我对 CSS 显得相当“菜鸟”,我深表歉意。我一直在尝试设置以下... #0 { width: 100%; height: y; border: 1px solid black; } #
很长一段时间以来,我一直在摆弄一个特定的布局问题,但我显然采用了错误的方式。 以下是分解为基本组成部分的方法: SOME HEADER
我创建了几个虚拟 Controller ,我希望能够从当前的 http 请求中获取 url。 例如: http://www.site.com/app_1/default.aspx ===> http:
我创建了几个虚拟 Controller ,我希望能够从当前的 http 请求中获取 url。 例如: http://www.site.com/app_1/default.aspx ===> http:
我想知道是否有一个库在某处提供受新类型保护的 FilePath 类型。我找到了我想要的http://hackage.haskell.org/package/darcs-2.8.4/docs/src/D
如果我尝试使用以下方式连接到我的嵌入式数据库: private static String url = "jdbc:sqlite:~/hr4413/pkg/sqlite/Models_R_US.db"
所以我是 django 的新手,我一直在研究 PHP CodeIgniter,其中将绝对 URL 放入 href 我通过调用 URL 帮助程序使用了一个名为 base_url 的函数 它给出的输出类
我有一个小问题。 我在其他 div 中有一些图像元素的容器 div。像这样的东西: 我需要将容器垂直居中,但我不能使用顶部:-healfHeight; mar
我有一个带有 inline-block css 位置的列表(div)。里面有一个 relative 定位的 ul 是隐藏的。所以我试图通过添加一些类将这个 div 转换为 absolute 。通常,当
我正在尝试设置一个卡住列,唯一需要解决的问题是同一行上其他 td 的高度不会扩展以匹配绝对定位 td 的高度。由于卡住标题中的文本是任意的,它可以跨越多行。 如果它不是绝对定位的,那么这将迫使同一行中
这个问题在这里已经有了答案: Centering text vertically and horizontally in a div (1 个回答) 关闭 5 年前。
当它的位置绝对时,我试图使一个框宽度为 100%? 下图是我想要做的 https://i.imgur.com/qMaT361.gif float .box1 { position:re
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and t
我有 3 个 div,都是 positioned: absolute,但是我想要填充窗口宽度的 div 只会适应其中文本的长度。我希望黄色 div #help 填充窗口的其余部分。 我知道这听起来很菜
这个问题在这里已经有了答案: Retrieve the position (X,Y) of an HTML element (32 个答案) 关闭 8 年前。 有时候,当我请求某个对象的.posit
我是一名优秀的程序员,十分优秀!