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. Fast Fourier Transform  
6. Memory Management  
7. Containers: Stack  
8. Containers: Queue and List  
9. Containers: Priority Queue  
10. Graphs: Connectivity  
11. Graphs: Paths, Trees and Flows  
12. Trees  
13. Containers: Set and Dictionary  
14. Hashing  
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


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

Here are the links for the proposed problems and reporting solved problems:

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: .