Algorithmics and Programming II

This material is used for the course Algorithmics and Programming II of the Degree Data Science and Engineering.

The lectures of the course are combined with practical programming sessions using a virtual learning environment for computer programming (


1. Introduction  
2. Abstract Data Types  
3. Algorithm Analysis  
4. Divide and Conquer  
5. Memory Management  
6. Containers: Stack  
7. Containers: Queue and List  
8. Containers: Priority Queue  
9. Graphs: Connectivity  
10. Graphs: Paths, Trees and Flows  
11. Trees  
12. Containers: Set and Dictionary  
13. Hashing  
14. Fast Fourier Transform  
Here are some files that contain all lectures of the course in different layouts:
  1 slide/page 2 slides/page 4 slides/page 9 slides/page 16 slides/page


Here is the link for the list of proposed and reported exercises:

A list of exercises (in Catalan) from the course Data Structures and Algorithms can be found here:

Lliçons (lectures)

Here you can find snippets of programming lectures by Jordi Petit and Salvador Roura. They contain different algorithms and data structures commonly used by programmers and algorithm designers:


The material contained in this site is the sole property of UPC. This material or any part of it can be viewed, printed, copied or distributed only for personal use or nonprofit educational purposes as long as the copyright notices are not removed.

Page maintained by Jordi Cortadella. Last update: .