# 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

1. Introduction to Scientific Programming with Python, Joakim Sundnes. Springer, Cham. eBook ISBN: 978-3-030-50356-7.

1. 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

1. 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