Course syllabus for Computer programming and numerical analysis

Course syllabus adopted 2025-02-13 by Head of Programme (or corresponding).

Overview

  • Swedish nameProgrammeringsteknik och numerisk analys
  • CodeSEE125
  • Credits9 Credits
  • OwnerTKTFY
  • Education cycleFirst-cycle
  • Main field of studyComputer Science and Engineering, Mathematics, Engineering Physics
  • DepartmentSPACE, EARTH AND ENVIRONMENT
  • GradingUG - Pass, Fail

Course round 1

  • Teaching language Swedish
  • Application code 57118
  • Open for exchange studentsNo
  • Only students with the course round in the programme overview.

Credit distribution

0121 Project 3 c
Grading: UG
3 c
0221 Project 6 c
Grading: UG
3 c3 c

In programmes

Examiner

Eligibility

General entry requirements for bachelor's level (first cycle)
Applicants enrolled in a programme at Chalmers where the course is included in the study programme are exempted from fulfilling the requirements above.

Specific entry requirements

The same as for the programme that owns the course.
Applicants enrolled in a programme at Chalmers where the course is included in the study programme are exempted from fulfilling the requirements above.

Aim

The purpose of this course is to provide the students with basic skills in programming and numerical analysis, a powerful combination to solve a wealth of scientific problems. The strength of this combination lies in their common reference to algorithms: numerical analysis develops and provides algorithms for solving mathematical problems, while programming automates and performs tasks from an algorithm. This course will train the students in these two fields, mainly using the Python programming language.

Learning outcomes (after completion of the course the student should be able to)

Knowledge and understanding
  • Explain basic programming language concepts, e.g., statements, input, output, expressions, variables, control flow constructs, argument passing, functions, recursion
  • Express mathematical formulas as programming language expressions and algorithms
  • Choose appropriate datatypes and data structures for different kinds of data
  • Structure large programs into manageable and reusable units by the use of functions

Competence and skills
  • Implement algorithms in the Python programming language
  • Solve scientific problems using numerical techniques for e.g. linear algebra, differentiation, integration, root-finding, differential equations
  • Utilize functionality from existing Python libraries
  • Write programs that manipulate numeric and textual data and produce properly formatted plots
  • Write programs that read, transform, and generate files in the file system
  • Write clear and well-structured code, following best programming practices.
  • Test different numerical methods and algorithms
Judgement and approach
  • Assess the complexity and computational resources needed for typical programming tasks
  • Determine the efficiency and reliability of an algorithm
  • Analyse code written by others and find errors and possibilities for improvement

Content

The course introduces programming using primarily Python with specific focus on algorithm-based numerical solutions of common scientific problems. The student will gain comprehensive knowledge of the algorithms via Python and will be introduced to the basic concepts and tools of computer programming and numerical analysis, namely:
  • Algorithm and source code interpretation
  • Data types, variables and arrays
  • Conditions and loops
  • Functions
  • Error analysis and floating-point arithmetic
  • Numerical differentiation and integration
  • Linear algebra: working with matrices
  • Roots of equations
  • Interpolation and approximations
  • Ordinary differential equations

Organisation

The course contents are divided into discrete modules. Each module consists of a lecture, exercise sessions and project assignments.
Weekly lectures present programming and numerical analysis concepts and tools, together with a broad perspective on their application. Subsequently, a number of physics problem sets are used as starting points for the student's own learning. The student will produce their own code and implement existing algorithms. The course runs over three periods.

Literature

- Numerical Methods in Physics with Python - Alex Gezerlis, Cambridge University Press, ISBN 9781108772310 https://numphyspy.org/

Examination including compulsory elements

The course is examined through written assignments and oral presentations. All three periods include project work on a bi-weekly basis. The project work consists of programming assignments and problem sets and is typically performed in groups of two. Each group presents and discusses orally part of their work with a member of the teaching team several times over the course.

The course examiner may assess individual students in other ways than what is stated above if there are special reasons for doing so, for example if a student has a decision from Chalmers about disability study support.