Skip to main content
CODE 80299
ACADEMIC YEAR 2024/2025
CREDITS
SCIENTIFIC DISCIPLINARY SECTOR INF/01
TEACHING LOCATION
  • GENOVA
SEMESTER 1° Semester
SECTIONING Questo insegnamento è diviso nelle seguenti frazioni:
  • A
  • B
  • TEACHING MATERIALS AULAWEB

    OVERVIEW

    The course aims to provide the earliest programming bases, giving particular emphasis to scientific reasoning and computational thinking. The course includes classes as well as practical labs whose purpose is to deepen and consolidate the topics seen in the classroom.

    The course has a strong applicative connotation, where the student is encouraged to face problems of increasing complexity in autonomy.

    Since the course is given in Italian, please have a look at the Italian version of this page for further information.

    AIMS AND CONTENT

    LEARNING OUTCOMES

    At the end of the course, the student shall be able to:

    • Know Computational Thinking principles
    • Know the basic knowledge of the fundamental concepts of imperative programming 
    • Use a development environment for an imperative programming language ( C++ limited to non-object oriented concepts ), with a text editor, compiling, and command-line execution.
    • Know the principles of design, implementation, and validation of a small sequential program based on the informal specifications provided by the user.
    • Produce correct and comprehensible code; as wel as understand, use, and modify code produced by others. 

    TEACHING METHODS

    • Classroom lessons
    • Guided Laboratories
    • Homework delivered through aulaweb

    Given the cultural importance of this course (at the core of all undergraduate computer science courses) attending classes and labs is strongly encouraged and suggested.

    SYLLABUS/CONTENT

    The course consists of a part of theoretical lessons that take place in the classroom and a substantial practical part of programming activities that takes place in the lab.  

    Main topics:

    • Introduction to the course, computational thinking, and programming.
    • Programming environments and formal languages.
    • Imperative programming: variables and instructions; assignment; input / output; if-then-else; loops; types; structured types: 1-dim or multi-dim arrays, strings, struct; functions and parameters passing; pointers; dynamically allocating memory (heap); dynamic vectors; linked lists ; recursion.

    RECOMMENDED READING/BIBLIOGRAPHY

    Slides will be available but are not sufficient getting ready for the exam.  

    • Reference book: D.S. Malik Programmazione in C++ Apogeo, 2011, ISBN 978-88-503-2967-0 (or english version)
    • Alternatively B. Stroustrup, Programming: Principles and Practice Using C++, Addison-Westley, 2009, ISBN 978-0321543721. 

    TEACHERS AND EXAM BOARD

    Exam Board

    STEFANO ROVETTA (President)

    EUGENIO MOGGI

    ENRICO PUPPO (President Substitute)

    MAURIZIO LEOTTA (Substitute)

    ARNAUD HENRI PAUL SANGNIER (Substitute)

    LESSONS

    Class schedule

    The timetable for this course is available here: Portale EasyAcademy

    EXAMS

    EXAM DESCRIPTION

    The exam is made of 2 parts

    1.  a written examination on theory  
    2. a laboratory exam, accessible after theory exam has been positively evaluated

    More details on AULAWEB

    Exam schedule

    Data appello Orario Luogo Degree type Note
    07/01/2025 09:00 GENOVA Scritto
    16/01/2025 09:00 GENOVA Laboratorio
    05/02/2025 09:00 GENOVA Scritto
    17/02/2025 09:00 GENOVA Laboratorio
    03/06/2025 09:00 GENOVA Scritto
    12/06/2025 09:00 GENOVA Laboratorio
    01/07/2025 09:00 GENOVA Scritto
    10/07/2025 09:00 GENOVA Laboratorio
    04/09/2025 09:00 GENOVA Scritto
    17/09/2025 09:00 GENOVA Laboratorio

    Agenda 2030 - Sustainable Development Goals

    Agenda 2030 - Sustainable Development Goals
    Gender equality
    Gender equality
    Decent work and economic growth
    Decent work and economic growth
    Industry, innovation and infrastructure
    Industry, innovation and infrastructure