Target group 
Master's Programme in Materials Research is responsible for the course.
Modules where the course belongs to:
 MATR300 Advanced Studies in Materials Research.
Optional for:
 Study Track in Computational Materials Physics
 Study Track in Medical Physics and Biophysics
 Study Track in Electronics and Industrial Physics
 PAP300 Advanced Studies in Particle Physics and Astrophysical Sciences.
Optional for:
 Study Track in Astrophysical Sciences
 TCM300 Advanced Studies in Theoretical and Computational Methods
The course is available to students from other degree programmes. 
Timing 
The course can be taken in the early or later stages of studies.
Given every second year (odd years) in the spring term. 
Learning outcomes 
 You will learn to know the most common numerical methods and algorithms
 You will understand the strenghts and weaknesses of these algorithms
 You will be able to apply these algorithms using
 selfmade programs
 numerical libraries
 numerical programs.

Completion methods 
Exercises and final project. Exercises are mostly small programming tasks and sometimes theoretical ones ('pen and paper'). In the final project a numerical problem larger than exercises is solved. 
Prerequisites 
 Calculus and linear algebra. Suitable courses at the University of Helsinki are MAPU III (Mathematics for physicists III).
 Programming skills in C/C++, Fortran90/95/2003/2008, Python or Matlab/Octave languages on the level of course 53399 Scientific Computing II.
 Programming is not taught in this course.
 Familiarity with the Linux programming environment is strongly suggested.

Recommended optional studies 
If you are interested in continuing in the subject course 53382 Tools for high performance computing is recommended. 
Contents 
 Tools, computing environment in Kumpula, visualization
 Basics of numerics: floating point numbers, error sources
 Linear algebra: equations, decompositions, eigenvalue problems
 Nonlinear equations: bisection, secant, Newton
 Interpolation: polynomes, splines, Bezier curves
 Numerical integration: trapeziodal, Romberg, Gauss
 Function minimization: Newton, conjugate gradient, stochastic methods
 Generation of random numbers: linear congruential, shift register, nonuniform random numbers
 Statistical description of data: probability distributions, comparison of data sets
 Modeling of data: linear and nonlinear fitting
 Fourier and wavelet transformations: fast Fourier transform, discreet wavelet transform, applications
 Differential equations: ordinary and partial differential equations

Study materials and literature 
Lecture notes.
 Supplementary reading
 J. Haataja, J. Heikonen, Y. Leino, J. Rahola, J. Ruokolainen, V. Savolainen: Numeeriset menetelmät käytännössä. CSC  Tieteellinen laskenta OY. 1999 (in Finnish).
 W. H. Press, S. A. Teukolsky, W. T. Vetterling, Brian P. Flannery: Numerical Recipes in C, Cambridge University Press.
 Tao Pang: An Introduction to Computational Physics, 2nd edition, Cambridge University Press.
 P. R. Bevington and D. K. Robinson: Data Reduction and Error Analysis for the Physical Sciences, Second edition, McGrawHill.
 H. Karttunen: Datan käsittely, CSC 1994 (in Finnish)

Activities and teaching methods in support of learning 
Weekly lectures and exercises (individual work). Final programming project (individual). Total hours 270. 
Assessment practices and criteria 
Final grade is based on exercises (50%) and final programming project (50%). 