09730 - Principles of Informatics

Academic Year 2023/2024

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

Introduction to informatics: an overview of the field.

Basics of computer architecture: Von Neuman architecture; main components of modern computers; software levels.

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

Introduction to algorithms, data structures, and programming: definition of algorithm; examples of algorithms; fundamental data structures; notations for representing algorithms (pseudo-code, flow diagrams); programming languages.

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.

Readings/Bibliography

Suggested textbooks:

  • Paul J. Deitel, Harvey M. Deitel, "Il linguaggio C: fondamenti e tecniche di programmazione", 9/Ed, Pearson, ISBN 978-8891906236 (ISBN e-book: 978-8891906243)
  • 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. Solutions of the exercises are provided.


Assessment methods

The course examination consists of a written/practical test with questions as well as practical exercises to be solved at a computer. The test is structured in order to verify that the student has reached the learning outcomes.

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 Sara Montagna