# Introduction to Scientific Computing

5 credits

Syllabus, Bachelor's level, 1TD342

Code
1TD342
Education cycle
First cycle
Main field(s) of study and in-depth level
Computer Science G1F, Mathematics G1F, Technology G1F
Fail (U), Pass (3), Pass with credit (4), Pass with distinction (5)
Finalised by
The Faculty Board of Science and Technology, 5 March 2024
Responsible department
Department of Information Technology

## Entry requirements

Participation in a course in programming in Python (for example Computer Programming I), or the course can be taken in parallel. Participation in one of the courses Single Variable Calculus, Single Variable Calculus M, Geometry and Calculus and Calculus for Engineers.

## Learning outcomes

On completion of the course, the student should be able to:

• account for and perform tasks that require knowledge of the key concepts included in the course;
• describe and use the algorithms included in the course;
• investigate properties of computational algorithms and mathematical models using the analysis procedures included in the course;
• solve technical and scientific problems given a mathematical model, by structuring the problem, choosing the appropriate numerical method, and generating a solution using mathematical software and own code (Python).

## Content

Numerical algorithms for functions of one variable and the use of software to solve such problems. The content is divided into three main areas with algorithms for: polynomial approximation and numerical integration, numerical solution of ordinary differential equations, solution of non-linear equations. Numerical integration: Simpson's method and the Trapezoidal rule. Ordinary differential equations: Runge-Kutta methods, explicit and implicit methods. Solution of non-linear equations: Bisection, Newton-Raphson's method. Analysis of the algorithms' accuracy, stability, convergence and efficiency. IEEE standard for floating point representation. Problem solving and programming in Python. Problem-solving methodology. Dividing a problem into sub-problems and implementation in Python. Use of advanced software for numerical problems (NumPy and Matlab). Important key concepts included in the course include algorithm, numerical method, discretization and discretization error, stability and instability, rounding error, machine epsilon, overflow and underflow, cancellation, floating point numbers, accuracy and order of accuracy, iteration and iterative method, iterative method convergence, convergence speed.

## Instruction

Lectures, problem solving sessions, laboratory exercises and mini projects.

## Assessment

Written exam (3 hp). Problem solving and mini projects with a written report (2 hp).

If there are special reasons for doing so, an examiner may make an exception from the method of assessment indicated and allow a student to be assessed by another method. An example of special reasons might be a certificate regarding special pedagogical support from the disability coordinator of the university.