Course syllabus

SEE125 Programmeringsteknik och numerisk analys lp2 HT24 - lp4 VT25 (9 hp)
SEE125 Computer programming and numerical analysis

 

How to navigate the course

Follow the material posted every week in Modules.
Keep track of Announcements.
Throughout the course, work on Assignments.
Check out Course info to see an overview of the course schedule, examination information and more.

 

Contact details

Teacher and examiner
Georgia (Gina) Panopoulou georgia.panopoulou@chalmers.se

Teacher
François Joint joint@chalmers.se

Teaching assistants
Behzad Bojnordi Arbab: bojnordi@chalmers.se (LP2+LP3+LP4)
Ramlal Unnikrishnan: ramlal.unnikrishnan@chalmers.se (LP2+LP3+LP4)
Peter McEvoy: peter.mcevoy@chalmers.se (LP2)
Siddharth Kumar: siddharth.kumar@chalmers.se (LP3)
Eleanor May: Eleanor.May@chalmers.se (LP4)

Kursutvärderare

Algot Lindblom: algotlin@student.chalmers.se

Vincent Rubenson: vinrub@student.chalmers.se

 

 

Course aim

TLDR: Learn how to 'digitize' math problems using the python programming language. Just like Analysis allows you to think of real-world problems in terms of mathematical tools (integrals, derivatives etc), Numerical Analysis helps you think of the same problems computationally - so you can use computers to solve all sorts of problems.

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 students in these two fields, using the Python programming language. 

In LP2 the focus is on learning the basics of Python to write simple programs to store, manipulate, analyze and plot data. In LP3 we begin to explore numerical methods, learning how to 'do math on the computer'. We will develop computational thinking skills and apply them to solve problems from various branches of math (calculus, linear algebra). In LP4 we use the skills from LP2,3 to explore algorithms for solving more advanced math problems connected to the physical world (including non-linear algebra, ordinary differential equations, fitting and interpolation).

 

Schedule

See Course plan for an overview of the topics and deadlines to keep in mind. See TimeEdit for times, dates and locations of the course instances.

 

Course Literature

Book (for LP3, LP4): Numerical Methods in Physics with Python - Alex Gezerlis, Cambridge University Press, ISBN 9781108772310 https://numphyspy.org/

Other materials (videos, documentation, articles) posted with each weekly module.

 

Course structure

The course includes lectures (1 per week) and hands-on sessions in the computer rooms (2 per week). The lectures and accompanying literature introduce key concepts for each week, while the hands-on sessions are where students build the necessary knowledge - learning by doing practice tasks and assignments.

The reading material, lecture notes and accompanying code are posted under Modules on the Canvas page.

Bi-weekly assignments are designed to help students master the intended learning outcomes. Assignments are mandatory - see more info here: Policy on Assignments/Examination

The course is taught in English.

 

Learning outcomes

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.

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 in 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

 

Examination

See Policy on Assignments/Examination

Link to Studieportalen https://www.chalmers.se/en/education/your-studies/find-course-and-programme-syllabi/course-syllabus/SEE125/?acYear=2024/2025

 

Changes since the last course session

The structure of the lectures in LP2 has been updated with more interactive segments and live coding to enhance understanding. The number of in-person lectures has been reduced from 2/week to 1/week, in order to allow for asynchronous learning activities (videos, self-reading, quizzes) that help students more quickly gain programming skills. New supporting materials have been added in LP2 to provide more resources for learning programming basics. Assignments have been updated for clarity and closer alignment with learning outcomes.

Course summary:

Date Details Due