The teaching material is produced in various formats for printing and on-screen reading.
The PDF files are based on LaTeX and have seldom technical failures that cannot be easily corrected. The HTML-based files, called "HTML" and "ipynb" below, apply MathJax for rendering LaTeX formulas and sometimes this technology gives rise to unexpected failures (e.g., incorrect rendering in a web page despite correct LaTeX syntax in the formula). Consult the corresponding PDF files if you find missing or incorrectly rendered formulas in HTML or ipython notebook files.
Week | Topics to be covered | Projects and deadlines | Reading assignments | Lab activities |
---|---|---|---|---|
Week 2 | Introduction to programming | Warm-up exercise | Chapters 2 and 3.1 and 3.2 | presentation of Git and github |
Numerical derivation | From lecture notes | Installing c++ | ||
Week 3 | Linear algebra, Gaussian elemination, LU decomposition | Project 1, deadline February 5 | Sections 2.5, 3.1, 6.3, 6.4 | Installing and using Qt |
Discussion of pointers and arrays | Work on project 1 | |||
Week 4 | Linear algebra, Gaussian elimination | Sections 6.4, 6.5 and 6.6 | How to write a good report and more git and Qt stuff | |
Spline interpolation and iterative methods | Discussed during lab sessions | Read slides on how to write a report | ||
Week 5 | Eigenvalue problems, Jacobi's method | Sections 7.1-7.4 | Object orientation with examples | |
Week 6 | Jacobi's method and project 2 | Project 2, deadline March 5 | Finalize project 1 | |
Week 7 | Eigenvalue problems and project 2 | Sections 7.4-7.5 | Work on project 2 | |
Week 8 | Eigenvalue problems, Householder's method and power methods | Sections 7.4-7.7 | Object orientation | |
Read slides on object orientation and section 3.3 | Work on project 2 | |||
Week 9 | Ordinary differential equations (ODE) | Project 3, deadline April 2 | Sections 8.1-8.4 | Object orientation (OO) |
Week 10 | Spring break | |||
Week 11 | ODE with Runge Kutta methods and object orientation of project 3 | Read Sections 8.3-8.6 | Work on project 3 and Object orientation (OO) | |
Week 12 | Finalize ODE part. Introduction to Monte Carlo methods | Work on project 3 | ||
Week 13 | Random walks and the Metropolis algorithm | Sections 12.1-12.5 | Finalize project 3 | |
Discussion of project 4 and statistical mechanics | Sections 13.1-13.3 | More OO | ||
Week 14 | Project 4 and statistical mechanics | Project 4, deadline April 27 | Sections 13.4-13.7 | |
Week 15 | Partial differential equations | Parallelization and high-performance computing | Sections 10.1-10.2 | Work on project 4 |
Week 16 | Partial differential equations | Sections 10.1-10.2 | Finalize project 4 | |
Week 17 | Partial differential equations | Sections 10.3-10.4 | ||
Summary of course and discussions | ||||
Week 18 | Finals, Oral exam | Thursday May 2, BPS1420 |
The syllabus for this course consists of the lecture notes on the webpage (chapters 2-15) and 4 compulsory projects. The last three projects are graded and count 25% each of the final mark. A final oral exam with a presentation of a chosen project makes up the final 25% of the total grade.
In addition we recommend highly the texts on Numerical Recipes in C++ or Fortran90 by Press et al. The C, F77 and Fortran90 can be downloaded down for free, follow the links at Numerical Recipes.
The program library in C++ and Fortran2008 used in this course is a rewritten version of the Numerical Recipes codes.
All programs are available at the github address of the course