Introduction to Scientific Computing
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
- Grading system
- Pass with distinction (5), Pass with credit (4), Pass (3), Fail (U)
- Finalised by
- The Faculty Board of Science and Technology, 3 March 2022
- 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 and combinations of these. 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, adaptivity and adaptive 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.