Programmazione (Modulo di Teoria)


  • 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

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)

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

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:
    • 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):
    • In caso sia attivo Windows Defender, l'avvio dell'app potrebbe essere bloccato; cliccare su “Ulteriori informazioni” e poi premere il bottone “Esegui comunque”

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.

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