Skip to main content
CODE 111042
ACADEMIC YEAR 2024/2025
CREDITS
SCIENTIFIC DISCIPLINARY SECTOR ING-INF/03
LANGUAGE Italian
TEACHING LOCATION
  • GENOVA
SEMESTER 2° Semester
TEACHING MATERIALS AULAWEB

OVERVIEW

In this course the student will gain a broad understanding of the fundamental concepts of the imperative programming paradigm (C language) with some hints to the object-oriented paradigm (C++ language).

AIMS AND CONTENT

LEARNING OUTCOMES

The teaching aims to introduce the design of a software system. The discussion starts from the architecture of a processing system and covers the syntactic and semantic rules of languages, covering both the structured paradigm (C language) and the object-oriented paradigm (C#).”

AIMS AND LEARNING OUTCOMES

The student who has successfully followed the teaching of "Fundamentals of Programming for the Processing of Signals and Data" will be able to

  1. understand and use version control systems with particular attention to Git
  2. understand the fundamental concepts of imperative programming
  3. apply the acquired concepts to implement simple programs
  4. analyze and evaluate working programs to identify their basic structure
  5. design, create and verify the functioning of a basic software system starting from theoretical models

In particular, during this course the student will learn to:

  • Understand how version control systems work and use Git for sharing source code
  • Understand the difference between hardware and software, the basic structure of an electronic calculator and the differences between programming languages
  • Develop simple programs using the C programming language. In particular, the student will be able to:
    • create and use variables
    • write and read from the console
    • write and use conditional statements, loops and vectors
    • write and use functions
    • create and use arrays
    • use pointers
    • create new data structures and simple classes
  • Write simple C++ programs using an object-oriented approach. In particular, the student will be able to:
    • understand the difference between classes and objects
    • use the methods of an object
    • understand the basic concepts of composition, inheritance and polymorphism

PREREQUISITES

No prerequisites needed.

TEACHING METHODS

The course is composed of a set of frontal lessons and a set of practice sessions. During the frontal lesson, the teacher presents the topics providing also examples of live code that are tested on a real tool chain. Students can use their own laptops during the lecture in order to reproduce what is proposed by the teacher. During the practice sessions, the students have to face up with real problems that they should solve by applying the techniques learnied during the lectures.

SYLLABUS/CONTENT

The titles of the main contents discussed during frontal lessons are provided in the following list.

  • Introduction
  • Version control systems
  • Hardware and Software
  • C language basis
  • Control Structures
  • Program control
  • Functions
  • Array, Sorting and Searching
  • Pointers
  • The Simpletron
  • Data Structures
  • OOP - Classes, Objects, Methods
  • OOP - Composition, Inheritance and Polymorphism

By dealing with topics of scientific-technological interest such as computer programming, this teaching contributes to the achievement of the following Sustainable Development Goals of the UN 2030 Agenda:

8.2 (Achieving higher standards of economic productivity through diversification, technological progress and innovation, also with particular attention to high added value and labor intensive sectors)

9.5 (Increase scientific research, improve the technological capabilities of the industrial sector in all states - especially in developing countries - as well as encourage innovations and substantially increase, by 2030, the number of employees for every million people, in the research and development sector and expenditure on research – both public and private – and on development)

RECOMMENDED READING/BIBLIOGRAPHY

Lecture slides (downloadable on AulaWeb)

For further information (only for those interested)

  • Paul Deitel, Harvey Deitel. «The C language. Fundamentals and programming techniques» Pearson; 8th edition
  • Bjarne Stroustrup «C++. Language, standard library, programming principles» Pearson; 4th edition

Students with learning disabilities ("specific learning disabilities", DSA) will be able to use specific methods and supports that will be established from time to time in agreement with the delegate of the Engineering courses in the Commission for the Inclusion of students with disabilities.

TEACHERS AND EXAM BOARD

Exam Board

LUCIO MARCENARO (President)

PAOLO GASTALDO (President Substitute)

CARLO REGAZZONI (President Substitute)

LESSONS

Class schedule

The timetable for this course is available here: Portale EasyAcademy

EXAMS

EXAM DESCRIPTION

The exam includes a "written" part (in the laboratory with a computer) for the creation of a software program and an "oral" part. Students can use their own laptop to take the written test, if they wish. It is possible to consult during the written test any type of material that is useful for the realization of the software project. The oral test consists of questions on the theoretical topics covered in class.

It is necessary to take the written test in any exam session that is prior to the oral test. The oral exam can be taken in any session following the written exam.

ASSESSMENT METHODS

The student who takes the "Fundamentals of Programming for Signal and Data Processing" exam is assigned a simple problem to be solved by implementing a C program, using an electronic calculator. Through the analysis of the solution developed by the student during the exam, it is verified at what level the fundamental concepts of imperative programming have been understood, how these concepts have been applied for the implementation of the program, if the student is able to analyze and evaluate the functioning of the developed program and how the theoretical models studied in class are applied to design and create the required software. The evaluation of the written test is based on the source code delivered by the student at the end of the test, in particular on its functionality, on the quality of the code and on the clarity in the drafting.

During the oral exam, the quality of the presentation, the correct use of the specialized vocabulary, the ability to think critically about the study carried out will be assessed.

Exam schedule

Data appello Orario Luogo Degree type Note
07/01/2025 09:00 GENOVA Scritto + Orale
28/01/2025 09:00 GENOVA Scritto + Orale
06/06/2025 09:00 GENOVA Scritto + Orale G2B
18/06/2025 09:00 GENOVA Scritto G2A
01/07/2025 09:00 GENOVA Scritto + Orale G2A
15/07/2025 09:00 GENOVA Scritto + Orale G2A
11/09/2025 09:00 GENOVA Scritto G2A