28004 - Foundations of Informatics T-1 (A-K)

Course Unit Page


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

Quality education

Academic Year 2021/2022

Learning outcomes

Basic and operative knowledge of computer architectures. Knowledge of principles, methodologies, and tools for solving low-complexity problems. Capability of applying the competencies in the projcet and development of small programs, following the object-oriented paradigm.

Course contents

1. Computer Architecture
General architecture of a computer. Von Neumann machine. Memory devices.

2. Computer software
The operating system. Tools for programming: editors, debuggers, compilers, and interpreters. Development phases of a program.

3. Programming concepts
Methods for problem solving. Algorithms. Methodologies of structured and modular programming. Iteration and recursion.

4. Programming languages
Programming languages: concepts and history. Syntax and semantics.

5. Java Language
Introduction to object-oriented programming. Object-oriented paradigm. Fundamenals of the Java programming language. Algorithms and data structures in Java. Inheritance. Advanced data structures in Java.


  1. A. Chianese, V. Moscato, A. Picariello, C. Sansone: Le radici dell'informatica, I edizione. Maggioli Editore
  2. W. Savitch: Programmazione con Java, II edizione. Pearson
Some additional slides (in Italian) may be provided by the teacher on the web site, that will also provide exam exercises (with solutions), programming software, etc.

Teaching methods

The course is provided by means of slides displayed during lecture hours. Slides correspond to the content of the official book adopted for the course.

Lectures are integrated with computer-based experiences in a laboratory, held by the tutor: each experience tackles a particular theme, for which real problems are proposed; such problems are to be solved using the knowledge obtained during lecture hours.

Fluent spoken and written italian is a necessary pre-requisite: all lectures and tutorials, and all study material will be in italian.

Assessment methods

Achievements will be assessed by the means of a final exam. This is based on an analytical assessment of the "expected learning outcomes" described above. In order to properly assess such achievement the examination is composed of a practical test (2.5 hours long), possibly followed by an oral exam.

In order to be accepted to the exam, the student should register through the AlmaEsami application.

The exam usually consists of two parts: the first part will be devoted to the assessment of the theoretical topics, and it will consist in answering few questions. The second part will consist in implementing a small program, using the Java language. In order to pass the written exam, a minimum score of 15 points is needed.

The oral session is required only in the case the score obtained in the practical exam does not exceed 17, or when requested by the teacher. The oral session consists of a technical conversation with the teacher in order to demonstrate a knowledge of the key concepts of the subject. The oral exam should be taken in the same session of the practical exam.

Teaching tools

Classroom lessons will be held using slides, which will be integrated with the use of the blackboard for the development of exercises.

Lab hours are supported by the tutor of the course. Students will be assigned a PC, so as to practice the concepts learned during the lessons, and to improve their programming capabilities.

Links to further information


Office hours

See the website of Federico Chesani

See the website of Armir Bujari