Ricerca di contatti, progetti,
corsi e pubblicazioni

Algorithms & Data Structures

Descrizione

COURSE OBJECTIVES

Algorithms and data structures are fundamental to computer science. They are the essence of computer programs. The performance of any software system depends on the efficiency of its algorithms and data structures, and more generally, the study of algorithms provides insights into the nature of problems. This course teaches algorithmic programming, meaning how to solve problems with computers, and how to design and reason about algorithms. The course also teaches the purpose as well as the strengths and weaknesses of some of the most fundamental algorithms and data structures.

 

COURSE DESCRIPTION

The course covers basic notions of: complexity, asymptotic worst-case and average complexity, big-O notation, complexity classes; general algorithmic strategies, brute force, greedy, divide-and-conquer, and dynamic programming; common algorithms, searching and sorting, elementary graph algorithms, basic data structures, stacks, queues, linked lists, rooted trees; more advanced data structures, B-trees, heaps, hash tables.

 

LEARNING METHODS

Theoretical lectures combined with a lot of programming exercises.

 

EXAMINATION INFORMATION

Homework assignments, midterm exam, final exam, all consisting of algorithmic problems and programming exercises.

 

REFERENCES

  • Textbook: "Introduction to Algorithms" (Third Edition), by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Cliff Stein, published by MIT Press and McGraw-Hill.

Persone

 

Carzaniga A.

Docente titolare del corso

Eslahi Kelorazi M.

Assistente

Ghasemian Zoeram H.

Assistente

Rezaalipour M.

Assistente

Informazioni aggiuntive

Semestre
Primaverile
Anno accademico
2020-2021
ECTS
6
Lingua
Inglese
Offerta formativa
Bachelor of Science in Informatics, Corso di base, Corso, 1° anno