This is an introductory course in scientific programming with emphasis on learning the techniques used to model the universe and analyze data. The focus of the course will be on the application and implementation of practical computational techniques useful throughout the physical sciences. In particular we will extensively use the python numpy/scipy/matplotlib stack to create programs and apply them to data drawn from a number of real world sources (astronomy, physics, finance, etc.). Topics covered in the course will include numerical integra- tion, sampling (i.e. Markov Chain Monte Carlo), optimization, interpolation and extrapolation of data, and the basic techniques used in astrophysical simulations (numerical solutions to dif- ferential equations etc.). Students will complete a final project on a topic of their choosing to explore how the topics learned in class are used in cutting edge scientific research. This course is designed to be an introduction for students interested in research in physics and astronomy.
At the end of this course successful students:
- Will have comfort doing basic programming in python.
- Understand how to design and implement a jupyter notebook.
- Are comfortable synthesising reports in LATEX.
- Have developed a skill set of understanding the basic building block of scientific computing techniques.
- Can interface with GitHub.