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. Graphs: Connectivity  
9. Containers: Priority Queue  
10. Graphs: Shortest Paths  
11. Graphs: Minimum Spanning Trees and Maximum Flows  
12. Trees  
13. Containers: Set and Dictionary  
14. Hashing  
15. Cryptography  
16. Fast Fourier Transform  

Here is on-line material for some of the lectures of the course (incomplete).

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:

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