28004 - Foundations of Informatics T-1 (L-Z)

Course Unit Page


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

Quality education Gender equality Industry, innovation and infrastructure

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 project and development of small programs, following the object-oriented paradigm.

Course contents

Requirements/Prior knowledge

To successfully follow the teaching, no prior knowledge or skills in the computer science field are required.

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



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. D. Sciuto, G. Buonanno, L. Mari: Introduzione ai sistemi informatici, VI edizione. McGraw-Hill, 2022.
  2. W. Savitch: Programmazione di base e avanzata con Java. II edizione. Pearson, 2018.
Some additional slides (in Italian) may be provided by the teacher on the course 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 contents of the official books adopted for the course.

Lectures are integrated with computer-based practice exercises: each exercise tackles a particular theme, for which real problems are proposed; such problems are to be solved using the knowledge obtained during lecture hours.

In consideration of the type of activity requested and teaching methods adopted, the attendance of this activity requires the prior participation of all students in modules 1 and 2 of training on safety in the study places, in e-learning mode.

Assessment methods

Exam assessment aims at testing the achievement of the following learning outcomes:

  • knowledge of computer hardware/software architectural bases
  • acquisition of skills for the formulation and analysis of algorithms
  • ability to program algorithms in a given programming language (Java)

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 session (60 minutes long, without the help of notes or books, or devices such as calculators or similar), possibly followed by an oral exam.

The practical session consists of:

  • the implementation of a Java program to solve a problem; the text of the problem is usually divided into 2/3 points to be developed
  • answering closed and open questions about the theoretical part of the entire course program (programming language included)

In order to pass the practical exam, correct answers to the open questions and a free of error implementation of the first point of the Java program are mandatory requirements.

The oral session is required only at the request of the teacher, in order to verify the originality of the practical exam carried out by the student. 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.

To obtain a passing grade, students are required to at least demonstrate a master knowledge of the key concepts of the subject and some algorithmic and logical thinking abilities. Higher grades will be awarded to students who demonstrate an organic understanding of the subject, a comprehensible use of technical language, problem solving capabilities and programming skills. A failing grade will be awarded if the student shows knowledge gaps in key-concepts of the subject, inappropriate use of technical language, and/or logic failures in problem solving and in programming capabilities.

In order to participate to the exam, the student must register through the AlmaEsami application, and must meet the mandatory deadlines.

The passing grade is valid for the exam session it is achieved within and it will be registered, except for grade rejection that must be received by the teacher by the registration date. 

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 a tutor. Students will be assigned a PC, so as to practice the concepts learned during the lessons, and to improve their own programming capabilities.

Students will have the opportunity to practice at home by installing on their own PC the programming software used in computer-based practice exercises held in laboratory and during the exam.

Links to further information


Office hours

See the website of Wilma Penzo