Coursebooks 2016-2017


Numerical methods for visual computing


Lecturer(s) :

Jakob Wenzel Alban




Visual computing disciplines are characterized by their reliance on numerical algorithms to process large amounts of visual information such as geometry, images, and volume data. This course will familiarize students with a range of essential numerical tools to solve practical problems in this area


This course provides a first introduction to the field of numerical analysis with a strong focus on visual computing applications. Using examples from computer graphics, geometry processing, computer vision, and computational photography, students will gain hands-on experience with a range of essential numerical algorithms. 

The course will begin with a review of important considerations regarding floating point arithmetic and error propagation in numerical computations. Following this, students will study and experiment with several techniques that solve systems of linear and non-linear equations. Since many interesting problems cannot be solved exactly, numerical optimization techniques constitute the second major topic of this course. Students will learn how principal component analysis can be leveraged to compress or reduce the dimension of large datasets to make them easier to store and analyze. The course concludes with a review of numerical methods that make judicious use of randomness to solve problems that would otherwise be intractable. 

Students will have the opportunity to gain practical experience with the discussed methods using programming assignments based on Scientific Python.


Visual computing, numerical linear algebra, numerical analysis, optimization, scientific computing

Learning Prerequisites

Required courses

MATH-101 (Analysis I) and MATH-111 (Linear Algebra).


Recommended courses

The courses CS-211 (Introduction to visual computing) and MATH-106 (Analysis II) are recommended but not required.


Important concepts to start the course

Students are expected to have good familiarity with at least one programming language (e.g. C/C++, Java, Scala, Python, R, Ruby...). The course itself will rely on Python, but this is straightforward to learn while taking the course.

During the first weeks of the semester, there will be tutorial sessions on using Python and Scientific Python.

Learning Outcomes

By the end of the course, the student must be able to:

Teaching methods

Lectures, interactive demos, theory and programming exercises 

Expected student activities

Students are expected to study the provided reading material and actively participate in class and in exercise sessions. They will be given both theoretical exercises and a set of hands-on programming assignments. 

Assessment methods

1. Continuous assessment during the semester via project assignments (50%)

2. Final exam (50%)


Office hours Yes
Assistants Yes
Forum Yes



Slides and other resource will be provided in class.

The course textbook is 

Numerical Algorithms: Methods for Computer Vision, Machine Learning, and Graphics by Justin Solomon (freely available at the following link:

An optional reference is

Scientific Computing: An Introductory Survey (2nd edition) by Michael Heath

Ressources en bibliothèque

Prerequisite for

Although it is not a strict prerequisite, this course is highly recommended for students who wish to pursue studies in the area of Visual Computing, in particular: CS-341 (Introduction to computer graphics), CS-440 (Advanced computer graphics), CS-442 (Computer vision), CS-413 (Computational Photography), CS-444 (Virtual Reality), and CS-445 (Digital 3D geometry processing) 


In the programs

Reference week

Under construction
      Exercise, TP
      Project, other


  • Autumn semester
  • Winter sessions
  • Spring semester
  • Summer sessions
  • Lecture in French
  • Lecture in English
  • Lecture in German