Salta al contenuto principale della pagina


CODE 66054
  • 9 cfu during the 1st year of 8719 INGEGNERIA INFORMATICA (L-8) - GENOVA
    LANGUAGE Italian
  • SEMESTER Annual


    Fondamenti di Informatica is an introductory course describing the basic concepts of computer engineering in a simple and organic way. Lectures focus on the foundational knowledge software development grounds on, by addressing both theoretical topics and practical aspects, the latter related to development of C++ programs. Fondamenti di Informatica is the first step of a three-years educational path, which makes the student know and apply the methodologies for software design and development.



    The aim of the course is to provide students with skills related to the design and development of software, using C/C ++ as a reference language.


    The course guides the students:

    1. In understanding topics of discrete mathematics, related to the basis of theoretical computer science.
    2. In conceptualizing aspects related to the foundations of programming.
    3. In extending such concepts to modular programming and abstract data types.

    At the end of the course, students will be able:

    1. To face simple discrete mathematics problems and link them to the aspects of computer science where such mathematical concepts are applied.
    2. To describe and apply the basic principle of procedural programming.
    3. To describe and apply the basic principle of modular programming and abstract data types.
    4. To solve simple problems automatically by means of programs written in C++ language.
    5. To translate specifications into a program written in C ++ language.


    None. We assume that participants do not have any previous experience with computer engineering and  programming, and the course guides them in the understanding of the basic principles of such disciplines.


    The course includes lectures and practical lessons.

    Lectures consist of the presentation of slides, examples, and simple exercises aiming at introducing and explaining concepts.

    Practical lessons imply both exercises done by teachers and exercises that students have to do, partially in the classroom and partially autonomously. Students can ask tutors for assistance, on a weekly basis.


    The program of the course develops along three major topics:

    1. Elements of discrete mathematics: set theory, relations and functions, basic algebraic structures, and introduction to combinatorics.
    2. Foundations of programming: introduction to computer engineering (computers architecture), introduction to programming (algorithms, programs, and programming languages), structured programming in C++ language (variables, constants, types, operators, expressions, conditional constructs, iterative constructs, functions, mono-dimensional arrays, strings, multi-dimensional arrays, streams and files, structures, arrays of structures), advanced programming in C++ language (pointers and references, dynamic memory allocation, recursive functions, function templates).
    3. Modular programming and abstract data types: classes and objects (methods and attributes, access control to members, types of methods: constructors, destructors, selectors, modifiers, operators, and operator overloads, class templates), abstraction on data (information hiding, abstract data types, independence from representation), application of abstract data types for creating data structures (lists, stacks, queues).


    Educational material includes:

    • The slides presented during classes, available in three different formats: 2 slides per page, 4 slides per page, and 6 slides per page.
    • Material related to the exercises, which is made available together with each exercise.

    Material can be downloaded from AulaWeb. In principle, the notes taken during the lectures and the material available on AulaWeb are sufficient for preparing for the final exam.

    For students wishing to read a textbook, we recommend:

    • For topics related to discrete mathematics: C. Delizia, P. Longobardi, M. Maj, C. Nicotera. Matematica Discreta, McGraw-Hill (any edition).
    • For programming L. J. Aguilar. Fondamenti di Programmazione in C++. McGraw-Hill (any edition).


    Exam Board



    GUALTIERO VOLPE (President Substitute)



    The course complies with the calendar of the Polytechnic School.



    The exam consists of a practical test and an oral exam.

    The practical test can be taken, according to the student’s choice, in two different ways: a single practical test at the end of the second semester or two intermediate tests, one after the end of the first semester, and one after the end of the second semester. Usually, there are two rounds for the first intermediate test (in January and February) and two rounds for the second intermediate test (in June and July). Students who take the first intermediate test must complete the practical test by taking the second intermediate tests in one of the two rounds available for that. After these two rounds, just the single practical test will be available and the mark possibly obtained in the first intermediate test will be cancelled. Students who take again the practical test in a new round and deliver their test have the previous mark cancelled. To take the practical test, students must register on or before two working days before the date of practical test. Students can register through the University’s web portal for student services.

    The mark of the single practical test is between 0 and 20 points. Each intermediate test gives a mark between 0 and 10 points and the two marks sum to form the final mark of the practical test. Students who succeed in the practical test (or in the two intermediate tests) can access to the oral exam. Students succeed if they get at least 12 points. The mark of the practical test is valid until the end of the next winter session and students can choose the round when to take the oral exam, until the mark of the practical test is valid.

    For each round, the oral exam is scheduled after the practical test. The date of the oral exam is communicated together with the marks of the practical test for the same round. Students who wants to take the oral exam must register on AulaWeb. The mark of the oral exam is between 0 and 10 points.

    The final mark is the sum of the marks of the practical test and of the oral exam. A mark of 30 cum laude can be given to students who proved excellent during the course and the exam.


    The practical test consists of a computer exam. This usually includes theoretical questions aiming at assessing the student’s knowledge of discrete mathematics concepts and of the principles of procedural and modular programming. The theoretical questions also aim at evaluating whether the student is able to face and solve simple problems related to the concepts presented during the lectures. Questions are of different types, e.g., open-ended questions, closed-ended questions, understanding and completing text, understanding and completing source code of programs, detecting and fixing errors, and analysing source code of programs. The practical test also includes practical questions requiring the student to develop source code in C++ language. These questions aim at assessing whether the student is able to solve simple problems automatically and to translate specifications into a program. The mark reflects whether the implementation is correct and compliant with respect to the specifications.

    The oral exam consists of developing parts of a C++ program and discussing them with the teacher as well as presenting theoretical concepts from lectures. The mark reflects whether the student masters the topic, the depth of her\his presentation as well as her\his public speaking ability.

    Exam schedule

    Date Time Location Type Notes
    13/01/2021 09:00 GENOVA Prova pratica
    13/01/2021 09:00 GENOVA Compitino
    02/02/2021 09:00 GENOVA Prova pratica
    02/02/2021 09:00 GENOVA Compitino
    09/06/2021 09:00 GENOVA Prova pratica
    09/06/2021 09:00 GENOVA Compitino
    02/07/2021 09:00 GENOVA Prova pratica
    02/07/2021 09:00 GENOVA Compitino
    19/07/2021 09:00 GENOVA Prova pratica
    06/09/2021 09:00 GENOVA Prova pratica