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 2021
- Erogato
- 2021/22
- 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)