DEIS
Dipartimento di Elettronica
Informatica e Sistemistica
Computing Systems: Advanced Programming, Operating Systems, and
Databases.
The course provides fundamentals of computer systems, covering both
architectural issues and applications. Nowadays, any engineer faces complex
applications that often require just simple specializations to fit some
specific purpose.
Moreover, database management systems are at the core of any information
systems, and it is important to know how they work, and how to design or at
least query a database.
First, we introduce object-oriented programming, using the JAVA
programming language. This language is then used to describe important data
structures, as vectors, linked lists, trees, heaps, and so on. The student
should now how these structures work, which one is more convenient depending on
the specific application, and how to use them, possibly exploiting available
libraries of classes and methods. We also show various techniques for solving
problems (greedy, divide et impera, dynamic programming, and backtracking). For
each technique, we describe some algorithms based on this technique and study
their computational complexity.
The second part of the course provides an introduction to computer
architectures and to operating systems concepts, as memory management,
processes, and file systems.
Finally, we deal with database management systems. We show how to design
a database, quickly covering conceptual, logical, and physical designing
issues.
In particular, we focus on relational databases, and use the standard
language SQL as data definition and data manipulation language.
The course is scheduled for the first semester of the
second year of the “Corso di Laurea in Ingegneria Gestionale.”
The final exam consists of a written test and an oral
test.