This is an old revision of the document!
Programmazione (Modulo di Teoria)
News
- 17/12/2018: date le avverse condizioni meteorologiche, nella giornata di lunedì 17 dicembre TUTTE le lezioni sono sospese nella sede Unicam di Camerino.
- 11/12/2018: martedì 11/12 la lezione di Programmazione LABORATORIO è annullata.
- 10/12/2018: lunedì 10/12 la lezione di Programmazione LABORATORIO è annullata.
- 28/11/2018: mercoledì 28/11 la lezione di Programmazione Teoria è annullata.
- 26/11/2018: lunedì 26/11 la lezione di Programmazione Teoria è annullata per concomitanza con l'inaugurazione dell'anno accademico.
- 06/11/2018: martedì 6/11 la lezione di Programmazione Laboratorio è annullata.
- 31/10/2018: mercoledì 31/10 la lezione di Programmazione Teoria è annullata, perché in aula AA1 si svolgeranno le presentazioni delle tesi di laurea.
- 10/10/2018: mercoledì 10/10 al posto della lezione di Programmazione Teoria verrà svolta la lezione di Programmazione Laboratorio.
- 09/10/2018: martedì 09/10 si svolgerà regolarmente la lezione di Programmazione Laboratorio.
- 08/10/2018: lunedì 08/10 non si svolgerà la lezione di Programmazione Teoria (11:00-13:00), si svolgerà regolarmente la lezione di Programmazione Laboratorio (14:00-16:00).
- 02/10/2018: Al posto della lezione di Programmazione Laboratorio verrà svolta la lezione di Programmazione Teoria.
Informazioni Generali
Docente:
Link ESSE3
Orario delle Lezioni:
- Lunedì 11 - 13 (AA1)
- Lunedì 14 - 16 (LA1) - Laboratorio
- Martedì 9 - 11 (LA1) - Laboratorio
- Mercoledì 14 - 16 (AA1)
Ricevimento studenti:
- su appuntamento (via email)
Obiettivi del Corso
D1 - CONOSCENZA E CAPACITÀ DI COMPRENSIONE
Al termine di questa attività formativa, lo studente dovrà dimostrare di essere in grado di:
- Conoscere i concetti base della programmazione procedurale.
- Conoscere i concetti base della programmazione orientata agli oggetti, con particolare riguardo al linguaggio Java.
- Conoscere le principali funzionalità dell'ambiente di sviluppo Eclipse.
D2 - CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE
Al termine di questa attività formativa, lo studente dovrà dimostrare di essere in grado di:
- Programmare secondo il paradigma di programmazione procedurale.
- Programmare secondo il paradigma di programmazione ad orientata agli oggetto, tramite il linguaggio Java.
D3 - AUTONOMIA DI GIUDIZIO
Risultati attesi:
Al termine di questa attività formativa, lo studente dovrà dimostrare di essere in grado di:
- Identificare il modello a oggetti che descrive meglio un semplice problema.
D4 - ABILITÀ COMUNICATIVE
Risultati attesi:
Al termine di questa attività formativa, lo studente dovrà dimostrare di essere in grado di:
- Documentare il codice in forma chiara e comprensibile usando lo standard del linguaggio usato.
D5 - CAPACITÀ DI APPRENDIMENTO
Risultati attesi:
Al termine di questa attività formativa, lo studente dovrà dimostrare di essere in grado di:
- Comprendere e imparare ad usare autonomamente sintassi e semantica di altri linguaggi di programmazione, imperativi o ad oggetti, nonché librerie aggiuntive e tecnologie analoghe.
Contenuti del Corso
- Algoritmi, programmi e linguaggi di programmazione.
- Compilatori, interpreti e approccio Java.
- Tipi di dato primitivi in Java.
- Sistema dei tipi, strutture dati di base e relativi algoritmi.
- Concetti fondamentali di programmazione procedurale.
- Iterazione e ricorsione.
- Programmazione orientata agli oggetti in Java.
- Ambiente di sviluppo Eclipse.
Progetto
- Il progetto dovrà essere realizzato in gruppi di massimo 3 persone. La valutazione del progetto avverrà però singolarmente.
- Eventuali dubbi sulla traccia possono essere discussi con il Prof. Culmone durante le lezioni di laboratorio.
- Il progetto è disponibile su https://drive.google.com/drive/folders/0B82FyP8YKiFocjVrV2dOME9WdFk?usp=sharing nel file Progetto2018
Materiale
Slide del Corso
Riferimenti utili
Lezioni
- 02/10/2018: informazioni generali (registrazione)
- 03/10/2018: il metodo algoritmico; problemi indecidibili (registrazione)
- 15/10/2018: complessità; breve storia dei calcolatori; rappresentazione binaria (registrazione)
- 17/10/2018: algoritmi; diagrammi di flusso; compilatori e interpreti (registrazione)
- 22/10/2018: introduzione alle funzionalità base di Eclipse; variabili; input e output in Java–; tipi di dato primitivi; assegnazione (registrazione)
- 24/10/2018: perdita di precisione; commenti; conversioni di tipo; precedenze fra operatori; operatori di incremento e decremento (registrazione)
- 29/10/2018: array; differenza fra array e tipi primitivi; espressioni booleane (registrazione)
- 5/11/2018: metodi; istruzione return; call-by-value e call-by-reference; costrutto if; costrutto if-else, diramazioni multiple (registrazione)
- 7/11/2018: istruzione switch; cicli: while, do-while, for (registrazione)
- 12/11/2018: Eclipse debugger; parametri formali e argomenti; variabili locali (registrazione)
- 14/11/2018: array come parametri formali; ordinamento array; paradigma di programmazione procedurale (registrazione)
- 19/11/2018: ricorsione e iterazione; paradigma di programmazione orientata agli oggetti (registrazione)
- 21/11/2018: dichiarazione di classe; creazione e distruzione di oggetti; utilizzo di oggetti (registrazione)
- 3/12/2018: parametri formali di tipo classe; metodi costruttori; metodo main; accessori e mutatori (registrazione)
- 5/12/2018: classe String; Sovraccaricamento di metodi; Ereditarietà (registrazione)
- 10/12/2018: polimorfismo; conversione di tipo classe (registration)
- 12/12/2018: Modificatori public e private; Pacchetti: definizione e visibilità; Incapsulamento; Modificatore static (registration)
- 19/12/2018: Modificatore final; Eccezioni: creazione, lancio, gestione; Accesso file di testo (registration)
- 7/1/2019: Esempi su modificatore static; esempi di uso di this (registrazione)
- 9/1/2019: Interfacce e classi astratte (registrazione)
- 14/1/2019: Panoramica su concetti di programmazione avanzata non trattati nel corso (registrazione)
Testi di Riferimento
- Pierluigi Crescenzi. Gocce di Java. Un'introduzione alla programmazione procedurale ed orientata agli oggetti (2a edizione, nuova edizione 2014). FrancoAngeli.
Strumenti
Esami
Fac-simile prova scritta
Date Esami A.A. 2018/2019
- Appello I: 28/01/2019 ore 10:00 - Polo Lodovici - Aula LA1
- Appello II: 11/02/2019 ore 10:00 - Polo Lodovici - Aula LA1
- Appello III: 25/02/2019 ore 10:00 - Polo Lodovici - Aula LA1
- Appello IV: 20/05/2019 ore 10:00 - Polo Lodovici - Aula LA1
- Appello V: 03/06/2019 ore 10:00 - Polo Lodovici - Aula LA1
- Appello VI: 01/07/2019 ore 10:00 - Polo Lodovici - Aula LA1
- Appello VII: 13/09/2019 ore 10:00 - Polo Lodovici - Aula LA1
- Appello VIII: 27/09/2019 ore 10:00 - Polo Lodovici - Aula LA1
Regole di esame:
Il raggiungimento dei risultati di apprendimento è verificato attraverso le seguenti prove:
- Prova scritta (questionario a risposta multipla).
- Progetto software assegnato dai docenti.
- Prova orale (discussione del progetto e domande di teoria). La prova orale può essere sostenuta solo se è stata superata la prova scritta.
Il voto finale è la media dei voti delle prove scritta e orale.
Calendario Prove Orali
- Calendario orali Appello 3