Insegnamento INFORMATICA II

Nome del corso di laurea Matematica
Codice insegnamento 55123509
Curriculum Comune a tutti i curricula
Docente responsabile Stefano Marcugini
Docenti
  • Stefano Marcugini
Ore
  • 78 Ore - Stefano Marcugini
CFU 9
Regolamento Coorte 2019
Erogato Erogato nel 2020/21
Erogato altro regolamento
Attività Affine/integrativa
Ambito Attività formative affini o integrative
Settore INF/01
Anno 2
Periodo Secondo Semestre
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