Skip to main content
CODE 52473
ACADEMIC YEAR 2023/2024
CREDITS
SCIENTIFIC DISCIPLINARY SECTOR INF/01
LANGUAGE Italian
TEACHING LOCATION
  • GENOVA
SEMESTER 2° Semester
TEACHING MATERIALS AULAWEB

OVERVIEW

The purpose of the course is to provide the tools to imperative programming through the introduction of high-level languages. We will introduce a subset of the C++ programming language.

AIMS AND CONTENT

LEARNING OUTCOMES

Introduction to programming languages, in particular to the imperative programming paradigm, throught the presentation of C++ and MatLab. After attending the classes, the student will be able to build simple programs in the two presented languages, and will know models and structures, useful for learning other imperative programming languages in the future.

AIMS AND LEARNING OUTCOMES

This course will provide some necessary basic notions about computer architecture, data representation, operating system.
It will introduce the notions of algorithm and program, high-level programming language and execution models (compiled or interpreted languages).
It will present the basic concepts and features of programming in a high-level imperative language (variables, statements, instructions for controlling the execution flow).
It will provide the guide lines for the design of small-size programs solving a simple problem and for testing them.

The considered examples of high-level languages will be (the impeative subset of) the C++ programming language.

After attending this course, the student will:

  • know the features of a high-level imperative programming language.
  • be able to develop an algorithm and to translate it into a C++ program (for simple algorithms / small programs).
  • be able to recognize the typical concepts and features of imperative languages in other languages similar to C++, and will therefore be able to learn new languages of the same family.

PREREQUISITES

None.

TEACHING METHODS

The course provides 3 hours of lessons in the classroom and 4 hours of laboratory per week.

SYLLABUS/CONTENT

  1. Basics about computers: data representation and arithmetic processors; Computer architecture hints and operating systems for the execution basic understanding of programs.
  2.  Introduction to Programming: the high-level programming languages; state and change of state; statements and basic instructions;  basic and structured types; simple algorithms and their implementation; structured and modular programming.
  3. Programming: design of small sequential programs starting from the informal specification of the problem; compilation; code execution; basic ideas of testing.

The considered example of high-level language will be the imperative subset of the C++ programming language.

RECOMMENDED READING/BIBLIOGRAPHY

Course notes.

Other useful books:

Programming Principles and Practice using C++, Addison-Wesley Professional, 2008
C++. Fondamenti di programmazione -- H. M. Deitel, P. J. Deitel; Editore: Apogeo 2009
Che C serve? Per iniziare a programmare -- Burattini, Chianese, Picariello, Moscato, Sansone; Maggioli editore 2016.

TEACHERS AND EXAM BOARD

Exam Board

PAOLA MAGILLO (President)

NICOLETTA NOCETI

MATTEO DELL'AMICO (President Substitute)

LESSONS

LESSONS START

The class will start according to the academic calendar.

Class schedule

The timetable for this course is available here: Portale EasyAcademy

EXAMS

EXAM DESCRIPTION

The final exam consists of:

  • a written test  (questions using Aulaweb) 
  • a laboratory test, consisting in writing a C ++ program 

It is not necessary that the two tests are passed in the same session.

The exam is passed when the written test  (with Rate> = 18) and laboratory (with Rate> = 18) are passed. The final grade will be the average of the two votes.

A bonus depending on laboratory exercises will also be applied.

ASSESSMENT METHODS

The written examination will want to evaluate the acquisition of basic concepts presented during the course.

The  laboratory test wants to evaluate the ability to produce the C ++ code running to solve small problems, and consists of completing a "template" program that will be provided as a file with the extension .cpp. The evaluation will take into account the following aspects in order of decreasing importance:

  1. code  running and producing  correct results (minimum requirement)
  2. style and readability of the code
  3. calculation efficient

Exam schedule

Data appello Orario Luogo Degree type Note
17/01/2024 09:00 GENOVA Scritto
18/01/2024 09:00 GENOVA Laboratorio
08/02/2024 09:00 GENOVA Scritto
09/02/2024 09:00 GENOVA Laboratorio
10/06/2024 09:00 GENOVA Scritto
12/06/2024 09:00 GENOVA Laboratorio
01/07/2024 09:00 GENOVA Scritto
03/07/2024 09:00 GENOVA Laboratorio
06/09/2024 09:00 GENOVA Scritto
09/09/2024 09:00 GENOVA Laboratorio

FURTHER INFORMATION

No prerequisite is required.  Basics of logic and mathematics normally provided by the high school are still useful.

Agenda 2030 - Sustainable Development Goals

Agenda 2030 - Sustainable Development Goals
Quality education
Quality education
Gender equality
Gender equality