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.
  • Tecnica di hoisting:
    • Accesso alle variabili prima della loro dichiarazione;
    • Esempi.
Materiali
Slides della lezione
(link)
Esercizio 1 - Calcolatrice
(link)
Esercizio 1 - Calcolatrice (soluzione)
(link)

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([...]).
    • Metodi di manipolazione:
      • Metodo .map([...]);
      • Metodo .filter([...]).
  • 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().
Materiali
Slides della lezione (1)
(link)
Esercizio 2 - Biblioteca
(link)
Esercizio 2 - Biblioteca (soluzione)
(link)
Slides della lezione (2)
(link)
Esercizio 3 - Salumeria
(link)

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();
      • [...]
    • Confronto tra date:
      • Metodo date1 > date2 (vietatissimo!);
      • Metodo date1.getTime() > date2.getTime().
Materiali
Slides della lezione
(link)
Esercizio 4 - Accademia di Idunn
(link)

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([...]).
Materiali
Slides della lezione
(link)
Esercizio 5 - JavaScript Object Notation (JSON)
(link)
Esercizio 6 - I giochi degli Dèi
(link)
Esercizio 7 - Working with JSON (from developer.mozilla.org)
(link)

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
(link)
Esercizio 8 - Calcolatrice (2)
(link)

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
(link)
Esercizio 9 - Biblioteca (2)
(link)

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 action e method;
  • Le richieste HTTP:
    • Metodi GET e POST;
    • Uso dei codici di stato (cenni);
  • Gestione delle form:
    • Scope degli input lato front-end;
    • Differenza tra id=[...] e name=[...].
Materiali
Slides della lezione
(link)
Esercizio 10 - Pagina di login
(link)

Lezione 8 - Filtri e sicurezza

Argomenti:
  • Attacco Cross-site scripting (XSS);
  • Validazione della form:
    • Funzione key_exists();
    • Funzione htmlspecialchars();
    • Funzione htmlspecialchars_decode().
Materiali
Slides della lezione
(link)
Esercizio 11 - Oleificio Bouquet
(link)
Approfondimento - PHP Form Validation
(link)
Approfondimento - PHP Form Required
(link)
Cloudflare - Cos'รจ il cross-site scripting?
(link)

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["..."])).
  • Eliminazione di una sessione:
    • Funzione session_unset();
    • Funzione session_destroy().
  • Definizioni:
    • Variabile $_SESSION;
    • Cookie.
  • 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
(link)
Esercizio 12 - Il gestionale dell'Accademia (1)
(link)

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".
  • Preparazione all'upload di un file (PHP):
    • Funzione basename([...]);
    • Array associativo globale $_FILES:
      • Variabile tmp_name.
    • Funzione file_exists([...]);
    • Funzione move_uploaded_file([...]).
  • Media types (MIME types):
    • Definizione;
    • MIME Type vs. estensione;
    • Variabile type.
Materiali
Slides della lezione
(link)
Esercizio 13 - Il gestionale dell'Accademia (2)
(link)

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.
Materiali
Slides della lezione
(link)
Calendario delle lezioni
Ogni giovedì
08:40 / 11:20 - Aula R40

Indice delle lezioni: