09730 - Principles of Informatics

Academic Year 2021/2022

Learning outcomes

At the end of the course, the student will be acquainted with the basics of information representation, computation, algorithms, and computer programming (in particular: imperative, structured programming). The student will be able to design and implement algorithms in a programming language. 

Course contents

Basics of computer architecture: Von Neuman architecture; CPU structure.

Representation of information: representation of numeric information (two's complement, floating-point representation); representation of non-numeric information.

Introduction to algorithms and data structures: definition of algorithm; examples of algorithms; fundamental data structures; notations for representing algorithms.

The C programming language: fundamental constructs of the language: types, values, operators, expressions, functions, control flow structures, cycles; structured programming; iteration and recursion; arrays e pointers; algorithms on arrays (reverse, ordering, search); strings of characters.


Reference book:

- Paul J. Deitel, Harvey M. Deitel, "Il linguaggio C: fondamenti e tecniche di programmazione", 8/ed, Pearson, ISBN 978-8891901651

Further materials will be provided by the professor.

For further topics on the theory and fundamentals of informatics:

- Brookshear, J. Glenn. Computer science: an overview. Boston: Addison-Wesley, 2012.

For further topics on the C programming language:

- Brian W. Kernighan and Dennis M. Ritchie, "The C Programming Language, Second Edition", Prentice Hall, Inc., 1988. ISBN 0-13-110362-8 (paperback), 0-13-110370-9 (hardback).

Teaching methods

The teaching method consists of lectures, covering the theory and practice of computer science and programming, accompanied by practice through exercises at the computer.

Assessment methods

The course examination consists of a written/practical test with questions as well as practical exercises to be solve at a computer.

Teaching tools

The professors will provide materials to facilitate learning, including slides, lecture notes, and exercises. Laboratory classes will support practice. Tutoring will be provided to support learning throughout the coursework.

Office hours

See the website of Roberto Casadei

See the website of Giovanni Ciatto

See the website of Matteo Francia