Corso di Laurea in Ingegneria Informatica

Complementi di Programmazione

A.A. 2022/2023

Prof. Luca Iocchi (Canale 1 A-L)

Prof. Gabriele Proietti Mattia (Canale 2 M-Z)

Docenti

CANALE 1 (A-L)

Prof. Luca Iocchi (Home page) 

CANALE 2 (M-Z)

Prof. Gabriele Proietti Mattia (Home Page)

Dipartimento di Ingegneria informatica automatica e gestionale “Antonio Ruberti” Università di Roma “La Sapienza”

Via Ariosto 25, Roma 00185, Italy.

E-mail: {cognome docente}@diag.uniroma1.it

Nei messaggi e-mail, usare il prefisso "[CP]" nel soggetto.

Tutor


Classe virtuale

Google classroom, codice  

y4joo57

Link: https://classroom.google.com/c/NTg4NDY2NzA3MDU0?cjc=y4joo57

Orario delle lezioni

Orario e aule delle lezioni sono disponibili sul sito del corso

https://corsidilaurea.uniroma1.it/it/corso/2022/31810/programmazione 

Periodo delle lezioni: 20/2/2023 - 31/5/2023

Le lezioni inizieranno martedì 20/2/2023 presso il Laboratorio in Via Tiburtina

CANALE 1  A-L

Lunedì 10-12       Lab. Via Tiburtina Aule 15 e 16
Martedì 13-15 Aula 204 (ed. Marco Polo)
Mercoledì 15-17   Aula 204 (ed. Marco Polo)
Giovedì 17-19     Aula 204 (ed. Marco Polo)

CANALE 2  M-Z

Lunedì 12-14        Lab. Via Tiburtina Aule 15 e 16
Martedì 11-13   Aula 204 (ed. Marco Polo)
Mercoledì 9-11    Aula 204 (ed. Marco Polo)
Giovedì 13-15      Aula 204 (ed. Marco Polo)


Orari di Ricevimento

Informazioni disponibili nelle pagine web dei docenti.

Esami

Informazioni sugli esami sono disponibili nella sezione Esami


Descrizione del corso

Il corso "Tecniche di programmazione" fa parte del percorso formativo della Laurea in Ingegneria Informatica e Automatica.

Il corso è da 9 CFU e le lezioni si svolgono nel secondo semestre del I anno

Obiettivi del corso

Il corso ha l'obiettivo di fornire allo studente la capacità di comprendere e progettare programmi che richiedano una conoscenza approfondita del modello di esecuzione dei programmi, in particolare, facciano una gestione esplicita della memoria. A questo scopo il corso fa riferimento ad una caratterizzazione dell'architettura dell'elaboratore basata sul modello di Von Neumann ed utilizza il linguaggio procedurale C/C++ per la programmazione. Attraverso il linguaggio verranno sviluppate le conoscenze per la gestione della memoria (stack, heap), la realizzazione di strutture dati di base e complesse, quali vettori, matrici, liste collegate, pile, code, alberi e grafi, tecniche di programmazione ricorsive, e la programmazione di algoritmi su tali strutture dati. Il corso ha una forte connotazione progettuale e prevede quindi esercitazioni settimanali in laboratorio, in ambiente Linux.

Programma


Materiale Didattico

Libro di testo:

Dispense del corso disponibili nel sistema on-line (vedi sezione Lezioni)

Macchina virtuale per esercitazioni

TODO

Nota: può essere usata qualsiasi versione precedente della VM in cui è installato il compilatore usato nel corso (g++).

Per problemi relativi all'uso della macchina virtuale riempire questo form.

Installazione compilatore C su Windows

http://www.mingw.org/