Insegnamento PROGRAMMAZIONE ORIENTATA AGLI OGGETTI CON LABORATORIO

Corso
Informatica
Codice insegnamento
A002059
Curriculum
Comune a tutti i curricula
Docente
Stefano Marcugini
Docenti
  • Stefano Marcugini
Ore
  • 78 ore - Stefano Marcugini
CFU
9
Regolamento
Coorte 2020
Erogato
2020/21
Attività
Caratterizzante
Ambito
Discipline informatiche
Settore
INF/01
Tipo insegnamento
Obbligatorio (Required)
Tipo attività
Attività formativa monodisciplinare
Lingua insegnamento
ITALIANO
Contenuti
PROGRAMMAZIONE AD OGGETTI
Modello degli oggetti per riferimento;
Incapsulamento;
Ereditarietà;
Polimorfismo.

INTRODUZIONE AL LINGUAGGIO JAVA
Istruzioni strutturate;
Array;
Classi e metodi;
Programmi stand-alone; Applet;
Librerie Java;
Eccezioni;
Multithreading;
Input ed Output; Istruzioni, espressioni, operazioni;
Programmazione orientata agli eventi.
Socket;
Applicazioni client-server.

ESEMPI DI ALGORITMI

Ricorsione
Testi di riferimento
Concetti di informatica e fondamenti di Java settima edizione per Java 8, 9, 10 e 11
di Cay Horstmann
Maggioli Editore

Disponibili in biblioteca:
Java 1.2 - L.Lemay, C.L. Perkins, Edizioni Sams net
Java 2 i fondamenti - Cay S. Horstmann e Gary Cornell - Mc Graw Hill;
Java 2 tecniche avanzate - Cay S. Horstmann e Gary Cornell - Mc Graw Hill;

in Inglese:

Core Java Volume I--Fundamentals, 9th Edition, Cay S. Horstman, Prentice Hall. Part of the Pearson Custom Library: Computer Science series.

Core Java, Volume II--Advanced Features, 9th Edition, Cay S. Horstman, Prentice Hall. Part of the Pearson Custom Library: Computer Science series.
Obiettivi formativi
Comprensione dei concetti riguardanti la programmazione orientata agli oggetti ed agli eventi.
Capacità di realizzare applicazioni.
Capacità di comparare più soluzioni possibili per poter scegliere la migliore.
Capacità di applicare schemi di soluzione classici a nuovi problemi.
Capacità di progettare la gerarchia di oggetti adatta al problema specifico.
Capacità di realizzare programmi con interfacce di tipo professionale.
Prerequisiti
E' utile aver sostenuto l'esame di Programmazione procedurale. In particolare è importante avere familiarità con i seguenti concetti: puntatori, gestione dinamica della memoria, algoritmi elementari.
Metodi didattici
lezioni frontali, esercitazioni al calcolatore.
Altre informazioni
Sito del Corso: www.unistudium.unipg.it

Calendario esami:
consultare il sito www.informatica.unipg.it
Modalità di verifica dell'apprendimento
Prova scritta e prova orale. Sono previste prove in itinere esoneranti per lo lo scritto finale.

La prova scritta prevede la soluzione di tre esercizi a stimolo chiuso e risposta aperta ed è finalizzata a verificare la capacità di applicare correttamente le conoscenza teoriche e la capacità di comprensione delle problematiche proposte.

Il tempo di svolgimento previsto è di tre ore.

La prova orale consiste in una discussione della durata di circa 30 minuti finalizzata a accertare il livello di conoscenza e di comprensione sui contenuti teorici del corso raggiunto dallo studente. Inoltre la prova orale consentirà di verificare la capacità di comunicazione dello studente con proprietà di linguaggio ed organizzazione autonoma dell'esposizione.

Su richiesta dello studente l'esame può essere sostenuto anche in lingua Inglese.

Per informazioni sui servizi di supporto agli studenti con disabilità e/o DSA visita la pagina http://www.unipg.it/disabilita-e-dsa
Programma esteso
Compilazione ed interpretazione.

PROGRAMMAZIONE ORIENTATA AGLI OGGETTI

Modello di oggetti per riferimento.

Ereditarietà

Incapsulazione.

Polimorfismo dati. Typecasting.

Polimorfismo metodi. Eary e late binding.

Sovraccarico (overloading) e riscrittura metodi.

Costruttori.

Classi astratte



INTRODUZIONE AL LINGUAGGIO JAVA

Tipi di dato.
Espressioni,
Istruzioni

Istruzioni semplici
blocco
Istruzioni condizionali
if
switch
? :
Istruzioni iterative
while
for
do while
Istruzioni di interruzione
return
break
continue

Array.

Classi e metodi;

Librerie Java;

Modificatore final e costanti.

Metodi e campi statici.

Ricorsione
Gestione memoria in ricorsione.
Ricorsione di coda.

Parametri main.

Garbage collection e finalizzazione.

Programmazione orientata agli eventi.
Eventi mouse e tastiera
Listener e Adattatori

Realizzazione applicazioni grafiche

Metodi di disegno. Font e Colori.

Componenti grafici principali: etichette, bottoni, campi di testo.

Evento azione.

Disposizione componenti.

Classe JDialog,
Menu

Eccezioni, definizione e gestione eccezioni definite dall'utente.

Flussi di input e flussi di output

Thread e multithreading
Scheduling thread.
Gruppi di thread.
Sincronizzazione thread.

Applicazioni client-server

Produzione di documentazione Javadoc.

ESEMPI DI ALGORITMI

Introduzione complessità

Ricerca binaria ricorsiva e iterativa e loro complessità.

Complessità Fibonacci esponenziale

Fibonacci lineare.

Liste concatenate

Algoritmi elementari su liste ed array
ricerca
conteggio
somma elementi
media
massimo e minimo

Pile e code.

Algoritmi di ordinamento
Bubblesort e sua complesstità
Quicksort ricorsivo e sua complessità
Quiksort non ricorsivo.

Torri di Hanoi.

NOTA

In particolare i seguenti argomenti sono descritti nei testi indicati che sono reperibili in biblioteca:

Passaggio dei parametri
Java1 I fondamenti
C. S. Horstmann - G. Cornell

cap 4 (Parametri dei metodi)


Thread
Java2 Tecniche avanzate
C. S. Horstmann - G. Cornell
cap 1 (fino a sincronizzazione inclusa)

Programmazione in rete
Java2 Tecniche avanzate
C. S. Horstmann - G. Cornell
cap 3 (Connessione a Server, Implementazione server, Programmazione avanzata dei socket)
Condividi su