数学专业学生是否需要学习Python?

7

我需要为数学系的学生们进行一个半小时的编程研讨会。

我选择了Python语言。

  1. 我的演讲内容应该是什么?
  2. 有哪些好的资源可用?
  3. 编程对于数学专业的学生来说有什么必要性?
  4. 编程知识将如何帮助他们?

谢谢!!!

注意:我知道这里有一篇文章,但它并不能解决我的问题。

10个回答

9


4
假设这些学生是编程新手(对于数学学生来说很可能是这样),您需要向他们介绍基本的编程概念(什么是函数,什么是变量,它们与数学中的函数和变量有何不同等)。
展示一些示例程序,重点介绍对数学有帮助的内容:数值方法、矩阵乘法等。
在可能的情况下,让他们感到惊叹,以便他们会为自己的项目而兴奋。 一些Python/Math资源

2
我建议使用Python作为免费且开源的选项来替代或增强像Matlab、IDL等昂贵的软件包,具体包括:
- scipy - 快速傅里叶变换 - ipython - "shell"/调试器 - matplotlib - 二维图形 - MayaVi - 三维图形/可视化
这个视频可能会对您有所帮助:链接

1

你需要决定想要向他们展示什么。如果你想向他们展示如何使用计算机作为数学中有用的工具,可以向他们展示Sage,并演示如何使用它执行数值方法以获得解决难题的答案。然后,可以使用它来操作一些代数公式。也许可以展示它如何轻松处理难题积分和导数。毕竟,他们即将结束一些第一阶段的微积分课程。

当然,这些都不是展示他们需要了解编程的原因。这只是展示其他人编程对他们使用的有用性。虽然在Sage中你拥有Python的全部功能,但实际上,奇怪的“for循环”和一些“if语句”通常是大多数数学家在Sage中所做的全部编程(尽管有相当数量的人会做更多)。如果你想走这条路,我建议你尝试获取其中一本实验数学书籍(http://www.experimentalmath.info/)。这些人(除了许多其他有趣的结果)提出了BBP数字:这是找到π的任意位数的方法。他们主要使用Maple和Mathematica,但这项工作大部分可以转换为Sage。

我强烈建议您不要向他们展示如何实际实现数值方法。很少有数学家编写程序来解决数值问题。大多数人只是将他们的程序插入其他人的程序中。因此,我认为如果他们知道如何编程,向他们展示如何自己实现这些方法不会激发任何人的兴趣。

如果这是我的话,我想我可能会为cgsuite(http://cgsuite.sourceforge.net/)构建一个简单的游戏插件。我知道这是Java而不是Python,但这种方法有很多优点。首先,年轻的数学家总是对组合博弈理论感到兴奋。您基本上正在向他们展示如何使用数学在某些游戏中始终获胜。就像给他们超能力一样。

其次,您正在程序中实现游戏规则。游戏规则是学习编程习语的好方法,因为它们直接转化为编程概念。

最后,您最终将拥有一个可以完美玩游戏的工具。对于我来说,90分钟的研讨会时间很长。如果您可以以10分钟与计算机玩游戏结束,他们将兴奋而不是感到无聊和疲惫。


1
我建议在Python中解决几种不同类型的Project Euler问题,并在研讨会中讨论解决方案,如何更高效地完成等等。Python是解决数学问题非常优雅的语言之一,应该比大多数数学学生更容易理解,所以我认为你做出了一个很好的选择。

0

我猜这是给大一新生的(因为大多数高年级的数学学生可能已经知道如何编程了)?如果是这样,那就做些有趣且相关的事情。讲解基础知识,但也可以通过逻辑/游戏基本框架(这些都是与数学密切相关的)或基于Python的绘图计算器来引导他们。

如果你想让他们真正着迷,可以向他们展示Mathematica。我知道,这不是你选择的...但当我还是大二数学专业学生时,第一次看到它的功能时,我就爱上了它。


你也可以尝试一下Sage Notebook,它非常酷炫,而且基于Python。 - nimrodm

0

Python会很好用,但GNU Octave可能更好。


Octave可能更适合工程学生。对于数学不太确定。 - nimrodm

0

我的演示文稿应该包含什么内容?

使用Python的函数式编程概念。介绍一些第三方模块,如NumPySciPy

有哪些好的资源可用?

Hans Petter Langtangen,《计算科学的Python脚本编程》,Springer出版社。

数学专业学生需要编程吗?

不需要。通常数学专业学生在编程方面没有问题,因为大多数编程语言都是为了解决数学问题而开发的。

编程知识将如何帮助他们?

计算机最初是作为科学家的工具开发的,以帮助他们高效地解决科学/数学问题,比人类更快地完成任务


编程对于数学学生有什么必要性吗?没有。 这是一个非常奇怪的答案。 - Stefan Thyberg

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接