我需要为数学系的学生们进行一个半小时的编程研讨会。
我选择了Python语言。
- 我的演讲内容应该是什么?
- 有哪些好的资源可用?
- 编程对于数学专业的学生来说有什么必要性?
- 编程知识将如何帮助他们?
谢谢!!!
注意:我知道这里有一篇文章,但它并不能解决我的问题。
你需要决定想要向他们展示什么。如果你想向他们展示如何使用计算机作为数学中有用的工具,可以向他们展示Sage,并演示如何使用它执行数值方法以获得解决难题的答案。然后,可以使用它来操作一些代数公式。也许可以展示它如何轻松处理难题积分和导数。毕竟,他们即将结束一些第一阶段的微积分课程。
当然,这些都不是展示他们需要了解编程的原因。这只是展示其他人编程对他们使用的有用性。虽然在Sage中你拥有Python的全部功能,但实际上,奇怪的“for循环”和一些“if语句”通常是大多数数学家在Sage中所做的全部编程(尽管有相当数量的人会做更多)。如果你想走这条路,我建议你尝试获取其中一本实验数学书籍(http://www.experimentalmath.info/)。这些人(除了许多其他有趣的结果)提出了BBP数字:这是找到π的任意位数的方法。他们主要使用Maple和Mathematica,但这项工作大部分可以转换为Sage。
我强烈建议您不要向他们展示如何实际实现数值方法。很少有数学家编写程序来解决数值问题。大多数人只是将他们的程序插入其他人的程序中。因此,我认为如果他们知道如何编程,向他们展示如何自己实现这些方法不会激发任何人的兴趣。
如果这是我的话,我想我可能会为cgsuite(http://cgsuite.sourceforge.net/)构建一个简单的游戏插件。我知道这是Java而不是Python,但这种方法有很多优点。首先,年轻的数学家总是对组合博弈理论感到兴奋。您基本上正在向他们展示如何使用数学在某些游戏中始终获胜。就像给他们超能力一样。
其次,您正在程序中实现游戏规则。游戏规则是学习编程习语的好方法,因为它们直接转化为编程概念。
最后,您最终将拥有一个可以完美玩游戏的工具。对于我来说,90分钟的研讨会时间很长。如果您可以以10分钟与计算机玩游戏结束,他们将兴奋而不是感到无聊和疲惫。
我猜这是给大一新生的(因为大多数高年级的数学学生可能已经知道如何编程了)?如果是这样,那就做些有趣且相关的事情。讲解基础知识,但也可以通过逻辑/游戏基本框架(这些都是与数学密切相关的)或基于Python的绘图计算器来引导他们。
如果你想让他们真正着迷,可以向他们展示Mathematica。我知道,这不是你选择的...但当我还是大二数学专业学生时,第一次看到它的功能时,我就爱上了它。
Python会很好用,但GNU Octave可能更好。
我的演示文稿应该包含什么内容?
使用Python的函数式编程概念。介绍一些第三方模块,如NumPy和SciPy。
有哪些好的资源可用?
Hans Petter Langtangen,《计算科学的Python脚本编程》,Springer出版社。
数学专业学生需要编程吗?
不需要。通常数学专业学生在编程方面没有问题,因为大多数编程语言都是为了解决数学问题而开发的。
编程知识将如何帮助他们?
计算机最初是作为科学家的工具开发的,以帮助他们高效地解决科学/数学问题,比人类更快地完成任务。
在我们的维基中有一系列的讲座,它们可能会对您有所帮助!http://wiki.sagemath.org/Talks
同时请注意,Sage 包含了 NumPy、SciPy 和 SymPy。因此所有关于这三个 Python 库的信息都适用于 Sage。