Scientific Programming
Scientific Programming Syllabus
This course is an introductory level computer programming course focuses on the special needs of physics students to get them prepared for both academic and private sector career paths, whichever they prefer to pursue. Subjects will be covered are listed below as,
What is a computer? How it works? How it stores and manipulates data?
What is software? What are some well-known programming languages?
What is Python? Why do we choose it? What may you do using Python?
What is an algorithm?
Primitive data types and basic mathematical operations in Python
Integers, floats,
Operators on aforementioned data types
Loops and lists, sets.
Fibonacci series
Functions and branching
User input and exception handling
Error analysis
Arrays and plotting with NumPy and Matplotlib
Dictionaries and strings
Numerical derivation
Forward derivations
Numerical derivation applications
Particle on an inclined plane
Atwood machine
Chain running down the table
Rocket that consumes fuel over time
Particle with acceleration varying with time
Numerical interpolation, numerical integration and Monte Carlo method
Linear fit.
Interpolating experimental data
Integration examples
Calculating Pi with Monte Carlo
Multiple Integrals
Integrating differential equations
Verlet and velocity Verlet
Predictor-corrector algorithms and Runge-Kutta differential equation solving algorithm
Integrating differential equations examples
Re-solving simple pendulum numerically
Re-solving spring-mass system numerically
Damped oscillator
Two planets revolving around a star
A falling-body
Solving simple pendulum numerically
Solving spring-mass system numerically
(Pseudo) Random numbers
Generating random numbers
Markov-Chain Monte Carlo
Molecular geometry optimization
Symbolic Calculations via Python
Symbolic plotting
Database Usage
Sage
Physical Simulations
Course Books
Introduction to Scientific Programming with Python, Joakim Sundnes. Springer, Cham. eBook ISBN: 978-3-030-50356-7.
Scientific programming : C-language, algorithms and models in science, Luciano M. Barone, Enzo Marinari, Giovanni Organtini, Federico Ricci-Tersenghi. World Scientific Publishing Co. Pte. Ltd. Singapore. eBook ISBN: 9781299833371
Numerical Recipes, The Art of Scientific Computing. William H. Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling. Cambridge University Press. 1986. ISBN: 0 521 30811 9
Programs to be installed (for ones who want to study on their own pc)
You should download and install Anaconda. After that you should install several Python libraries. Instructions are here.