Scientific Programming: Algorithms

General Info

The contacts to reach me can be found at this page.

Timetable and lecture rooms

Lectures will take place on Tuesdays from 15:30 to 17:30 (synchronous online if not otherwise communicated) and on Thursdays from 15:30 to 17:30 (synchronous online if not otherwise communicated). This second part of the Scientific Programming course will tentatively run from 03/11/2020 to 14/12/2020.


The midterm of this part of the course will take place on Wednesday, December 16th, online at 11:30-13.30.


In the moodle page of the course you can find announcements and videos of the lectures. It can be found here.


The slides shown during the lectures will gradually appear below:

Teaching assistants

David Leoni (for Data Science)

Erik Dassi (for QCB)

Course material

Brad Miller and David Ranum. Problem Solving with Algorithms and Data Structures using Python. An interactive version is freely available at this link.

Other material includes the following books:

  • Lutz. Learning Python (5th edition). O’REILLY (2013)

  • Hetland. Python Algorithms: Mastering Basic Algorithms in the Python Language. Apress, 2nd ed. (2014)

  • Cormen et al. Introduction to Algorithms (3rd edition). MIT Press.

and (thanks to Prof. Alberto Montresor)

  • Introduction to algorithms | Link

  • Big-Oh Notation | Link

  • Sorting | Link

  • Dynamic Programming | Link

  • Greedy Algorithms | Link

  • String Algorithms | Link


I would like to thank Prof. Alberto Montresor for kindly allowing me to use his slides and Dr. David Leoni for all his help and for sharing Jupman with me. I would also like to thank Dr. Stefano Teso for allowing us to use some of his material of a previous course.