Why were these notes developed?

The notes presented here on this website grew out of the need for a free, unified, easily-accessible, and complete reference for scientific computing with Python for usage by a wide spectrum of undergraduate and graduate students in Science and Engineering fields. Since 2017, these notes have been and are still being continuously updated and improved. Example University courses that have relied on these notes as the course’s textbook include,

  1. COE 301 (Spring 2017) - Engineering Computation lab (School of Engineering, Univ of Texas Austin)
  2. PHYS 6302 (Spring 2019) - Applications of Computers in Physics (Dept of Physics, Univ of Texas Arlington)
  3. DATA 1402 (Fall 2019) - Introduction to Scientific Computing (College of Science, Univ of Texas Arlington)
  4. PHYS 5391 (Fall 2019) - Data Science With Python (College of Science, Univ of Texas Arlington)

    Who is the author?

Amir Shahmoradi is a physicist, astronomer, bioinformatician by training and a science-lover in general, with extensive teaching & research experience and background in high energy physics, astronomy and astrophysics, theoretical physics, statistics, data analysis and modeling, computational physics, Molecular Dynamics simulations, stochastic processes, Monte Carlo Methods, Bayesian probability theory, biomedical sciences and MRI data analysis, bioinformatics and evolutionary biology, in particular, viral evolution, protein dynamics and interactions. He holds a Ph.D. in Physics from the University of Texas at Austin and is currently a Physics and Data Science faculty member at the University of Texas at Arlington. He can be reached via his email at shahmoradi@utexas.edu or https://www.cdslab.org.

Who is the audience?

The contents of the notes are appropriate for any college student from Freshman to Senior level, as well as graduate students who have no background in programming or scientific computing.

What are the outcomes upon successful completion?

The contents of these notes will cover the principles of computer programming using Python programming language, with an emphasis on scientific computing with Python. Specifically, upon completion of reading, students will know,

  1. programming paradigms,
  2. principles of software maintenance and collaborative project development,
  3. differences between compiled and interpreted programming languages,
  4. how to use Python as a simple calculator,
  5. how to use Python as an advanced scientific computation and graphics toolbox,
  6. how to formulate cast a scientific problem in the form of a computational programming algorithm,
  7. how to interoperate Python programs with other programming languages, in particular, the high-performance programming languages, such as Fortran and C,
  8. solve the scientific problem using computational, mathematical, and physical knowledge gained by following the notes.
  9. Understand the fundamental concepts of Machine Learning and Scientific inference to solve basic Machine Learning problems.