This is an old revision of the document!
Programmazione (Modulo di Teoria)
News
- 27/04/2021: Risultati e calendario appello Aprile pubblicati.
- Turorato a sportello: E' stato attivato un servizio di tutorato a richiesta. Chi fosse interessato su svolgimento di esercizi, prove d'esame, e chiarimenti sul linguaggio Java può contattare i tutor Andrea Piermarteri mailto:andrea.piermarteri@unicam.it e Lorenzo Matteucci mailto:lorenzo.matteucci@unicam.it o via telegram https://t.me/joinchat/AWwJex0h8z_U-BcMAAe4DA. Gli incontri si terranno su piattaforma WebEx https://unicam.webex.com/meet/rosario.culmone con calendario https://calendar.google.com/calendar/u/1?cid=YmluMjlxZTNjZ3ZkbjkzajFwNzE4M25iamtAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ da 17 aprile 2021 a 30 giugno 2021. La cartella https://drive.google.com/drive/folders/13b44Xxxq0Qoe6CQ2CN_zK78F9N9W9J04?usp=sharing verrà utilizzata per la condivisione di esercizi e soluzioni.
- 25/02/2021: Risultati secondo appello pubblicati. correzione prova di programmazione
- 11/02/2021: Risultati e calendario primo appello pubblicati.
- 15/12/2020: Fine lezioni del modulo di teoria.
- 13/11/2020: Da lunedì 16 le lezioni di Programmazione Teoria e Laboratorio riprenderanno secondo l'orario regolare. Le lezioni si svolgeranno, così come tutte quelle del primo anno, in Aula AA1 del Polo Lodovici.
- 08/11/2020: Le lezioni di Programmazione Teoria del 10/11 e del 11/11 saranno sostituite da lezioni di Programmazione Laboratorio svolte nello stesso orario dal Prof. Rosario Culmone. Stanza webex: https://unicam.webex.com/meet/rosario.culmone
- 03/11/2020: in ottemperanza all'ordinanza n. 41 del 2 novembre 2020 emanata dal Presidente della Giunta Regionale, le attività didattiche di tutti i corsi di laurea in tutte le sedi dell’Ateneo saranno svolte esclusivamente in modalità telematica da domani 4 novembre e fino a nuova comunicazione.
- 19/10/2020: Prima lezione di Programmaizone Laboratorio. Stanza webex: https://unicam.webex.com/meet/rosario.culmone
- 14/10/2020: Lezione posticipata, la prossima lezione di Programmazione è giovedì 15 Ottobre.
- 01/10/2020: Lezione posticipata, la prossima lezione di Programmazione è lunedì 5 Ottobre.
- 29/09/2020: Prima lezione di Programmazione Teoria.
- Canale telegram: PROGRAMMAZIONE2021@Unicam
Informazioni Generali
Docente:
Link ESSE3
Orario delle Lezioni:
- Lunedì 14 - 16 (BXIII) - Laboratorio
- Martedì 14 - 16 (BXIII)
- Mercoledì 11 - 13 (BXIII)
- Giovedì 9 - 11 (BXIII) - Laboratorio
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.
Materiale
Slide del Corso
Riferimenti utili
- Tutorial su Linux Shell (LinuxCommand.org)
- Tutorial Prompt dei comandi Windows (link)
Lezioni
Dichiarazione di Copyright (PDF)
- 29/09/2020: informazioni generali; il metodo algoritmico (registrazione)
- 30/09/2020: problemi indecidibili; complessità; breve storia dei calcolatori (registrazione)
- 05/10/2020: rappresentazione binaria; shell Linux e prompt dei comandi Windows (registrazione)
- 06/10/2020: algoritmi; diagrammi di flusso; compilatori e interpreti (registrazione)
- 07/10/2020: compilazione ed esecuzione da linea di comando; generazione di jar file (registrazione)
- 08/10/2020: introduzione alle funzionalità base di Eclipse; variabili (registrazione)
- 12/10/2020: input e output in Java–; dichiarazione variabili; assegnamento (registrazione)
- 13/10/2020: perdita di precisione; commenti; conversione di tipo implicita (registrazione)
- 15/10/2020: conversione di tipo esplicita; precedenze fra operatori; operatori di incremento e decremento (registrazione)
- 20/10/2020: array (registrazione)
- 21/10/2020: differenza fra array e tipi primitivi; esempi su array (registrazione)
- 27/10/2020: espressioni booleane; metodi (registrazione)
- 03/11/2020: istruzione return; costrutto if; costrutto if-else (registrazione)
- 04/11/2020: diramazioni multiple; istruzione switch; cicli while e do-while (registrazione)
- 17/11/2020: cicli for; array length, eclipse debugger (registrazione)
- 18/11/2020: call-by-value e call-by-reference; variabili locali (registrazione)
- 24/11/2020: paradigma di programmazione procedurale; ricorsione (registrazione)
- 25/11/2020: paradigma di programmazione orientata agli oggetti; dichiarazione di classe; creazione e distruzione di oggetti (registrazione)
- 01/12/2020: utilizzo di oggetti; parametri formali di tipo classe; metodi costruttori; metodo main (registrazione)
- 02/12/2020: accessori e mutatori; classe String; sovraccaricamento di metodi (registrazione)
- 09/12/2020: Ereditarietà; Polimorfismo; Conversione di tipo classe; ; Interfacce e classi astratte (registrazione)
- 15/12/2020 (ultima lezione del modulo di teoria): Modificatori public e private; Pacchetti: definizione e visibilità; Incapsulamento; Modificatore static; Modificatore final; Eccezioni: creazione, lancio, gestione; Accesso file di testo (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
- Installazione Java– per Windows 10:
- Scaricare ed installare JDK versione Java SE 14:
- File da scaricare: jdk-14_windows-x64_bin.exe
- Impostare le variabili di ambiente PATH e JAVA_HOME:
- Aprire impostazione di sistema (simbolo dell'ingranaggio)
- Nella casella di testo “Trova” scrivere “variabili” e quindi selezionare “Modifica variabili di ambiente per l'account”
- Selezionare variabile Path e premere il pulsante modifica
- Aggiungere il cammino della cartella “bin” all'interno della cartella in cui è stato installato JDK (es. C:\Program Files\Java\jdk-14\bin)
- Premere il pulsante “Nuova” e specificare la variabile JAVA_HOME con la cartella in cui è stato installato JDK (es. C:\Program Files\Java\jdk-14)
- Testare sul prompt dei comandi se i programmi java e javac funzionano correttamente e controllare che siano aggiornati alla versione 14.
- Scaricare ed installare Eclipse con integrato il plugin javamm (ultima versione):
- File da scaricare: javamm-ide-1.10.0-v20181001-1303-win32.win32.x86_64.zip
- In caso sia attivo Windows Defender, l'avvio dell'app potrebbe essere bloccato; cliccare su “Ulteriori informazioni” e poi premere il bottone “Esegui comunque”
Esami
Date Esami A.A. 2020/2021
- Appello I: 09/02/2021 ore 10:00 - Polo Lodovici - Aula LA1
- Appello II: 23/02/2021 ore 10:00 - Polo Lodovici - Aula LA1
- Appello III: 14/06/2021 ore 10:00 - Polo Lodovici - Aula LA1
- Appello IV: 28/06/2021 ore 10:00 - Polo Lodovici - Aula LA1
- Appello V: 12/07/2021 ore 10:00 - Polo Lodovici - Aula LA1
- Appello VI: 13/09/2021 ore 10:00 - Polo Lodovici - Aula LA1
- Appello VII: 27/09/2021 ore 10:00 - Polo Lodovici - Aula LA1
- Appello VIII: 07/02/2022 ore 10:00 - Polo Lodovici - Aula LA1
Regole di esame:
Il raggiungimento dei risultati di apprendimento è verificato attraverso le seguenti prove:
- Prova di programmazione: esercizi di programmazione di 1 ora circa svolti singolarmente in laboratorio (la prova sarà svolta tramite Webex in caso di impedimenti dipendenti dalla emergenza COVID; la motivazione di tale impedimento dovrà essere preventivamente comunicata tramite email ai docenti del corso e al manager didattico).
- Prova orale: basata sull'elaborato consegnato nella prova di programmazione e sulla teoria.
Istruzioni per la prova di esame:
- La prova di programmazione consiste nella scrittura di un programma Java da svolgere in 1 ora. La traccia dell'esercizio verrà inviata alle ore 10:00 tramite email da esse3 (la consegna in ritardo implica l'immediato fallimento della prova).
- I file .java del programma scritto come soluzione alla traccia assegnata dovranno essere inviati ai docenti (francesco.tiezzi@unicam.it, rosario.culmone@unicam.it) tramite email istituzionale (nome.cognome@studenti.unicam.it). Tale email dovrà avere l'oggetto della forma seguente “programmazione_20210209 - nome cognome matricola”, non dovrà contenere testo, ma solo i programmi Java in allegato (non verranno presi in considerazione file .class, .jar o di altro tipo).
- Nello svolgimento della prova potrà essere utilizzato il proprio computer e qualunque editor/IDE. E' consentito l'accesso alla rete Internet, ma non è permessa la interazione con altri studenti o persone esterne. L'incapacità durante la prova orale di spiegare adeguatamente il codice consegnato implicherà l'immediato fallimento dell'esame.
- Il programma Java consegnato verrà valutato per l'ammissione alla prova orale. Pertanto, la valutazione della prova di programmazione sarà AMMESSO oppure NON AMMESSO.
- Terminata la valutazione di tutte le prove di programmazione, verrà pubblicata la lista degli ammessi all'orale con il relativo calendario delle prove orali. Le prove orali avranno inizio a partire da lunedì 15 Febbraio. Potranno essere segnalati tramite email eventuali problemi con la data proposta per l'orale, in base alla quale aggiorneremo nei limiti del possibile il calendario.
- Alla prova orale verranno discussi aspetti tecnici e di progettazione del programma Java consegnato. Inoltre, la prova orale verterà anche su nozioni di teoria e aspetti pratici affrontati durante i moduli di Teoria e Laboratorio del corso.
- La prova orale può essere sostenuta anche in uno degli appelli successivi. In caso in cui la prova orale non sia superata, o in caso di rifiuto del voto proposto, all'appello successivo lo studente dovrà ripetere anche la prova di programmazione.
Risultati prova di programmazione
Risultati della prova di programmazione del 26 Aprile 2021 e Calendario orali