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