Corso di Laurea in Ingegneria Informatica

Complementi di Programmazione

A.A. 2023/2024

Prof. Daniele Nardi (Canale 1 A-L)

Prof. Luca Iocchi (Canale 2 M-Z)

Docenti

CANALE 1 (A-L)

Prof. Daniele Nardi (Home Page)

CANALE 2 (M-Z)

Prof. Luca Iocchi (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  

sojy5rd

Link: https://classroom.google.com/c/NjYzOTgzNDg3NDY0?cjc=sojy5rd

Orario delle lezioni

Orario e aule delle lezioni sono disponibili sul sito del corso

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

Periodo delle lezioni: 26/2/2024 - 31/5/2024

Le lezioni inizieranno lunedì 26/2/2024 presso il Laboratorio in Via Tiburtina

CANALE 1  A-L

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

CANALE 2  M-Z

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


Orari di Ricevimento

Informazioni disponibili nelle pagine web dei docenti (sezione Didattica/Teaching).

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 sarà resa disponibile tramite classroom.

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/