PC Academy Adobe Authorized Training Center

Master Java Standard Edition + Android

Programma Analitico

Logica di Programmazione e Basi di Dati SQL

Logica di Programmazione

Algoritmi di programmazione (cosa sono e cosa servono)
Programmazione strutturata (perché farne uso)
Programmazione top‐down e bottom‐up
Evoluzione delle tecniche di programmazione (programmazione procedurale, programmazione ad oggetti)
Compilazione
Tecniche di esecuzione programmi (codici interpretati / codici compilati)
Definizione di variabili/costanti
Definizione costrutti di controllo (if e switch)
Definizione cicli (for,while,do‐while|repeat until)
Definizione funzioni/procedure
Diagrammazione tramite flow‐chart
Pseudocodifica
Debugging
Tecniche base per analisi dei requisiti di un programma (analisi grammaticale, casi d’uso)
Documentazione

Basi di Dati SQL
Basi di dati cosa sono e a cosa servono
Basi di dati relazionali
Definizione di relazione
Definizione di tupla/record
Definizione di chiave primaria e chiavi candidate
Definizione di chiave esterna
Diagrammi E‐R
Progettazione logica
Progettazione concettuale
Normalizzazione (prime tre forme)
Installazione di XAMPP e prima configurazione
Creazione DB e Tabelle tramite phpMyAdmin
Creazione relazioni tra tabelle tramite Designer di phpMyAdmin
Esempi di Query (SELECT,INSERT,DELETE,UPDATE)

Java

Introduzione
Installazione ambiente di sviluppo
Introduzione linguaggio Java
Compilazione ed esecuzione
Sintassi java

Basi della programmazione
Tipi di dato primitivi
Caso particolare: la classe String
Variabili locali
Casting
Operatori di assegnazione, relazionali e booleani
Operatori aritmetici
Pre/post incremento e concatenazione stringhe
Input/Output utente
Array monodimensionali
Array multidimensionali
Istruzione If-Else e operatore ternario
IF annidati
Istruzione Switch - case
Ciclo While
Ciclo Do-While
Ciclo For
Cicli annidati
Cicli infiniti
Labels, Break e Continue

Metodi
Il metodo Main ed i sottoprogrammi
Metodi di classe: La parola chiave Static
Passaggio dei parametri per riferimento e per valore
Modificatori
Gestione e importazione dei package
Scope delle variabili

Programmazione ad oggetti
La programmazione ad oggetti
Progettare una Classe
Istanziare un Oggetto: il costruttore
Variabili d’istanza e incapsulamento
Visibilità dei membri di una classe
Il reference This
La parola riservata null
Membri statici e membri dinamici
Ereditarietà
Il concetto di ereditarietà
Strutture ereditarie
Dalla teoria alla pratica: Ereditarietà
La parola riservata super
La classe Object
Impedire l'ereditarietà: la parola riservata final

Polimorfismo

Polimorfismo
Overloading e Overriding
Binding dinamico
Casting con oggetti
Cast e instanceof

Interfacce, classi astratte e classi innestate
Interfacce
Interfaccce metodi di default : Definizione ed Uso (Java 8)
Interfacce metodi static: definizione ed uso (Java 8)
Ereditarietà e polimorfismo nelle interfacce
Classi astratte
Classi innestate
Classi anonime

Eccezioni
Errori ed eccezioni
Il costrutto TRY-CATCH-FINALLY
Tipi di eccezione ed il costrutto Throws
Lanciare un’eccezione: il costrutto Throw
Eccezioni personalizzate

Programmazione grafica
Interfacce grafiche
Le interfacce grafiche di Netbeans
TextField ed etichette
Pulsanti
Tabbedpane
Esempio. Utilizzare la classe Persona

Programmazione multithreading
Multithreading
Dimensione temporale dei thread
Creazione dei thread
Priorità e scheduler dei sistemi operativi
Sincronizzazione dei thread
Il Framework Collections
Framework Collections
Foreach ed Iterator
Implementazioni di Set e SortedSet
Implementazioni di List
Implementazioni di Queue
Implementazioni di Map e SortedMap
Tipi Generics
Input/Output
Introduzione all’I/O: input da tastiera
Java.io: Leggere un file
Java.io: Scrivere su un file
Java.io: Operazioni su file
Networking: Socket

Gestione dei dati: JDBC
Configurazione ambiente di sviluppo (gestione inclusione libreria)
Database: executeQuery
Database: executeUpdate

Lambda Calcolo (Java 8)

Introduzione
Espressioni Lambda Semplici: Definizione ed Uso
Espressioni Lambda a Blocchi: Definizione ed Uso
Espressioni Lambda e Generics
Uso delle Espressioni Lambda come argomenti dei metodi
Espressioni Lambda Method Reference: statici, d’istanza
Espressioni Lambda e costruttori

Android

Descrizione ambiente di sviluppo
Installazione SDK
Creazione Macchina Virtuale per il testing delle applicazioni Creazione della prima applicazione
Descrizione struttura del progetto di un app
Definizione di Activity e ciclo vitale di un’app
Uso del Logcat
Internazionalizzazione
Descrizione delle principali tipologie di layout:

ConstraintLayout LinearLayout
SlidingPaneLayout TableLayout

GridLayout
Implementazione di file di layout multipli per fornire supporto a diverse tipologie di device Descrizione dei componenti di base integrabili all’interno di un app

  •  Caselle di testo

  •  Radio Button

  •  CheckBox

    Gestione degli eventi
    Uso del file Strings.xml, Dimens.xml,Colors.xml
    Uso della rating bar e sua customizzazione grafica: introduzione all’uso degli stili Uso della menubar all’interno di un’app
    Creazione ed uso delle notifiche
    Avvio di activity secondarie: uso dei metodi startActivity e startActivityForResult Integrazione di app di sistema (Intent impliciti)
    Uso delle permission
    Uso dei file
    Uso delle Shared Preferences
    Interazione con database SQLite

Uso di container evoluti:

Listview Gridview WebView

Creazione ed utilizzo di adapter custom per la creazione di container evoluti custom Interfacce dinamiche: creazione ed uso dei fragment
Multithreading

  •  Thread

  •  Uso del metodo Post

  •  Uso del metodo runOnUiThread

  •  Uso della classe Handler

  •  AsyncTask

  •  IntentService,BroadCast Receiver

  •  Service

Integrare servizi remoti all’interno delle app

Uso delle socket

HttpUrlConnection/HttpsUrlConnection Uso della progressbar
Integrazione delle mappe all’interno di un app