RGL
EPFL Logo

CS328: Nu­mer­ic­al Meth­ods for Visu­al Com­put­ing and Ma­chine Learn­ing (Fall 2025)

Lecture:
Thursday: 10:15-12:00
Exercise (in INF3):
Wednesday: 8:15-10:00
Wenzel Jakob
Instructor
Lovro Nuic
Teaching Assistant
Ekrem Fatih Yilmazer
Teaching Assistant

General information

Sum­mary:  Visu­al com­put­ing and ma­chine learn­ing are char­ac­ter­ized by their re­li­ance on nu­mer­ic­al al­gorithms to pro­cess large amounts of in­form­a­tion such as im­ages, shapes, and 3D volumes. This course will fa­mil­i­ar­ize stu­dents with a range of es­sen­tial nu­mer­ic­al tools to solve prac­tic­al prob­lems in this area.

Con­tents:  This course provides a first in­tro­duc­tion to the field of nu­mer­ic­al ana­lys­is with a strong fo­cus on visu­al com­put­ing and ma­chine learn­ing ap­plic­a­tions. Us­ing ex­amples from com­puter graph­ics, deep neur­al net­works, geo­metry pro­cessing, com­puter vis­ion, and com­pu­ta­tion­al pho­to­graphy, stu­dents will gain hands-on ex­per­i­ence with a range of es­sen­tial nu­mer­ic­al al­gorithms.

The course will be­gin with a re­view of float­ing point arith­met­ic and er­ror propaga­tion in nu­mer­ic­al com­pu­ta­tions. Fol­low­ing this, we will study and ex­per­i­ment with sev­er­al tech­niques that solve sys­tems of lin­ear and non-lin­ear equa­tions and per­form di­men­sion­al­ity re­duc­tion. Since many in­ter­est­ing prob­lems can­not be solved ex­actly, nu­mer­ic­al op­tim­iz­a­tion tech­niques con­sti­tute the second ma­jor top­ic of this course. We will take an ex­tens­ive look at auto­mat­ic dif­fer­en­ti­ation, the mech­an­ism un­der­ly­ing pop­u­lar deep learn­ing frame­works such as Py­T­orch and Tensor­flow.  The course con­cludes with a re­view of nu­mer­ic­al meth­ods that in­tro­duce ran­dom­ness to solve prob­lems that would oth­er­wise be in­tract­able.

Stu­dents will have the op­por­tun­ity to gain prac­tic­al ex­per­i­ence with the dis­cussed meth­ods us­ing pro­gram­ming as­sign­ments based on Sci­entif­ic Py­thon.

Pre­requis­itesMATH-101 (Ana­lys­is I) and MATH-111 (Lin­ear Al­gebra).

Stu­dents are ex­pec­ted to have good fa­mili­ar­ity with at least one pro­gram­ming lan­guage (e.g. C/C++, Java, Scala, Py­thon, R, Ruby...). The course it­self will rely on Py­thon, but this is straight­for­ward to learn while tak­ing the course. Dur­ing the first weeks of the semester, there will be tu­tori­al ses­sions on us­ing Py­thon and Sci­entif­ic Py­thon.

Al­though it is not a strict pre­requis­ite, this course is highly re­com­men­ded for stu­dents who wish to pur­sue stud­ies in the area of Visu­al Com­put­ing, in par­tic­u­lar: CS-341 (In­tro­duc­tion to com­puter graph­ics), CS-440 (Ad­vanced com­puter graph­ics), CS-442 (Com­puter vis­ion), CS-413 (Com­pu­ta­tion­al Pho­to­graphy), CS-444 (Vir­tu­al Real­ity), and CS-445 (Di­git­al 3D geo­metry pro­cessing) 

Learn­ing out­comes:  At the end of the course, stu­dents should be able to:

  • Write com­puter pro­grams that use nu­mer­ic­al lin­ear al­gebra and ana­lys­is tech­niques to trans­form and visu­al­ize data

  • Reas­on about ways of struc­tur­ing nu­mer­ic­al com­pu­ta­tions ef­fi­ciently.

  • Ana­lyze the nu­mer­ic­al sta­bil­ity of pro­grams built on float­ing point arith­met­ic

  • Re­cog­nize nu­mer­ic­al prob­lems in visu­al com­put­ing ap­plic­a­tions and cast them in­to a form that can be solved or op­tim­ized.

Teach­ing meth­ods: Lec­tures, in­ter­act­ive demos, the­ory and pro­gram­ming ex­er­cises

Ex­pec­ted stu­dent activ­it­ies: Stu­dents are ex­pec­ted to study the provided read­ing ma­ter­i­al and act­ively par­ti­cip­ate in class and in ex­er­cise ses­sions. They will be giv­en both the­or­et­ic­al ex­er­cises and a set of hands-on pro­gram­ming as­sign­ments. 

As­sess­ment meth­ods:

  1. Con­tinu­ous as­sess­ment dur­ing the semester via pro­ject as­sign­ments (35%)
  2. Fi­nal ex­am (65%)

Re­sources: Slides, lec­ture re­cord­ings, and op­tion­al read­ings are avail­able via Moodle.

Late policy: Late home­work sub­mis­sions are re­duced by -25% per late day (where “late” is defined by Moodle, which has a strict cut-off). Please abide by the dead­lines pos­ted on Moodle, double-check your sub­mis­sion, and do not post­pone to the last mo­ment to avoid ac­ci­dents. Please let us know ahead of time if you can't sub­mit in time due to med­ic­al reas­ons – in all oth­er cases, the dead­lines are strict.

Aca­dem­ic In­teg­rity: As­sign­ments must be solved and sub­mit­ted in­di­vidu­ally. Do not copy (or even look at) parts of any of the home­work from any­one else in­clud­ing the web. Do not make any parts of your home­work avail­able to any­one, and en­sure that your files are not ac­cess­ible to oth­ers. The uni­versity policies on aca­dem­ic in­teg­rity will be ap­plied rig­or­ously.

Schedule

Date Lecturer Contents
11.09.2025 Wenzel Jakob

Float­ing Point Arith­met­ic

18.09.2025 Wenzel Jakob

Lin­ear Sys­tems 1. Home­work 1 re­leased.

25.09.2025 Wenzel Jakob

Lin­ear Sys­tems II

02.10.2025 Wenzel Jakob

Lin­ear Sys­tems III. Home­work 2 out (HW1 due the day be­fore).

09.10.2025 Wenzel Jakob

Pro­cessor Ar­chi­tec­ture and Ef­fi­ciency I (CPUs)

16.10.2025 Wenzel Jakob

Pro­cessor Ar­chi­tec­ture and Ef­fi­ciency II (GPUs). HW2 due the day be­fore.

23.10.2025 Wenzel Jakob

Semester va­ca­tion

30.10.2025 Wenzel Jakob

Ei­gen­decom­pos­i­tion, Sin­gu­lar Value De­com­pos­i­tion. Home­work 3 re­leased.

06.11.2025 Wenzel Jakob

SVD con­tin­ued, Auto­mat­ic Dif­fer­en­ti­ation

13.11.2025 Wenzel Jakob

Auto­mat­ic Dif­fer­en­ti­ation contd., Root Find­ing

20.11.2025 Wenzel Jakob

Neur­al Net­works

27.11.2025 Wenzel Jakob

Non­lin­ear Op­tim­iz­a­tion. Home­work 4 re­leased (HW3 due the day be­fore).

04.12.2025 Wenzel Jakob

In­teg­ra­tion

11.12.2025 Wenzel Jakob

In­verse Graph­ics

18.12.2025 Wenzel Jakob

No class