Search for contacts, projects,
courses and publications

Numerical Programming

People

Elefante G.

Course director

Zulian P.

Course director

Fumagalli G.

Assistant

Marchi G.

Assistant

Description

In this course, you will learn the principles of numerical programming for Data Science. We will explore algorithms, their numerical stability, computational efficiency, and proper implementation using the Python programming language.
This course adopts data-oriented programming concepts with a procedural flavor to align closely with the computational demands of Data Science. By emphasizing the layout, transformation, and flow of data through algorithms, you will develop an understanding of cache-friendly memory access patterns, vectorized computation, and performance-critical design. The procedural approach will allow us to write clear, testable code that mirrors the structure of numerical algorithms. This model maps naturally onto tools like NumPy, where array-based computation and explicit data flow are central.

Objectives

1.    Understand the mathematical concepts behind numerical algorithms and apply them in practice.
2.    Understand and apply data-centric programming paradigms.
3.    Implement and debug numerical algorithms using the Python programming language and its libraries for numerical computing.

Teaching mode

In presence

Learning methods

1.    Weekly theoretical lecture (2h)
2.    Weekly programming lecture (2h)
3.    Weekly tutorials / hands-on sessions (2h)

Examination information

Assignments and quiz (30%)
Final (70%)
Challenge exercises (10% bonus points)

Bibliography

Deepening

Education

Prerequisite