Programmazione
A.A. 2018/2019
Obiettivi formativi
Questo è un corso 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 i corsi che ne presuppongono la conoscenza.
Risultati apprendimento attesi
Progettazione soluzioni algoritmiche semplici
Programmazione imperativa (Linguaggio C)
Progettazione semplici soluzioni ad oggetti
Programmazione ad oggetti (Java)
Programmazione imperativa (Linguaggio C)
Progettazione semplici soluzioni ad oggetti
Programmazione ad oggetti (Java)
Periodo: Primo semestre
Modalità di valutazione: Esame
Giudizio di valutazione: voto verbalizzato in trentesimi
Corso singolo
Questo insegnamento non può essere seguito come corso singolo. Puoi trovare gli insegnamenti disponibili consultando il catalogo corsi singoli.
Programma e organizzazione didattica
Edizione unica
Responsabile
Periodo
Primo semestre
Programma
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
· 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
Propedeuticità
nessuna
Prerequisiti
L'esame si articola in una prova scritta, una prova di laboratorio sulla
programmazione in C e un progetto sulla programmazione ad oggetti (Java) da presentare al docente.
La prova scritta verte sulla teoria della programmazione e la capacità
comprendere ed ideare flussi ed algoritmi semplici. La parte di
laboratorio prevede la soluzione di problemi semplici attraverso
programmi scritti in C.
Il progetto Java, definito previa accordi con il docente, può essere
presentato una volta superate la parte scritta e quella di laboratorio. Durante la presentazione il docente verifica le competenze sulla programmazione in Java e ad oggetti in generale.
Le prove possono essere superate anche in sessioni differenti.
Il voto finale risulterà dalla media dei voti della prova scritta e della prova pratica, incrementato eventualmente dal punteggio del progetto (max 1 punto).
programmazione in C e un progetto sulla programmazione ad oggetti (Java) da presentare al docente.
La prova scritta verte sulla teoria della programmazione e la capacità
comprendere ed ideare flussi ed algoritmi semplici. La parte di
laboratorio prevede la soluzione di problemi semplici attraverso
programmi scritti in C.
Il progetto Java, definito previa accordi con il docente, può essere
presentato una volta superate la parte scritta e quella di laboratorio. Durante la presentazione il docente verifica le competenze sulla programmazione in Java e ad oggetti in generale.
Le prove possono essere superate anche in sessioni differenti.
Il voto finale risulterà dalla media dei voti della prova scritta e della prova pratica, incrementato eventualmente dal punteggio del progetto (max 1 punto).
Metodi didattici
Lezioni frontali e laboratorio
Materiale di riferimento
Dispense e lucidi a cura dei docenti, disponibili sul sito dell'insegnamento
INF/01 - INFORMATICA - CFU: 12
Laboratori: 48 ore
Lezioni: 72 ore
Lezioni: 72 ore
Docenti:
Anisetti Marco, Ferrari Stefano, Tresoldi Emanuele
Turni:
Docenti:
Anisetti Marco, Ferrari Stefano
Turno B
Docente:
Tresoldi EmanueleDocente/i
Ricevimento:
Su appuntamento
Ufficio docente (7003) presso il Dipartimento di Informatica in Via Celoria 18, Milano (MI)