PC Academy Adobe Authorized Training Center

Master Programmazione PHP & Java SE & CMS per Tutti

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

PHP

1.0 Ambiente di sviluppo

1.1 Web server e database MySQL

1.1.1 Comprendere la definizione dei processi che si occupano di fornire i servizi web su richiesta di un browser: I server web Apache e IIS.
1.1.2 Effettuare le installazioni e le configurazioni dei server web Apache e IIS.
1.1.3 Comprendere l'utilizzo di un gestore di basi dati come servizio di un server web: MySQL.
1.1.4 Effettuare l'installazione e la configurazione di un DBMS MySQL in un server.
1.1.5 Comprendere l'utilizzo del linguaggio di scripting interpretato PHP.
1.1.6 Effettuare l'installazione e la configurazione dell'ambiente di sviluppo di PHP.

2.0 Fondamenti di PHP

2.1 Concetti Generali
2.1.1 Riconoscere la sintassi corretta per scrivere codice PHP all'interno di una pagina HTML.
2.1.2 Includere porzioni di linguaggio in varie sezioni della pagina web utilizzando i relativi tag.
2.1.3 Riconoscere le varie tecniche di visualizzazione di una pagina dinamica attraverso l'utilizzo di un server web.
2.2 Stile di programmazione
2.2.1 Riconoscere e saper utilizzare le diverse tipologie di commenti per rendere il codice più comprensibile.
2.2.2 Utilizzare una struttura ad albero per una corretta leggibilità del codice.
2.3 Strutture di contenimento dei dati
2.3.1 Comprendere come identificare una porzione di memoria destinata al contenimento di dati.
2.3.2 Riconoscere le diverse tipologie di contenimento dei dati per la gestione degli script PHP, come ad esempio tipi booleani, interi, virgola mobile, stringhe.
2.3.3 Analizzare i diversi operatori di assegnazione per la gestione dei dati.
2.3.4 Comprendere l'utilizzo del concatenamento di stringhe per la gestione dei testi.
2.3.5 Gestire le operazioni aritmetiche tra variabili utilizzando i relativi operatori.
2.3.6 Riconoscere come incrementare e decrementare una variabile.
2.3.7 Analizzare i diversi operatori booleani per la gestione dei dati.
2.3.8 Analizzare gli operatori di confronto utili per la gestione delle condizioni.
2.4 Gestire l'output degli script PHP
2.4.1 Riconoscere la sintassi corretta del costrutto echo per restituire l'output di uno script PHP.
2.4.2 Analizzare il costrutto echo per la stampa di variabili, testo e funzioni. Errore. Il segnalibro non è definito.
2.4.3 Comprendere l'utilizzo della funzione var_dump per fornire il valore ed il tipo di una espressione.
2.4.4 Comprendere la sintassi corretta del costrutto print per restituire l'output di un script PHP.
2.4.5 Riconoscere i vantaggi e gli svantaggi dei costrutti echo e print.

3.0 Le istruzioni condizionali, di controllo e i cicli

3.1 La logica condizionale
3.1.1 Riconoscere la logica condizionale mediante l'utilizzo dell'operatore ternario.
3.1.2 Comprendere come utilizzare i controlli di flusso attraverso l'istruzione IF.
3.1.3 Riconoscere le differenze tra le istruzioni Else ed Elseif.
3.1.4 Gestire i controlli multipli per il flusso dei dati attraverso l'istruzione Switch.
3.2 Le operazioni ripetitive
3.2.1 Comprendere come eseguire operazioni ripetitive attraverso l'utilizzo del ciclo For.
3.2.2 Gestire operazioni ripetitive attraverso la logica condizionale: While.
3.2.3 Comprendere le differenze tra il ciclo While e Do While.
3.2.4 Comprendere come evitare cicli "infiniti".
3.2.5 Utilizzare le istruzioni fondamentali per interrompere una routine.

4.0 Strutture dati complesse
4.1 Array

4.1.1 Definizione di una struttura complessa vettoriale per la gestione dei dati.
4.1.2 Comprendere l'utilizzo di una struttura di dati complessa e dei relativi indici.
4.1.3 Modificare una struttura di dati ed eliminarne i relativi elementi.
4.1.4 Effettuare operazioni di interazione tra gli elementi di una o più strutture complesse di dati.
4.1.5 Utilizzare il costrutto FOREACH per la gestione di strutture di dati complesse.
4.1.6 Saper effettuare azioni su ogni elemento di un vettore tramite l'uso dei puntatori.
4.1.7 Effettuare ricerche all'interno di una struttura vettoriale.
4.1.8 Utilizzo delle funzioni usorteduasort per l’ordinamento tramite definizione di funzioni non standard

5.0 Gestione del codice PHP

5.1 Riutilizzare il codice PHP
5.1.1 Comprendere come ottenere il codice di programmazione da un altro file.
5.1.2 Analizzare le diverse sintassi per includere un file.
5.2 Le funzioni per la gestione delle variabili
5.2.1 Comprendere il concetto di visibilità, o scope, di una variabile.
5.2.2 Valutare il contenuto di una variabile attraverso la funzione empty().
5.2.3 Comprendere come verificare se una variabile è definita mediante la funzione isset().
5.2.4 Eliminare una variabile attiva utilizzando la funzione unset().
5.2.5 La funzione is_string() per verificare che una variabile sia una stringa.
5.2.6 La funzione is_numeric() per verificare che una variabile sia una numerica.
5.3 Le funzioni per la gestione delle stringhe
5.3.1 Gestione delle stringhe all'interno di raggruppamenti di codice.
5.3.2 Eliminare tutti gli spazi da una stringa mediante la funzione trim().
5.3.3 Verificare se una stringa contiene degli spazi iniziali ed eliminarli attraverso la funzione ltrim().
5.3.4 Verificare se una stringa contiene degli spazi finali ed eliminarli attraverso la funzione rtrim().
5.3.5 Verificare la lunghezza di una stringa utilizzando la funzione strlen().
5.3.6 Gestire i caratteri maiuscoli e minuscoli di una stringa.
5.3.7 Comprendere come gestire file di testo con campi delimitati.
5.3.8 Comprendere come creare ed accedere ai file di dati
5.3.9.Gestione dei lock su file
5.3.10. uso delle funzionishortcut per interagire con i file (file,file_put_contents, ecc)
5.4 Le funzioni per la gestione delle strutture complesse di dati
5.4.1 Comprendere i concetti relativi all'ordinamento dei dati.
5.4.2 Ordinare gli elementi di un vettore in ordine crescente aggiornando le chiavi.
5.4.3 Ordinare gli elementi di un vettore in ordine decrescente aggiornando le chiavi.
5.4.4 Ordinare gli elementi di un vettore in ordine crescente mantenendo le chiavi di origine.
5.4.5 Ordinare gli elementi di un vettore in ordine decrescente mantenendo le chiavi di origine.
5.5 Le funzioni per la gestione delle date
5.5.1 Comprendere il significato di timestamp.
5.5.2 Comprendere come restituire il timestamp di un preciso istante.
5.5.3 Restituire la data del timestamp in un formato definito dall'utente.
5.5.4 Verificare se una determinata data risulta corretta.
5.6 Le funzioni personalizzate
5.6.1 Comprendere come poter personalizzare una funzione per la creazione di nuove funzionalità.
5.6.2 Gestione delle variabili all'interno di raggruppamenti di codice personalizzato.
5.6.3 Comprendere come inviare valori ad una funzione.
5.6.4 Gestire i valori restituiti da una funzione.
5.7 Invio email in PHP
5.7.1 Comprendere come inviare email attraverso PHP.
5.7.2 Inserire le intestazioni in un'email per verificarne i dettagli.
5.7.3 Comprendere come inviare un'email a più destinatari.

6.0 Recupero e verifica dei dati inseriti in un form HTML

6.1 Recupero dati da un modulo
6.1.1 Comprendere con quali metodi sono inviati i dati di un form ad uno script.
6.1.2 Accodamento dei dati ad una URL di una pagina attraverso l'utilizzo dell'array $_GET.
6.1.3 Invio dei dati di un form in modo invisibile all'utente utilizzando l'array $_POST.
6.2 Controllo dei dati di un modulo
6.2.1 Comprendere come monitorare la compilazione dei campi di un form.
6.2.2 Verificare la lunghezza ed il tipo di un campo di un form per la registrazione di un utente.
6.2.3 Convalidare il campo email di un form.
6.2.4 Convertire caratteri particolari in entità HTML.

7.0 Il mantenimento di informazioni in PHP

7.1 Le sessioni
7.1.1 Comprendere come mantenere attivi, durante la navigazione, dati significativi per la gestione delle procedure.
7.1.2 Avviare e memorizzare i dati in una sessione.
7.1.3 Gestire i dati di una sessione.
7.1.4 Comprendere come è possibile eliminare una sessione.

8.0 Il database MySQL

8.1 Come amministrare il database MySQL
8.1.1 Comprendere come accedere al database MySQL attraverso la riga di comando.
8.1.2 Effettuare l'avvio e l'arresto dei servizi MySQL.
8.1.3 Effettuare una visione globale dei database e delle tabelle di MySQL.
8.1.4 Comprendere come creare un nuovo account MySQL.
8.1.5 Aggiungere ed eliminare i privilegi ad un utente.
8.1.6 Modificare le proprietà di un account per l'accesso e la gestione di MySQL.
8.1.7 Eliminare un account MySQL.
8.1.8 Gestire il backup dei dati MySQL.
8.1.9 Amministrare MySQL attraverso software specifici.
8.2 Gestione del database MySQL
8.2.1 Comprendere come creare, utilizzare ed eliminare una database.
8.2.2 Riconoscere le diverse tipologie di dati esprimibili in MySQL: i domini.
8.2.3 Gestire le operazioni di creazione, aggiornamento, ed eliminazione della struttura di una tabella.
8.2.4 Gestire le operazioni di creazione, aggiornamento, ed eliminazione di una riga di una tabella.
8.2.5 Estrarre i dati da una tabella attraverso dei criteri prestabiliti: Select.
8.2.6 Riconoscere le funzioni di supporto alle query: COUNT(), MAX(), SUM(), NOW(), Like.
8.2.7 Effettuare relazioni tra tabelle: Join.
8.2.8 Riconoscere le classificazioni delle diverse join in una query.

9.0 Interazione con il database MySQL

9.1 PHP e MySQL
9.1.1 Riconoscere il codice PHP per effettuare la connessione e la disconnessione ad un database MySQL.
9.1.2 Implementare uno script PHP per la creazione di una tabella MySQL.
9.1.3 Inserire i dati in una tabella MySQL attraverso un form.
9.1.4 Visualizzare i dati di una tabella MySQL e formattarli per il web.
9.1.5 Effettuare l'aggiornamento e l'eliminazione dei dati di una tabella MySQL attraverso uno script
9.1.6 Uso delle libreria Mysqli ed introduzione all’uso delle query precompilate .
9.1.7  Ottenere il dettaglio di una riga MySQL attraverso uno script PHP.
9.1.8  Comprendere come realizzare un motore di ricerca interno ad un database MySQL.
9.1.9  Protezione delle pagine web e gestione degli accessi: login e logout utente.

10.0 PHP5 e la programmazione ad oggetti

10.1 Concetti Generali
10.1.1 Le novità in PHP 5: introduzione alla OOP
10.1.2 Programmazione ad oggetti vs. programmazione procedurale
10.2 Le classi
10.2.1 Creazione di classi
10.2.2 Indicatori di visibilità: public, protected e private
10.2.3 Utilizzo della parola chiave $this
10.2.4 Un metodo fondamentale: il costruttore
10.2.5 Proprietà e metodi
10.2.6 Metodi statici e loro proprietà
10.3 Metodi avanzati per le classi
10.3.1 Ereditarietà
10.3.2 Utilizzare i concetti dell'ereditarietà per estendere le classi
10.3.3 Utilizzo di superclassi, sottoclassi
10.3.4 Overriding e parola chiave final
10.3.5 Classi astratte e loro utilizzo
10.3.6 Interfacce e loro utilizzo
10.4 Gli oggetti
10.4.1 Utilizzare gli oggetti: passaggio dei parametri per riferimento o valore
10.4.2 Clonare gli oggetti attraverso l'operatore clone
10.4.3 Forzare il tipo degli oggetti: typehinting
10.4.4 Tipo di dato degli oggetti e confronto

11.0 Interazione con una base di dati per mezzo della libreria PDO

11.1 Cosa sono le PDO
11.2 Costruire un oggetto PDO per stabilire una connessione al DB
11.3 Gestione delle interazioni con una base di dati per mezzo di query standard e di query precompilate

12.0 Dalla teoria alla pratica: Creazione di un sito e-commerce con PHP5

12.1 Concetti Generali
12.1.1 Cos'è un sito e-commerce?
12.1.2 Strumenti indispensabili per la creazione del commercio elettronico
12.2 Login
12.2.1 Come utilizzare le variabili di sessione per riconoscere gli utenti
12.2.2 Permettere l'accesso alle pagine ai soli utenti registrati
12.2.3 Creare delle parti del sito ad accesso controllato
12.3 Carrello spesa
12.3.1 Come creare un carrello spesa: nozioni principali.
12.3.2 Utilizzare PHP5 e la programmazione ad oggetti per creare il carrello
12.3.3 Utilizzare il DataBase MySql per il mantenimento dei dati
12.4 Pagina dell'amministratore
12.4.1 Come scrivere la pagina dell'amministratore.
12.4.2 Proteggere e raggiungere le pagini amministrative del sito.
12.4.3 Cosa gestire con le pagine dell'amministratore
12.5 Progetto finale: il sito e-commerce
12.5.1 Creare un sito dinamico con DreamWeaver
12.5.2 Aspetto grafico del sito: i templates
12.5.3 Far interagire tutti i componenti del sito
12.5.4 Pagamenti on-line: come gestirli e cosa evitare
12.6 Impostare i parametri SEO
12.6.1 Cosa sono i parametri SEO?
12.6.2 Perché è importante gestire la visibilità?
12.6.3 Nozioni essenziali per la visibilità sul Web
12.6.4 Impostare i parametri del nostro sito
12.7 Statistiche sul sito
12.7.1 Utilizzare strumenti utili per l'analisi del nostro sito
12.7.2 Perché è importante gestire la visibilità?
12.7.3 Nozioni essenziali per la visibilità sul Web
12.7.4 Impostare i parametri del nostro sito
12.7.5 Pubblicazione sito web

Joomla!

Introduzione e installazione
Introduzione ai CMS - Funzionalità e caratteristiche
Introduzione al server locale (Xampp o Mamp)
Procedura di download e preparazione all'installazione di Joomla
Configurazione Joomla 1.6 post installazione

Configurazione
Il pannello di controllo di Joomla
Impostazioni Joomla
Le impostazioni per il sistema
Gestione estensioni
Moduli Joomla

Pannello di controllo e gestione ACL
Funzionamento ACL
Gestione delle ACL
Gestione delle categorie
Organizzazione dei menu in Joomla
Scrittura degli articoli
Gestione articoli
Scrittura articoli
Gestione degli articoli
Opzioni e programmazione degli articoli
Media e multimedia
Funzionalità Avanzate
Gestione dei plugin
Template: gestione degli stili
Creazione di un Template personalizzato
Personalizzazione dei template
Strumenti SEO Meta dati e ottimizzazione per i motori di ricerca con Joomla
Sicurezza

WordPress

Introduzione e installazione di WordPress
Introduzione ai CMS - Funzionalità e caratteristiche
Introduzione al server locale (Xampp o Mamp)
Installazione
Login e primo accesso all'amministrazione
Configurazione
Strumenti per l'amministrazione
Prime configurazioni
Opzioni di scrittura e lettura
Gestione contenuti
Scrivere un post per il blog
Assegnazione di categorie e tag al post
Gestione delle immagini
Gestione delle pagine
Gestione delle categorie
Commenti e utenti
Gestione dei commenti
Configurazione e moderazione dei commenti
Gestione degli utenti
URL e link
Struttura delle URL
Link esterni e link interni al sito
Plugin e pagine
Installazione di un plugin
Gestione dei plug-in
Temi e Widgets
I template
Widgets
Creare menù personalizzati
Personalizzare gli sfondi
Personalizzare la testata
Editor per la modifica da codice CSS