This is a collection of lecture notes and programming exercises carried out as part of the Computational Physics 1 course at Yachay Tech University.
Wladimir Banda Barragán
This course provides an introduction to basic methods and techniques used in computational physics as well as an overview of recent progress made in several areas of scientific computing. The course describes basic concepts of object-oriented programming and includes detailed step-by-step examples of how to optimally utilise computers and programming languages to solve problems in physics. Topics range from data analysis and approximation and optimisation of functions, through numerical calculus and differential equations, to matrix operations and spectral analysis. Each section of the course includes practical examples on different areas of science and technology in which computational physics has played a major role in the last decade.
-
Introduction to computer science and scientific programming
-
Errors and uncertainties in computations, computer algorithms, and languages
-
Object-oriented programming, data input/output, plotting, statistics, data fitting, and regression
-
Function approximation, interpolation and extrapolation, Spline approximation.
-
Array programming, vectors, matrices, and images
-
Matrix operations, basic image processing, and visualisation tools
-
Linear equation systems and eigenvalue problems
-
Iterative methods for linear and non-linear systems
-
Numerical differentiation
-
Numerical integration
-
Numerical optimisation, root-finding and extreme values of functions.
-
Computational thinking for modelling and simulation in physics
-
Fourier analysis, discrete Fourier transform and the Fast Fourier transform algorithm
-
Wavelet analysis and discrete wavelet transform
-
Introduction to Monte Carlo methods
-
Monte Carlo simulations and applications
-
Ordinary differential equations, and initial-value problems
-
The Runge-Kutta methods, boundary-value and eigenvalue problems with applications
-
Discrete and continuous nonlinear dynamics
-
Introduction to partial differential equations
The full course syllabus can be found here:
Evaluation has 4 components, with weights distributed as follows:
1. Formative Evaluation (2 Homework): 20%
2. Laboratory (2 Classwork): 20%
3. 1 Midterm Exam: 30%
4. 1 Final Exam: 30%
These components consist of the following tasks:
-
Homework include long application problems.
-
Classwork are quizzes with two components: one is carried out in class, one is carried out at home.
-
Both the midterm and final exams have two components, one is carried out in class, one is carried out at home.
The assignment deadlines and exam dates will be discussed and agreed upon in class. Once fixed, all deadlines are hard deadlines.
If you have questions on the material, you can find me in the office:
-
On Tuesdays: 14:00 - 15:00
-
On Wednesdays: 15:00 - 16:00
-
Students are responsible for ensuring the academic integrity of their submitted assignments and exams.
-
Cheating in exams, plagiarising, and copying code or solutions from other students, from previous years' solutions, and/or from Internet sources are all breaches of academic integrity.
-
The above includes copying code from AI chatbots (which are neither designed nor optimised for physics and programming), e.g. copying and pasting code from chatGPT infringes academic integrity.
-
Academic misconduct will be penalised according to our University’s regulations.
Late assignments accompanied by appropriate justification (e.g. a medical certificate, etc.) will receive no penalisation. Late assignments without appropriate justification will receive a penalisation of -1% per late hour.
I would like to thank my former student and teaching assistant, Gabriel Balarezo (https://github.com/GabrielBJ), for his valuable support and help in tutoring this course during the first semester of 2024.