COURSE GOALS:
The aim of this course is acquisition of knowledge and skills in modeling complex systems using numerical methods and computer programming that can be applied in any area of basic or applied sciences. In the first part of the course, students independently solve basic physical problems on computer in order to acquire knowledge and skills in the application of certain numerical methods. In the final part of the course, students independently solve more demanding project task in theoretical physics with the aim of further development of research competencies.
LEARNING OUTCOMES AT THE LEVEL OF THE PROGRAMME:
1. Knowledge and understanding
1.3 demonstrate profound knowledge of the most important physics theories, which includes their interpretation, experimental motivation and confirmation, logical and mathematical structure, and description of the related physical phenomena
2. Applying knowledge and understanding
2.1 develop a way of thinking that allows the student to set the model or to recognize and use the existing models in the search for solutions to specific physical and analog problems
2.2 recognize analogies in the situations that are physically different, as well as in the situations analogous to the physical ones, as well as applying known solutions when solving new problems
2.3 apply standard methods of mathematical physics, in particular mathematical analysis and linear algebra and corresponding numerical methods when solving physics problems
4. Communication skills:
4.2 acquire the skills needed to adapt the presentation of his/her research results to experts in the field as well as to broader public
4.3 use English as the language of communication in the profession, the use of literature, and writing scientific papers and articles
5. Learning skills
5.1 consult professional literature independently as well as other relevant sources of information, which implies a good knowledge of English as a language of professional communication
5.4 engage in highly professional work that requires modeling, implementation of numerical calculations and application of technologies based on the development of physics
LEARNING OUTCOMES SPECIFIC FOR THE COURSE:
Upon completion of the course the student will be able to:
1. Explain the limitations of numerical precision and the possible causes of errors in modeling physical systems on the computer;
2. Apply vector and matrix calculus in numerical solving of physical problems;
3. Apply methods for interpolation, extrapolation and fitting physical data;
4. Apply numerical integration methods in the description of physical systems;
5. Apply Monte Carlo methods in computer simulations;
6. Apply methods of numerical solving of differential equations in the description of physical systems;
7. Solve the boundary value problem using shooting method;
8. Analyze physical systems and experimental data using fast Fourier transform (FFT);
9. Independently use professional literature and other relevant sources of information in the field of scientific computing, including the Internet.
COURSE DESCRIPTION:
1. Numerical accuracy, sources of numerical error, error analysis in modeling physical systems on the computer;
2. Numerical derivation in physics;
3. Operations with vectors and matrices, solving linear systems of equations;
4. Nonlinear equations and root finding, bisection method, NewtonRaphson method, secant method;
5. Numerical interpolation, extrapolation and fitting to data;
6. Numerical integration  NewtonCotes quadrature, Gaussian quadrature, multidimensional integration in the description of physical systems;
7. MonteCarlo methods in the description of radioactive decay, MonteCarlo integration, numerical simulation of random walk, diffusion, Metropolis algorithm;
8. The eigenvalue problem, diagonalization;
9. Differential equations  Euler, RungeKutta, Adams methods in describing the dynamics of nonlinear oscillator and pendulum, as well as the properties of neutron stars and white dwarfs;
10. The boundary value problem, shooting method in solving the Schroedinger equation for different potentials;
11. Partial differential equations in solving the problem of diffusion;
12. Fourier analysis of nonlinear oscillations. The algorithm of fast Fourier transform and applications in spectral analysis;
Each topic is covered by the corresponding numerical example that is worked out in computer classroom.
REQUIREMENTS FOR STUDENTS:
Students are required to attend classes regularly, to participate in solving problems in computer classroom. In the final stage of the course, students will solve more advanced project assignment, and deliver the results in the form of written seminar work.
GRADING AND ASSESSING THE WORK OF STUDENTS:
During the semester students solve problems in a computer classroom, and their achievements are evaluated. This contributes 50% to the overall mark. The project assignment and respective seminar work contributes 50% to the overall mark.

 Morten Hjorth Jensen, Computational Physics, University of Oslo, 2009.
 S.E. Koonin, D.C. Meredith: Computational Physics, AddisonWesley, 1990.
  Rubin H. Landau, Manuel Jose Paez, Cristian C. Bordeianu, A Survey of Computational Physics  Introductory Computational Science, Princeton University Press, 2008.
 W.H. Press, S.A. Teukolsky, W.T. Vetterling, B.P. Flannery: Numerical Recipes, The Art of Scientific Computing, Cambridge University Press, 2002.
