Course syllabus for Computer programming and numerical analysis

Course syllabus adopted 2023-02-07 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 57123
  • Open for exchange studentsNo
  • Only students with the course round in the programme overview.

Credit distribution

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

In programmes

Examiner

Go to coursepage (Opens in new tab)

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
  • 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
  • Find relevant numerical analysis tools and program libraries and use them in adequate ways
  • Learn the syntax of Python

Competence and skills
  • Utilize functionality from existing Python modules, e.g., Numpy and Scipy
  • Use e.g., linear algebra concepts, differential equations, integrators, root finders and other mathematical models for solving science problems
  • Write well commented programs that manipulate numeric and textual data and produce properly formatted plots
  • Make programs that read, transform, and generate files in the file system
  • Use standard libraries and follow best programming practices
  • Test programs by various methods.
  • Use programming tools such as code editors and version control systems

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 integrations
  • Linear algebra: working with matrices
  • Roots of equations
  • Interpolations and approximations
  • Ordinary differential equations

Organisation

The course consists individual modules. Each module consists of introductory and follow-up lectures scheduled around exercise classes and project assignments. 
Weekly lectures will present the students with a few programming and numerical analysis concepts and tools, together with a broad perspective on their application. Subsequently, a number of physics problem sets will be used as starting points for the students own learning. The student will produce their own code and implement existing algorithms. In connection with the problem sets, we will have follow-up lectures that discuss different solving strategies and reflect on the different solutions.
The course runs over three periods.

Literature

- Learning Scientific Programming with Python - Christian Hill, Cambridge University Press, ISBN 9781107428225 https://scipython.com/

- 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. All three periods include project work followed-up by self-reflection reports, set at a bi-weekly period. The project work will consist of programming assignments and problem sets and is typically performed in groups of two. 

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 on educational support due to disability.