Python为数学学生?

时间:2009-02-27 06:10:16

标签: python math

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

我选择了python作为语言。

  1. 我的演讲内容应该是什么?
  2. 有哪些好资源?
  3. 数学学生编程的必要性是什么?
  4. 编程知识将如何帮助他们?
  5. 谢谢!!!

    注意:我知道here是一个帖子,但它无法解决我的问题。

10 个答案:

答案 0 :(得分:9)

答案 1 :(得分:7)

答案 2 :(得分:4)

假设这些学生不熟悉编程(很可能是数学专业的学生),你会想给他们一个基本的编程介绍(函数是什么,变量是什么,每个如何区别于数学中的函数和变量等。)

向他们展示一些示例程序,以及对数学有用的东西:数值方法,矩阵乘法等。

尽可能地让他们惊叹,以便他们对使用计算机进行自己的项目感到兴奋。 Some Python/Math resources

答案 3 :(得分:2)

我会提出使用Python作为免费&开源选项,通过以下方式替换/增加Matlab,IDL等昂贵的软件包:

  • scipy - fft's,
  • ipython - “shell”/ debugger
  • matplotlib - 2d graphing
  • MayaVi - 3d图形/可视化

This video可能会有所帮助。

答案 4 :(得分:1)

您将不得不决定要向他们展示什么。如果你想向他们展示如何使用计算机可以成为一个有用的数学工具,展示他们的圣人,以及如何用它来执行数值方法来获得难题的答案。然后用它来操纵一些代数公式。也许展示如何在没有出汗的情况下通过硬积分和衍生物。毕竟,他们将接近他们的第一个calulus课程的结束。

这些都没有显示为什么他们当然需要知道如何编程。这只是展示了其他人的编程对他们有用的用处。虽然你确实拥有圣人中蟒蛇的全部力量,但现实是奇怪的“for循环”,而一些“if语句”实际上是大部分时间内大多数数学家都会对圣人做的编程(尽管有很多少数人会做更多的事情)。如果你想沿着这条路前进,我建议你尝试一下实验数学书籍(http://www.experimentalmath.info/)。这些人(在许多其他有趣的结果中)提出了BBP数字:这是找到pi的任意数字的方法。他们大多使用枫木和数学,但大部分工作都转化为圣人。

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

如果这是我,我想我可能会为cgsuite(http://cgsuite.sourceforge.net/)举办一个简单的游戏插件研讨会。我认识到这是java而不是python,但它们对这种方法有很多好处。第一批年轻的数学家总是对组合博弈理论感到兴奋。你从根本上向他们展示了如何使用数学来赢得某些游戏。这就像你给他们一个超能力。

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

最后,您最终会得到一款可以完美展现您游戏的工具。就我而言,90分钟是研讨会的一个长时间。如果你可以结束一场比赛,比如用10分钟的时间对着电脑玩游戏,他们会兴奋而不是厌倦和消耗。

答案 5 :(得分:1)

我建议使用Python中的Project Euler解决一些不同类型的问题,并讨论解决方案,如何以不同的方式完成它们以提高效率等等作为研讨会的一部分。 Python是一种非常优雅的解决数学问题的语言,应该是数学学生比大多数人更容易理解的语言之一,所以我认为你在那里做了一个很好的选择。

答案 6 :(得分:0)

我认为这是针对新生的(只是因为大多数高年级的数学学生可能会知道如何编程)?如果是这样,做一些有趣且相关的事情。通过基础知识,但也许可以通过逻辑/基本框架(用于大量数学导向)或基于Python的图形计算器。

如果你想让他们真正的极客,请向他们展示Mathematica。我知道,这不是你选择的......但是当我还是一名二年级数学专业,并且第一次看到你能用它做什么时,我就爱上了。

答案 7 :(得分:0)

Python运行良好,但GNU Octave可能更好。

答案 8 :(得分:0)

我的演讲内容应该是什么?

  

使用Python进行函数式编程的概念。   介绍第三方模块,如 NumPy SciPy

有哪些可用资源?

  

Hans Petter Langtangen, Python计算科学脚本,Springer

数学学生编程的必要性是什么?

  

<强>无即可。通常数学学生在编程方面没有问题,因为大多数编程语言都是为解决数学问题而开发的。

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

  

与人类相比,计算机早期被开发为科学家帮助他们在短时间内有效解决科学/数学问题的工具

答案 9 :(得分:0)

http://www.sagemath.org

在我们的维基是一系列会谈,他们可能会帮助你! http://wiki.sagemath.org/Talks

另外请注意,Sage包含NumPy,SciPy和SymPy。因此,关于这三个python库的所有信息都适用于Sage。