Module page

Informatica generale                  

academic year:   2013/2014
instructor:  Giancarlo Bongiovanni
degree course:  Mathematics - DM 270/04 (triennale)
type of training activity:  di base
credits:  9 (72 class hours)
scientific sector:  INF/01 Informatica
teaching language:  italiano
program:   I-Z
period:  II sem (03/03/2014 - 13/06/2014)


Lecture meeting time and location

Presence: highly recommended

Module subject:

Description and design of efficient algorithms

  • Introduction to the concepts of algorithms, data structures, efficiency, computational complexity.
  • Asymptotic notation.
  • Introduction to recursion.
  • The sorting problem.
  • Fundamental data structures (arrays, lists, queues, stacks, priority queues, trees).
  • Dictionaries.
  • Graphs.

C Language

  • Rules of "good programming".
  • Elementary notions of C language.
  • Arrays.
  • Functions.
  • Recursion in C.
  • Pointers.
  • Lists and binary trees.

Suggested reading: T.H. Cormen, C.E. Leiserson, R.L. Rivest e C. Stein, "Introduzione agli Algoritmi", seconda edizione, Mc Graw Hill, 2005. (disponibile sia in vers. italiana che inglese)

Type of course: standard

Knowledge and understanding: At the end of this course the students will know fundamental methodologies for the design and analysis of iterative/recursive algorithms, fundamental data structures and sorting algorithms, and basic implementations of dictionaries. Furthermore, they will have basic notions on trees and graphs. Finally, they will have enough knowledge to write simple C functions and programs, iterative or recursive.

Skills and attributes: At the end of this course the students will be able to explain the behavior of the most important data structures, to analyze their running times, and to design new variants for specific problems, highlighting how the performance varies changing the data structure. They will be able to describe and to analyze the most important sorting algorithms, and to apply the same design techniques to different problems; will be able to compare asymptotically execution times of the studied algorithms; will be able to design and analyze recursive algorithms. Finally, they will be able to write simple C programs both iterative and recursive.

Personal study: the percentage of personal study required by this course is the 65% of the total.

Examination dates on Infostud

Statistical data on examinations

© Università degli Studi di Roma "La Sapienza" - Piazzale Aldo Moro 5, 00185 Roma