tags:

views:

857

answers:

11

I need to deliver one and half hour seminar on programming for students at the department of mathematics.

I have chosen python as language.

  1. What should be content of my presentation ?
  2. What are good resources available ?
  3. What is necessity of programming for maths students?
  4. How will knowledge of programming will help them?

Thank you !!!

NOTE: I know here is one post but it doesn't solve my problem.

+8  A: 

Do the getting started guide to scipy?

http://www.scipy.org/Getting_Started

monkut
May want to focus in on NumPy: http://www.scipy.org/NumPy
PTBNL
+4  A: 

Assuming that these students are new to programming (which is quite likely for math students), you'll want to give them a basic introduction to programming (what a function is, what a variable is, how each of these differ from functions and variables in math, etc).

Show them some example programs, with a view to things that will be helpful for math: numerical methods, matrix multiplication, etc.

Wherever possible, wow them so that they'll get excited about using computers for their own projects. Some Python/Math resources

Rob Lachlan
A: 

I'm assuming this is for Freshmen (only because most higher level Math students will likely know how to program)? If so, do something that is fun and relevant. Go through the basics, but maybe walk them through the logic / basic framework for a Game (which are heavily math oriented) or Python-Based Graphing Calculator.

If you want to get them real geeked though, show them Mathematica. I know, it's not what you selected ... but when I was a Sophomore Math major and first saw what you could do with it, I was in love.

Jess
You may also try Sage Notebook which is pretty cool -- and is Python based.
nimrodm
A: 

Python will work well, but GNU Octave may be better.

Arafangion
Octave may be better for engineering students. Not sure about math.
nimrodm
+6  A: 

Sage: http://www.sagemath.org/

Amit
http://wiki.sagemath.org/Talks
Harald Schilly
A: 

What should be content of my presentation ?

The concept of functional programming with Python. Some introduction to third party modules like NumPy and SciPy.

What are good resources available ?

Hans Petter Langtangen, Python Scripting for Computational Science, Springer

What is necessity of programming for maths students?

None. Usually maths students will have no problem in programming, since most programming language were developed to solve maths problem.

How will knowledge of programming will help them?

The computer was earlier developed as a tool for scientist to help them solve scientific/mathematics problems efficiently in a very short time, as compared to human.

Selinap
> What is necessity of programming for maths students? None.This is a very strange answer.
Stefan Thyberg
A: 

You are going to have to decide what you want to show them. If you want to show them how to using a computer can be a useful tool in mathematics show them sage and how you can perform numerical methods with it to get answers to hard questions. Then manipulate some algebraic formulas with it. Maybe show how it can whip through hard integrals and derivatives without sweating. They will be nearing the end of some of their first calulus courses after all.

None of this displays why they need to know how to program of course. This just shows how useful other people's programming is for them to use. While you do have the full power of python in sage the reality is the odd "for loop" and some "if statements" is really all of the programming most mathematicians will do with sage most of the time (though there is a significant minority who will do a lot more). If you want to go down this road I would suggest you try to get your hands on one of the Experimental mathematics books(http://www.experimentalmath.info/). These are the guys who (amongst many other interesting results) came up with BBP numbers: which is the way to find arbitrary digits of pi. They mostly use maple and mathematica but most of this work translates to sage.

I would strongly suggest you don't show them how to actually implement numerical methods themselves. Very few mathematicians are writing programs to solve numerical problems. Most just plug their programs into other people's programs. So I don't think showing how they could implement these methods themselves, if only they knew how to program, will excite anyone.

If this were me I think I would probably give a seminar building a simple game plugin for cgsuite (http://cgsuite.sourceforge.net/). I recognize that this is java and not python but their are a lot of advantages to this approach. First young mathematicians always get excited by combinatorial game theory. You are fundamentally showing them how they can use math to always win at certain games. It's like you are giving them a super power.

Second, you are implementing the rules of a game in a program. Game rules are great ways to learn programming idioms because they translate so directly into programming concepts.

And finally, you end up with a tool that can play your game perfectly. 90 minutes is a long time for a seminar as far as I'm concerned. If you can end on a bang, like with 10 minutes of playing a game against a computer, they will leave excited instead of bored and drained.

Steven Noble
+1  A: 

I would recommend solving a few different kinds of problems from Project Euler in Python and having a discussion about the solutions, how they could have been done differently to be more efficient, etc. as part of the seminar. Python is a very elegant language for solving mathematical problems and should be one of those easier understood than most by mathematics students, so I think you made a good choice there.

Stefan Thyberg
A: 

http://www.sagemath.org

In our wiki is a collection of talks, they may help you! http://wiki.sagemath.org/Talks

Also be aware, that Sage contains NumPy, SciPy and SymPy. Therefore all information about these three python libraries hold for Sage.

Harald Schilly
A: 

sagemath, es muy completo y lo mejor de todo es que se implementa sobre python, lo cual lo hace muy extensible, además extender el leguaje no queda ahí, se puede externer a C, ya que es muy sencillo hacer librerias en C/C++ para python.

Miuler
Please use English.Try <a href="http://babelfish.yahoo.com/translate_txt">this</a> or other tools for translation.
TheMachineCharmer
+1  A: 

I would bring up using Python as a free & open source option to replace/augment expensive packages like Matlab, IDL, etc via:

  • scipy - fft's,
  • ipython - "shell"/debugger
  • matplotlib - 2d graphing
  • MayaVi - 3d graphing/visualization

This video may be helpful.

Pete