Anno di corso: 1

Crediti: 8
Crediti: 12
Crediti: 12
Crediti: 8
Crediti: 3
Tipo: Lingua/Prova Finale
Crediti: 3
Tipo: Lingua/Prova Finale
Crediti: 3
Tipo: Lingua/Prova Finale
Crediti: 3
Tipo: Lingua/Prova Finale

Anno di corso: 2

Anno di corso: 3

Crediti: 6
Crediti: 6
Crediti: 6
Crediti: 6
Crediti: 8
Crediti: 6
Crediti: 6
Crediti: 18
Tipo: A scelta dello studente
Crediti: 4
Tipo: Lingua/Prova Finale

ALGORITMI E PROGRAMMAZIONE

Scheda dell'insegnamento

Anno accademico di regolamento: 
2017/2018
Anno di corso: 
2
Anno accademico di erogazione: 
2018/2019
Tipo di attività: 
Obbligatorio
Lingua: 
Italiano
Crediti: 
6
Ciclo: 
Secondo Semestre
Ore di attivita' didattica: 
56
Prerequisiti: 

Programmazione strutturata (corso di Laboratorio di Matematica e Informatica)

Moduli

Metodi di valutazione

Modalita' di verifica dell'apprendimento: 

Modalità dell’esame
Prova scritta e prova orale facoltativa (a richiesta dello studente). Valutazione con voto in trentesimi 18-30/30.

La prova scritta è divisa in due parti: nella prima si valutano, attraverso una serie di domande a risposta chiusa, le conoscenze dei fondamenti teorici della programmazione a oggetti; nella seconda, si valuta, attraverso l'implementazione di un semplice sistema software, la capacità di realizzare in pratica un programma a oggetti in grado di rappresentare correttamente un semplice dominio applicativo. La media aritmetica (eventualmente pesata) dei voti conseguiti nelle due parti definisce il voto proposto allo studente, che, se sufficiente, ha la facoltà di accettarlo o modificarlo attraverso lo svolgimento di un orale integrativo (eventualmente peggiorandolo nel caso la prova orale non sia soddisfacente). Il docente si riserva la facoltà di richiedere un supplemento di indagine, attraverso una prova orale obbligatoria, nei casi in cui la prova scritta, pur essendo valutata sufficiente, presenti delle criticità.

Nel corso dell’anno sono previsti 5 appelli d’esame nei seguenti periodi: uno nel mese di giugno, uno a luglio, uno a settembre, uno a novembre e uno a gennaio. Durante il periodo del corso si tengono due prove scritte parziali che, in caso di esito complessivo positivo, permetteranno di verbalizzare il voto o sostenere la prova orale integrativa nel mese di giugno.

Valutazione: 
Voto Finale

Obiettivi formativi

Scopo di questo insegnamento è rendere lo studente in grado di progettare un sistema software a oggetti, integrando diversi tipi di strategie di problem solving.

Contenuti

Il corso si prefigge l’obiettivo di insegnare la programmazione ad oggetti e cenni di progettazione del software. Alla fine del corso lo studente dovrà essere in grado di modellare un problema secondo il paradigma a oggetti e di tradurlo in un programma scritto in un linguaggio object-oriented. Il linguaggio di riferimento è Java.

Programma esteso

Introduzione ai concetti fondamentali del paradigma a oggetti (incapsulamento, ereditarietà, polimorfismo) e al linguaggio UML (Unified Modeling Language)
Cenni al ciclo di vita del software.
Java come linguaggio e come piattaforma.
Il paradigma a oggetti base nel contesto Java: classi e oggetti, attributi e metodi.
Il paradigma a oggetti avanzato nel contesto Java: ereditarietà e polimorfismo.
Eccezioni, ArrayList, Generics a Collection Framework

Bibliografia consigliata

Tutte le informazioni sul corso, le slide presentate a lezione e le esercitazioni da svolgere in laboratorio verranno fornite tramite la piattaforma elearning di ateneo all’indirizzo elearning.unimib.it.

Testo di riferimento:
W. Savitch: "Programmazione di base e avanzata con Java", a cura di Daniela Micucci, 2° edizione, Pearson

Modalità di erogazione

Convenzionale

Metodi didattici

Lezione frontale, 4 cfu
Esercitazione frontale, 1 cfu
Laboratorio frontale, 1 cfu