Programmazione (Modulo di Teoria)


  • 23/10/2019: Lezione posticipata, la prossima lezione di Programmazione è giovedì 24 Ottobre.
  • 17/10/2019: Lezione sospesa per evento Hacktoberfest 2019.
  • 14/10/2019: Lezione posticipata, la prossima lezione di Programmazione è martedì 15 Ottobre.
  • 07/10/2019: Prima lezione.
  • Canale telegram: PROGRAMMAZIONE1920@Unicam, https://t.me/programmazione1920Unicam

Docente:

Link ESSE3

Orario delle Lezioni:

  • Lunedì 14 - 16 (B1) - Laboratorio
  • Martedì 9 - 11 (B1) - Laboratorio
  • Mercoledì 11 - 13 (B1)
  • Giovedì 9 - 11 (B1)

Ricevimento studenti:

  • su appuntamento (via email)

D1 - CONOSCENZA E CAPACITÀ DI COMPRENSIONE
Al termine di questa attività formativa, lo studente dovrà dimostrare di essere in grado di:

  1. Conoscere i concetti base della programmazione procedurale.
  2. Conoscere i concetti base della programmazione orientata agli oggetti, con particolare riguardo al linguaggio Java.
  3. 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:

  1. Programmare secondo il paradigma di programmazione procedurale.
  2. 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:

  1. 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:

  1. 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:

  1. Comprendere e imparare ad usare autonomamente sintassi e semantica di altri linguaggi di programmazione, imperativi o ad oggetti, nonché librerie aggiuntive e tecnologie analoghe.

  • 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.

Slide del Corso

Riferimenti utili

Lezioni

  • 07/10/2019: informazioni generali (registrazione)
  • 8/10/2019: il metodo algoritmico; problemi indecidibili (registrazione)
  • 9/10/2019: complessità; breve storia dei calcolatori; rappresentazione binaria (registrazione)
  • 10/10/2019: algoritmi; diagrammi di flusso (registrazione)
  • 15/10/2019: compilatori e interpreti; compilazione ed esecuzione da linea di comando; generazione di jar file (registrazione)
  • 16/10/2019: shell Linux e prompt dei comandi Windows (registrazione)
  • 21/10/2019: introduzione alle funzionalità base di Eclipse; variabili; input e output in Java– (registrazione)
  • 22/10/2019: perdita di precisione; commenti; conversioni di tipo (registrazione)
  • 24/10/2019: conversione di tipo esplicita; precedenze fra operatori; operatori di incremento e decremento (registrazione)
  • 30/10/2019: array; differenza fra array e tipi primitivi (registrazione)
  • 31/10/2019: esempi su array; espressioni booleane (registrazione)
  • 06/11/2019: metodi; istruzione return (registrazione)
  • 07/11/2019: call-by-value e call-by-reference (registrazione)
  • 14/11/2019: costrutto if; costrutto if-else, diramazioni multiple; istruzione switch; cicli while e do-while (registrazione)
  • 20/11/2019: cicli for; array length
  • 21/11/2019: variabili locali; paradigma di programmazione procedurale; ricorsione (regsitrazione)
  • 27/11/2019: Eclipse debugger e ricorsione; paradigma di programmazione orientata agli oggetti (registrazione)
  • 28/11/2019: dichiarazione di classe; creazione e distruzione di oggetti; utilizzo di oggetti (registrazione)
  • 4/12/2019: parametri formali di tipo classe; metodi costruttori; metodo main; accessori e mutatori; classe String (registrazione)
  • 5/12/2019: sovraccaricamento di metodi; Ereditarietà; Polimorfismo; Conversione di tipo classe (registrazione)
  • 11/12/2019: Modificatori public e private; Pacchetti: definizione e visibilità; Incapsulamento; this (registrazione)
  • 12/12/2019: Modificatore static; Modificatore final; Eccezioni: creazione, lancio, gestione; Accesso file di testo; Interfacce e classi astratte (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


Fac-simile prova scritta

Date Esami A.A. 2018/2019

  • Appello I: 13/02/2020 ore 10:00 - Polo Lodovici - Aula LA1
  • Appello II: 27/02/2020 ore 10:00 - Polo Lodovici - Aula LA1
  • Appello III: 29/05/2020 ore 10:00 - Polo Lodovici - Aula LA1
  • Appello IV: 16/06/2020 ore 10:00 - Polo Lodovici - Aula LA1
  • Appello V: 07/07/2020 ore 10:00 - Polo Lodovici - Aula LA1
  • Appello VI: 10/09/2020 ore 10:00 - Polo Lodovici - Aula LA1
  • Appello VII: 24/09/2020 ore 10:00 - Polo Lodovici - Aula LA1
  • Appello VIII: 02/02/2021 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.
  • Prova di programmazione: esercizi di programmazione svolti singolarmente in laboratorio.
  • Prova orale: solo se ritenuto necessario dai docenti.

Il voto finale è la media ponderata dei voti della prove.