28623 - Foundations of Informatics and Laboratory

Academic Year 2023/2024

  • Docente: Luca Foschini
  • Credits: 12
  • SSD: ING-INF/05
  • Language: Italian
  • Moduli: Luca Foschini (Modulo 1) Domenico Scotece (Modulo 2)
  • Teaching Mode: Traditional lectures (Modulo 1) Traditional lectures (Modulo 2)
  • Campus: Bologna
  • Corso: First cycle degree programme (L) in Electronics and Telecommunications Engineering (cod. 9065)

Learning outcomes

At the end of the course the student is introduced to the use of a high-level programming language and associated development environments. The student will develop analysis, specification, and design of algorithms capacities.

Course contents

  • Introduction to computer science
  • Introduction to computers
  • Introduction to networking
  • Introduction to Operating Systems
  • Algorithms and programming languages
  • Construction of software components
  • Methodologies for the design of problem solving on a small scale
  • Data Types
  • Input / Output
  • Expressions and control statements
  • Functions and Procedures
  • Recursive function invocation (introductory references)
  • Activation record model and run-time
  • Arrays and strings
  • Matrices
  • Text files and binary files
  • Dynamic memory allocation
  • Unix commands and console (introductory references)

C-language theoretical lessons will be completed by a strong lab part with numerous exercises and examples of hands-on programming in order to provide students with the ability to design and analyze simple algorithms (e.g., studying sorting algorithms and well-known numerical computation algorithms) giving at the same time intuitive notions about computational complexity.


  • Class slides available in material in electronic format .
  • D. Mandrioli, S. Ceri, L. Sbattella, P. Cremonesi, G. Cugola: "Informatica: Arte e mestiere", Terza Edizione, McGraw-Hill, Giugno 2008.

C language:

  • Kernighan, Ritchie: "The C Programming Language".
  • H. M. Deitel, J. Deitel, "C How to Program", Seventh Edition, Pearson-Prentice Hall, 2013.

C exercises:

  • A. Ciampolini, E. Lamma: "Esercizi di Programmazione in Linguaggio C", Progetto Leonardo, Esculapio, Bologna, 1999.

Teaching methods

The course includes 60 hours of lectures and 60 hours of lab.

Assessment methods

The evaluation module includes:
A lab test

  • Solving a problem by developing a running program in C language.
  • It should demonstrate the ability to actually produce an executable program that meets the requirements and specifications given.

A (written) test
  • It should also demonstrate that the student has assimilated "theoretical" parts of the course.

Teaching tools

Classroom teaching: slides shown during the lectures.
Lab with guided exercises.

Links to further information


Office hours

See the website of Luca Foschini

See the website of Domenico Scotece


Quality education Industry, innovation and infrastructure

This teaching activity contributes to the achievement of the Sustainable Development Goals of the UN 2030 Agenda.