Scientific Computing
MNFAbout This Course
When confronted with a scientific task that requires computing, there are, broadly speaking, three things you have to do.
- First, use your knowledge of science to relate the task to a known problem-type.
- Use methods developed for said problem-type to create an algorithm for your problem.
- Program the algorithm, fix all the errors, and watch the computer do your task.
A programming course will teach you (3), whereas a numerical-analysis will focus on (2). For (1) there aren't really courses, you just have to practice.
This course is about the most important and most useful aspects from all three of the above. For (3) we will start with an introduction to programming in Python, but we'll be more relaxed about software-engineering issues than a programming course. For (2) we will introduce several concepts from numerical analysis, but the style will be more intuitive and less formal than a numerical-analysis course. And there will be lots of examples, because diverse examples are the only way to learn (1).
Requirements
No previous knowledge of programming is required, but a knowledge of physics and mathematics at the level needed to start university physics is expected.
A computer running any recent Windows or Mac OSX or Linux is needed. Some free software will need to be installed, but administrator privileges are not necessary.
The Team
Instructor: Prof. Marcelle Soares-Santos
Teaching Assistants: Felipe Andrade-Oliveria, Nicolas Angelides, Raphael Bertrand-Delgado, Alexander LaFleur, Danny Laghi, Leonard Lebrun, Sean MacBride, David Sanchez-Cid, Johannes Wüthrich, Daniel Zeitz
Credits
Additional contributions by Nicola Chiapolini, Prasenjit Saha, Nikita Batalov, Leila Freitag, Helena Kühnle, Alessandra Lorenzetti, Muhammad Al-Minawi, Aline Schneuwly, and Ioannis Velonias.
The course image cartoon is by Raphael Schoen.