Informatica
Anno scolastico: 2025/2026 - Classi: 5INC
L'obiettivo del corso è quello di insegnare la programmazione Web sia front-end che back-end utilizzando framework web basati su JavaScript (front-end) e su PHP (back-end). Integrando il tutto con un database relazionale come MySQL.
Lezione 1 - Introduzione a JavaScript
Argomenti:-
Introduzione a JavaScript:
- Cenni storici;
- Sintassi di base.
- JavaScript come linguaggio interpretato;
- JavaScript come linguaggio debolmente tipizzato;
-
Variabili in JavaScript:
- Keywords
var, let, const; - Scope delle variabili;
- Conversioni tra tipi di dato.
- Keywords
-
Tecnica di hoisting:
- Accesso alle variabili prima della loro dichiarazione;
- Esempi.
| Materiali | |
|---|---|
| Slides della lezione |
|
| Esercizio 1 - Calcolatrice |
|
| Esercizio 1 - Calcolatrice (soluzione) |
|
Lezione 2 - Array e Oggetti
Argomenti:-
Gli array in JavaScript:
- Dichiarazione e assegnazione;
- Accesso posizionale;
- Proprietà
.length; -
Metodi di iterazione:
- Ciclo
for"classico"; - Ciclo
for ... of ...; - Metodo
.forEach([...]).
- Ciclo
-
Metodi di manipolazione:
- Metodo
.map([...]); - Metodo
.filter([...]).
- Metodo
-
Gli oggetti in JavaScript:
- Dichiarazione e assegnazione;
- Accesso con dot-notation e bracket-notation;
- Keyword
delete [...]; -
Metodi di enumerazione delle proprietà:
- Loop
for ... in ...; -
Funzioni di
Object:- Funzione
Object.keys(); - Funzione
Object.values(); - Funzione
Object.entries().
- Funzione
- Loop
| Materiali | |
|---|---|
| Slides della lezione (1) |
|
| Esercizio 2 - Biblioteca |
|
| Esercizio 2 - Biblioteca (soluzione) |
|
| Slides della lezione (2) |
|
| Esercizio 3 - Salumeria |
|
Lezione 3 - Gestione delle date
Argomenti:-
L'oggetto
Date():- Costruttore;
- Data per timestamp;
- Data per stringa ISO;
-
Metodi per la lettura della data:
- Metodo
getTime(); - Metodo
getDate(); - Metodo
getMonth(); - [...]
- Metodo
-
Confronto tra date:
- Metodo
date1 > date2(vietatissimo!); - Metodo
date1.getTime() > date2.getTime().
- Metodo
| Materiali | |
|---|---|
| Slides della lezione |
|
| Esercizio 4 - Accademia di Idunn |
|
Lezione 4 - JavaScript Object Notation (JSON)
Argomenti:-
Cenni teorici:
- Utilizzi comuni di JSON;
- Indipendenza dal linguaggio in uso.
- Regole sintattiche fondamentali;
-
Integrazione con JavaScript:
- Metodo
JSON.parse([...]); - Metodo
JSON.stringify([...]).
- Metodo
| Materiali | |
|---|---|
| Slides della lezione |
|
| Esercizio 5 - JavaScript Object Notation (JSON) |
|
| Esercizio 6 - I giochi degli Dèi |
|
| Esercizio 7 - Working with JSON (from developer.mozilla.org) |
|
Lezione 5 - Introduzione a PHP
Argomenti:-
Cenni teorici:
- Origine e prime versioni del linguaggio;
- Scenari di utilizzo - Web 2.0;
-
Funzionamento di PHP:
- HTTP request e response;
- L'interprete PHP;
- Cenni su
Content-Type.
-
Requisiti:
- Lo stack LAMP / WAMP (Linux/Windows + Apache + MySQL + PHP);
- Installazione e configurazione di XAMPP.
-
Sintassi di PHP:
- Integrazione di PHP e HTML;
- Tag di apertura e chiusura (
<?php [...] ?>); - Dichiarazione e assegnazione di variabili.
-
La sagra dei tipi di dato:
- PHP come linguaggio debolmente tipizzato;
- Inferenza dei tipi di dato;
- Metodo
gettype([...]).
| Materiali | |
|---|---|
| Slides della lezione |
|
| Esercizio 8 - Calcolatrice (2) |
|
Lezione 6 - Le funzioni in PHP
Argomenti:-
Funzioni definite dall'utente:
- Definizione di una nuova funzione;
- Firma della funzione.
-
Invocazione di una funzione:
- Notazione;
- Parametri formali e attuali.
-
I parametri di una funzione:
- Parametri con valore predefinito;
- Passaggio per valore e per riferimento.
| Materiali | |
|---|---|
| Slides della lezione |
|
| Esercizio 9 - Biblioteca (2) |
|
Lezione 7 - Gestione dell'input in PHP
Argomenti:-
Passaggio da front-end a back-end:
- Uso delle form in HTML;
- Tipi di input (
type=[...]); - Form
actionemethod;
-
Le richieste HTTP:
- Metodi
GETePOST; - Uso dei codici di stato (cenni);
- Metodi
-
Gestione delle form:
- Scope degli input lato front-end;
- Differenza tra
id=[...]ename=[...].
| Materiali | |
|---|---|
| Slides della lezione |
|
| Esercizio 10 - Pagina di login |
|
Lezione 8 - Filtri e sicurezza
Argomenti:- Attacco Cross-site scripting (XSS);
-
Validazione della form:
- Funzione
key_exists(); - Funzione
htmlspecialchars(); - Funzione
htmlspecialchars_decode().
- Funzione
| Materiali | |
|---|---|
| Slides della lezione |
|
| Esercizio 11 - Oleificio Bouquet |
|
| Approfondimento - PHP Form Validation |
|
| Approfondimento - PHP Form Required |
|
| Cloudflare - Cos'รจ il cross-site scripting? |
|
Lezione 9 - Gestione delle sessioni
Argomenti:- Definizione di sessione;
- Protocollo HTTP come protocollo stateless;
- Funzione
session_start(); - Funzione
session_name(?[...]); -
Funzioni sulle variabili di sessione:
- Assegnazione (
$_SESSION["..."] = "..."); - Esistenza (
key_exists("...", $_SESSION)); - Eliminazione (
unset($_SESSION["..."])).
- Assegnazione (
-
Eliminazione di una sessione:
- Funzione
session_unset(); - Funzione
session_destroy().
- Funzione
-
Definizioni:
- Variabile
$_SESSION; - Cookie.
- Variabile
-
Esempi:
- Lettura di una variabile di sessione;
- Scrittura di una variabile di sessione;
- Eliminazione di una variabile di sessione;
- Esistenza di una variabile;
- Eliminazione della sessione.
| Materiali | |
|---|---|
| Slides della lezione |
|
| Esercizio 12 - Il gestionale dell'Accademia (1) |
|
Lezione 10 - Upload di file
Argomenti:- Definizione di storage;
- Schema dello storage nel filesystem;
-
Codici di stato HTTP:
- 400 - Bad Request;
- 413 - Content Too Large;
- 415 - Unsupported Media Type.
-
Preparazione all'upload di un file (form HTML):
- Tipo di richiesta
POST; - Attributo
enctype="multipart/form-data".
- Tipo di richiesta
-
Preparazione all'upload di un file (PHP):
- Funzione
basename([...]); -
Array associativo globale
$_FILES:- Variabile
tmp_name.
- Variabile
- Funzione
file_exists([...]); - Funzione
move_uploaded_file([...]).
- Funzione
-
Media types (MIME types):
- Definizione;
- MIME Type vs. estensione;
- Variabile
type.
| Materiali | |
|---|---|
| Slides della lezione |
|
| Esercizio 13 - Il gestionale dell'Accademia (2) |
|
Lezione 11 - Introduzione a SQL
Argomenti:- Definizione: Linguaggio SQL;
-
Sotto-insiemi di SQL:
- DDL - Data Definition Language;
- DML - Data Manipulation Language.
- Interfaccia Web phpMyAdmin;
- Approfondimento: configurazione di un Alias in Apache;
- Schema dell'architettura L/W-AMP;
-
Estensione MySQLi:
- Definizione e obiettivi;
- Programmazione procedurale vs. a oggetti;
-
Istanza di una classe
mysqli:- Parametri del costruttore;
- Esempio.
-
Gestione dell'errore di connessione:
- Attributo
connect_errno; - Attributo
connect_error.
- Attributo
| Materiali | |
|---|---|
| Slides della lezione |
|