Teaching programming to physics students

Hi, For those of you who remember my previous email, I have been given the go-ahead to do my masters project investigating and developing techniques to teach programming to second year physics undergraduates at the University of Southampton. What is my motivation for doing this project? When my peers took it many were put off programming by the current course - it seemed a boring and useless topic only interesting if you wanted to do computational physics. Over 90% of the students taking the course 2 years ago had never programmed before. As I enjoy tinkering with code, I hated seeing people put off something that is fun, hence the project. The existing course, which until last year was taught in the first year, can be found at http://www.phys.soton.ac.uk/teach/year1/notes/lab1/. The aim of the course (according to the new coordinator) is to teach the students problem solving skills using the computer - which involves teaching programming before they can start. The current course does very little relating back to reality - it's very much teaching programming and don't ask why you'd ever want this. I am aiming to show why these skills are useful and how programming technique can make the student's life easier in future years, and hope that this will increase the enthusiasm of the students. I am planning to use Python for the course, in no small part due to the VPython module. This is OK because it's a student project, but if I want the course to go beyond this and be adopted by the department then Python will be a problem, as the lecturer in charge believes that Java is more useful to teach students as Computer Scientists are taught it, while other lecturers favour C (the argument that the current students never want to program again after being introduced to those languages is not accepted). With Oxford University having switched the computational physics course back from Python to C I do not have this as a good example for the choice of Python. I need to determine how much can be taught in 12 weeks. My original idea was to teach enough for students to be able to write VPython simulations of physics phenomena, but I am not sure whether this is realistic or not. Because this is a course to teach them how to think I do not want it to degenerate into a 'run this example, and note the output. Run this one. Try modifying the code if time is left' kind of course. I'm excited by this project, but starting to feel I've bitten off more than I can chew, so any advice or suggestions you can make would be great. Do any of you have existing course material for teaching programming to physicists (or engineers) or for teaching physics using programming which you can share? I have been requested to provide some coverage of alternative teaching methods and techniques in my report. If anyone can point me to resources on this topic I'd be most grateful. Peter

Peter Bowyer wrote:
Hi,
For those of you who remember my previous email, I have been given the go-ahead to do my masters project investigating and developing techniques to teach programming to second year physics undergraduates at the University of Southampton. [Snip]
I'm excited by this project, but starting to feel I've bitten off more than I can chew, so any advice or suggestions you can make would be great. Do any of you have existing course material for teaching programming to physicists (or engineers) or for teaching physics using programming which you can share?
I have been requested to provide some coverage of alternative teaching methods and techniques in my report. If anyone can point me to resources on this topic I'd be most grateful.
My first suggestion would be to go through the edu-sig archives. :-) Then, I would take a chance and order: Python Scripting for Computational Science Series: Texts in Computational Science and Engineering, Vol. 3 Langtangen, Hans P. The author has a collection of slides here: http://www.ifi.uio.no/in228/lecsplit/ If I may suggest one additional topic (which I didn't see after a quick scan, it would be to explore simple functional programming techniques, and "demonstrate" the fundamental theorem of calculus, as inspired by Kirby. (http://aroberge.blogspot.com/2005/04/computing-derivatives-using-python.html) I wish I had some teaching material to offer you; perhaps in a few years, when I leave the administrative side of academia. Good luck! André

At 20:24 11/06/2005, André Roberge wrote:
My first suggestion would be to go through the edu-sig archives. :-)
Heh, I've been trying but haven't found the search tool too helpful, with few results for 'physics'. Is there an official searchable archive (aka something with a good search index)? Thanks for the book recommendation, I've ordered it from the library.
If I may suggest one additional topic (which I didn't see after a quick scan, it would be to explore simple functional programming techniques, and "demonstrate" the fundamental theorem of calculus, as inspired by Kirby. (http://aroberge.blogspot.com/2005/04/computing-derivatives-using-python.html)
Thanks for the idea, it looks a fun idea to work in. Peter -- Maple Design - quality web design and programming http://www.mapledesign.co.uk

Hi, we have been running a computational physics course, for the third time by now. All the material given to the students can be found at http://www.comp-phys.tu-dresden.de/cp2005/ However, it is all in German. But still you might get an idea... Best, Arnd
participants (3)
-
André Roberge
-
Arnd Baecker
-
Peter Bowyer