Programmazione

A.A. 2023/2024
12
Crediti massimi
96
Ore totali
SSD
INF/01
Lingua
Italiano
Obiettivi formativi
Questo è un insegnamento introduttivo alla programmazione, ai suoi principi ed alle sue tecniche. Il suo scopo è quello di familiarizzare lo studente, che potrebbe non essere mai stato esposto alla programmazione, con questa disciplina e fornirgli quella comprensione e gli strumenti necessari ad affrontare tutti gli insegnamenti che ne presuppongono la conoscenza.
Risultati apprendimento attesi
Alla fine dell'insegnamento lo studente saprà progettare soluzioni algoritmiche di media difficoltà ed implementare le stesse in un linguaggio di programmazione imperativo
Saprà inoltre progettare semplici soluzioni algoritmiche utilizzando il paradigma ad oggetti.
Corso singolo

Questo insegnamento può essere seguito come corso singolo.

Programma e organizzazione didattica

Edizione unica

Responsabile
Periodo
Primo quadrimestre

Programma
Il programma dell'insegnamento si articola come segue.
NOZIONI DI BASE
· Nozione di algoritmo.
· Fasi della programmazione.
· Strumenti di modellazione.
· Linguaggi e Paradigmi di programmazione.
PROGRAMMAZIONE STRUTTURATA
· Costrutti e principi della programmazione strutturata.
· Linguaggio C: espressioni e assegnamenti, costrutti di controllo, tipi predefiniti, vettori, matrici e stringhe, tipi strutturati, puntatori e gestione della memoria, funzioni e passaggio di parametri, main e parametri al main, libreria standard, gestione dei file.
· Eliminazione dei Salti: teorema di Böhm-Jacopini, trasformazione di Ashcroft e Manna.
· Correttezza del codice: elementi di validazione e verifica della correttezza.
PROGRAMMAZIONE AD OGGETTI
· Concetti fondamentali: Modularità, astrazione e tipi di dato astratto, incapsulamento, interfacce, classi ed oggetti, ereditarietà e polimorfismo.
· Riuso del software: pattern, programmazione orientata agli aspetti.
· Linguaggio Java.
· Cenni alle nuove tendenze della programmazione
Prerequisiti
L'insegnamento si concentra sulle nozioni di programmazione di base. Verranno fornite tutte le nozioni necessarie per poter modellare progettare e sviluppare semplici soluzioni software. Per tanto non richiede nessun particolare pre-requisito
Metodi didattici
Lezioni di teoria per consolidare i fondamenti e esercizi ed esempi pratici di programmazione C e Java
Materiale di riferimento
Dispense, lucidi e videolezioni a cura del docente, disponibili sul sito dell'insegnamento.
Modalità di verifica dell’apprendimento e criteri di valutazione
L'esame si articola in una prova scritta della durata di 2 ore (senza l'ausilio di libri o appunti) e un progetto sulla programmazione in C da presentare al docente.
La prova scritta verte sulla teoria della programmazione e la capacità comprendere ed ideare e progettare flussi, algoritmi e soluzioni software semplici. E' costituita da una serie di domande aperte ed esercitazioni con un punteggio specifico. Il progetto C, definito previo accordo con il docente, verifica le competenze sulla programmazione in C e viene valutato per complessità e qualità del progetto.
Le prove vengono valutate con un voto espresso in trentesimi e possono essere superate (raggiungendo un punteggio di almeno 18) anche in sessioni differenti e in qualsiasi ordine. Il voto finale espresso in trentesimi risulterà dalla media dei voti della prova scritta e del progetto. I risultati verranno comunicati direttamente agli interessati non appena disponibili.
Per la prova scritta oltre alla correttezza della risposta verrà valutata la competenza nell'uso di un linguaggio tecnico adeguato. Per la prova pratica verrà valutata oltre alla correttezza del risultato la qualità tecnica della programmazione.
Facoltativamente, sempre previo accordo con il docente, è possibile presentare anche un progetto in Java, dove verrà valutata la padronanza della programmazione ad oggetti (per un incremento massimo di 2 punti).
INF/01 - INFORMATICA - CFU: 12
Lezioni: 96 ore
Docente: Anisetti Marco
Docente/i
Ricevimento:
Su appuntamento
Ufficio docente (7003) presso il Dipartimento di Informatica in Via Celoria 18, Milano (MI)