Algorithms and data structures

MSc in Statistical Methods and Applications

A.Y. 2018-2019

Office hours: Friday, 11:00 -12:00

Room: Department of Statistical Sciences, 4th floor, room 21

E-mail: irene.finocchi AT uniroma1.it

News

  • Second winter session: January 29, 9:00, aula 34, 4th floor of the Department of Statistical Sciences.
  • January exam: January 15, 9:00, aula 34, 4th floor of the Department of Statistical Sciences.
  • July 2 grades here. I will proceed with the grade registration on Infostud (for students who passed both parts) unless you let me know, by July 30 (next tuesday), that you are not going to accept the grade and want to improve it.
  • June 11 grades here. I will proceed with the grade registration on Infostud (for students who passed both parts) unless you let me know, by June 25 (next tuesday), that you are not going to accept the grade and want to improve it.
  • Second summer exam: Tuesday, July 2, 9:00, aula 34 Dipartimento di Statistica. Students who have already passed Part 1 can arrive at 10:30.
  • Final grades here. I will proceed with the grade registration on Infostud unless you let me know, by tomorrow (June 11), that you are not going to accept the grade and want to improve it.
  • Second midterm results here.
  • First summer exam: Tuesday, June 11, 9:00, aula P2 (main campus, close to the Chapel). Students who have already passed Part 1 can arrive at 10:30.
  • First midterm results (column 1: matricola; column 2: parsimonious sorting; column 3: recurrence relations: column 4: algorithm design; column 5: heaps; column 6: part 1 score)

Meeting times and location

Monday, 10:15-11:45, Aula VII

Wednesday, 10:15-11:45, Aula informatica XI - ex tipografia Tumminelli

Course topics

In this course you will learn how to master algorithmic programming techniques. The primary objective is to study algorithms and data structures that efficiently solve problems that would require very high computational resources (time or space) using trivial approaches. We will address problems frequently arising in practical applications and real-world situations, such as sorting, searching, and graph traversal, as well as general design techniques including divide and conquer, greedy algorithms, and dynamic programming.

The course will cover the entire algorithm engineering cycle, addressing the design, theoretical analysis, implementation, and experimental evaluation of algorithms and data structures. The students will practice solving computational problems, designing new algorithms, and implementing efficient solutions in Python.

Grading

  • Written exam with both reasoning questions (e.g., analyzing the running time of a fragment of code or designing a new algorithm) and comprehension questions (e.g., describing an algorithm presented in class or applying it to a given input).
  • We will insert two midterms: one in April (before Easter holidays) and one at the end of the course.
  • All written exams will be closed book and closed notes.