Insegnamento INFORMATICA II

Corso
Matematica
Codice insegnamento
55123509
Curriculum
Comune a tutti i curricula
Docente
Stefano Marcugini
Docenti
  • Stefano Marcugini
Ore
  • 78 ore - Stefano Marcugini
CFU
9
Regolamento
Coorte 2021
Erogato
2022/23
Attività
Affine/integrativa
Ambito
Attività formative affini o integrative
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
Libri di testo:

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

Core Java 2 vol.2 di Cay S. Horstmann, Gary Cornell - Pearson - 2005

Di questo libro tratteremo solo due capitoli: Multithreading e Programmazione di rete;

Altri libri che possono essere consultati:

Java 2 Guida completa - L.Lemay, C.L. Perkins, Edizioni Sams net

Java 2 i fondamenti - Cay S. Horstmann e Gary Cornell - Mc Graw Hill 2005;


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.

Tutti i testi sono disponibili in Biblioteca.
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