Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Slide di informatica, Slide di Elementi di Informatica

Slide di informatica tradotte e ricopiate

Tipologia: Slide

2025/2026

Caricato il 30/06/2026

letizia-turato
letizia-turato 🇮🇹

3

(1)

28 documenti

1 / 32

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
SCHEMA INFO
Cos’è la programmazione La programmazione è il processo attraverso il quale forniamo istruzioni
chiare e precise a un computer. Anche se può sembrare semplice, è proprio qui che nasce la
difficoltà e allo stesso tempo il fascino della programmazione. I computer, infatti, non sono
intelligenti: non comprendono il significato delle istruzioni, non colgono il contesto e non colmano
le informazioni mancanti. Essi eseguono solo ed esclusivamente ciò che viene indicato, nell’ordine
stabilito. Possiamo quindi considerare la programmazione come una forma di comunicazione tra
l’essere umano e la macchina. Il programmatore deve descrivere con precisione cosa fare, quando
farlo e in quali condizioni, rendendo ogni passaggio esplicito. I computer seguono le istruzioni, non
le intenzioni. Se le istruzioni sono errate, incomplete o contraddittorie, il computer non le mette in
discussione e non propone alternative: le esegue comunque. Questo comportamento può portare a
risultati inaspettati o persino curiosi quando le indicazioni non sono sufficientemente precise. Per
questo motivo, la programmazione richiede un alto livello di precisione e la capacità di prevedere
ogni possibile scenario.
Perché programmiamo La programmazione esiste per permettere alle macchine di svolgere
compiti al posto nostro. È uno strumento che amplifica le capacità umane, consentendo di realizzare
attività che sarebbero impossibili, troppo lente o estremamente costose se eseguite manualmente.
Uno degli scopi principali è l’automazione delle attività ripetitive, come l’invio di email,
l’elaborazione di dati o la creazione di report. In questo modo, le macchine si occupano del lavoro
monotono e l’essere umano può concentrarsi su attività più creative e strategiche. La
programmazione permette anche di analizzare enormi quantità di dati in tempi molto ridotti,
individuando schemi e informazioni che richiederebbero anni di lavoro umano. Inoltre, consente di
modellare e simulare sistemi complessi del mondo reale, come il clima, l’economia o il traffico,
rendendo possibile testare ipotesi senza rischi concreti. Un altro aspetto fondamentale è la creazione
di esperienze digitali, come siti web, applicazioni e videogiochi, che fanno ormai parte della vita
quotidiana. Infine, la programmazione aiuta a espandere il nostro modo di pensare, supportando la
risoluzione di problemi che superano i limiti delle capacità mentali individuali.
La programmazione come forma di pensiero La programmazione non riguarda solo i computer,
ma rappresenta un vero e proprio modo di pensare. Imparare a programmare significa sviluppare il
cosiddetto pensiero computazionale, un insieme di abilità mentali utili in qualsiasi ambito. Questo
tipo di pensiero insegna innanzitutto a scomporre problemi complessi in parti più piccole e gestibili,
rendendo affrontabile anche ciò che inizialmente sembra troppo difficile. Aiuta inoltre a riconoscere
schemi ricorrenti, permettendo di riutilizzare soluzioni già trovate in contesti simili. La
programmazione migliora il ragionamento logico, spingendo a verificare le proprie ipotesi,
individuare errori e perfezionare continuamente le soluzioni. Allo stesso tempo, insegna a esprimere
le idee con chiarezza e precisione, eliminando ambiguità nella comunicazione. Un esempio di
pensiero computazionale si trova anche nell’istruzione: quando un insegnante pianifica una lezione,
scompone i contenuti, organizza i concetti in modo logico, individua schemi di apprendimento e
verifica l’efficacia delle proprie strategie. Tutto questo avviene anche senza l’uso diretto di un
computer.
Chi ha bisogno della programmazione. La programmazione non è più riservata agli informatici o
agli ingegneri del software. Oggi è uno strumento fondamentale in moltissimi settori professionali e
scientifici. In ambito sanitario, la programmazione è utilizzata per sviluppare dispositivi medici,
analizzare immagini diagnostiche, elaborare dati genetici e creare sistemi di intelligenza artificiale
1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20

Anteprima parziale del testo

Scarica Slide di informatica e più Slide in PDF di Elementi di Informatica solo su Docsity!

SCHEMA INFO

Cos’è la programmazione La programmazione è il processo attraverso il quale forniamo istruzioni chiare e precise a un computer. Anche se può sembrare semplice, è proprio qui che nasce la difficoltà e allo stesso tempo il fascino della programmazione. I computer, infatti, non sono intelligenti: non comprendono il significato delle istruzioni, non colgono il contesto e non colmano le informazioni mancanti. Essi eseguono solo ed esclusivamente ciò che viene indicato, nell’ordine stabilito. Possiamo quindi considerare la programmazione come una forma di comunicazione tra l’essere umano e la macchina. Il programmatore deve descrivere con precisione cosa fare, quando farlo e in quali condizioni, rendendo ogni passaggio esplicito. I computer seguono le istruzioni, non le intenzioni. Se le istruzioni sono errate, incomplete o contraddittorie, il computer non le mette in discussione e non propone alternative: le esegue comunque. Questo comportamento può portare a risultati inaspettati o persino curiosi quando le indicazioni non sono sufficientemente precise. Per questo motivo, la programmazione richiede un alto livello di precisione e la capacità di prevedere ogni possibile scenario. Perché programmiamo La programmazione esiste per permettere alle macchine di svolgere compiti al posto nostro. È uno strumento che amplifica le capacità umane, consentendo di realizzare attività che sarebbero impossibili, troppo lente o estremamente costose se eseguite manualmente. Uno degli scopi principali è l’automazione delle attività ripetitive, come l’invio di email, l’elaborazione di dati o la creazione di report. In questo modo, le macchine si occupano del lavoro monotono e l’essere umano può concentrarsi su attività più creative e strategiche. La programmazione permette anche di analizzare enormi quantità di dati in tempi molto ridotti, individuando schemi e informazioni che richiederebbero anni di lavoro umano. Inoltre, consente di modellare e simulare sistemi complessi del mondo reale, come il clima, l’economia o il traffico, rendendo possibile testare ipotesi senza rischi concreti. Un altro aspetto fondamentale è la creazione di esperienze digitali, come siti web, applicazioni e videogiochi, che fanno ormai parte della vita quotidiana. Infine, la programmazione aiuta a espandere il nostro modo di pensare, supportando la risoluzione di problemi che superano i limiti delle capacità mentali individuali. La programmazione come forma di pensiero La programmazione non riguarda solo i computer, ma rappresenta un vero e proprio modo di pensare. Imparare a programmare significa sviluppare il cosiddetto pensiero computazionale, un insieme di abilità mentali utili in qualsiasi ambito. Questo tipo di pensiero insegna innanzitutto a scomporre problemi complessi in parti più piccole e gestibili, rendendo affrontabile anche ciò che inizialmente sembra troppo difficile. Aiuta inoltre a riconoscere schemi ricorrenti, permettendo di riutilizzare soluzioni già trovate in contesti simili. La programmazione migliora il ragionamento logico, spingendo a verificare le proprie ipotesi, individuare errori e perfezionare continuamente le soluzioni. Allo stesso tempo, insegna a esprimere le idee con chiarezza e precisione, eliminando ambiguità nella comunicazione. Un esempio di pensiero computazionale si trova anche nell’istruzione: quando un insegnante pianifica una lezione, scompone i contenuti, organizza i concetti in modo logico, individua schemi di apprendimento e verifica l’efficacia delle proprie strategie. Tutto questo avviene anche senza l’uso diretto di un computer. Chi ha bisogno della programmazione. La programmazione non è più riservata agli informatici o agli ingegneri del software. Oggi è uno strumento fondamentale in moltissimi settori professionali e scientifici. In ambito sanitario, la programmazione è utilizzata per sviluppare dispositivi medici, analizzare immagini diagnostiche, elaborare dati genetici e creare sistemi di intelligenza artificiale

per la diagnosi. Nel settore finanziario, alimenta il trading algoritmico, i sistemi di sicurezza, le applicazioni di mobile banking e i modelli di valutazione del credito. Le aziende la utilizzano per ottimizzare la logistica, gestire catene di approvvigionamento complesse, automatizzare magazzini e prevedere la domanda. Anche il mondo creativo beneficia della programmazione, che rende possibili l’arte generativa, gli effetti speciali cinematografici, la musica procedurale e i videogiochi avanzati. Programmazione e interdisciplinarità. La programmazione è diventata uno strumento trasversale, utile in quasi tutte le discipline accademiche. Nel campo dell’istruzione, permette di creare strumenti di apprendimento digitale, valutazioni interattive e giochi educativi. In psicologia, viene utilizzata per analizzare dati sperimentali, studiare i processi cognitivi e monitorare la salute mentale. In sociologia, aiuta ad analizzare i social network, i dati demografici e l’opinione pubblica. Anche la linguistica trae vantaggio dalla programmazione, grazie all’analisi automatica dei testi, allo studio delle frequenze linguistiche, all’osservazione dell’evoluzione delle lingue e allo sviluppo di strumenti di traduzione. Informazioni, dati e conoscenza Ogni programma nasce dalle informazioni, ma per comprendere davvero la programmazione è fondamentale distinguere tra dati , informazioni e conoscenza. I dati sono elementi grezzi, come numeri, testi o misurazioni, che da soli non hanno significato. Diventano informazioni solo quando vengono organizzati, analizzati e inseriti in un contesto. La conoscenza, invece, nasce quando le informazioni vengono comprese e utilizzate per prendere decisioni consapevoli. Questa distinzione è cruciale perché la programmazione ha proprio lo scopo di trasformare i dati in conoscenza. Scrivendo programmi, prendiamo grandi quantità di dati apparentemente insignificanti e li convertiamo in informazioni utili. Senza la programmazione, analizzare migliaia di valori richiederebbe tempi enormi; con essa, possiamo farlo in pochi istanti, scoprendo schemi e relazioni invisibili a occhio nudo. Il ruolo del programmatore non è quindi solo quello di elaborare dati, ma soprattutto di estrarne significato, creando strumenti che aiutino le persone a comprendere meglio la realtà e a prendere decisioni migliori. Il ciclo dell’informazione Ogni programma, dal più semplice al più complesso, segue un ciclo fondamentale chiamato ciclo dell’informazione. Comprenderlo è essenziale per capire come funziona qualsiasi software. Il primo passaggio è l’ input , ovvero l’acquisizione dei dati. Questi possono provenire da molte fonti: un utente che inserisce informazioni tramite una tastiera, un file caricato nel sistema, un sensore che misura un valore fisico o dati ricevuti da Internet. Segue l’ elaborazione , durante la quale il programma trasforma i dati ricevuti applicando operazioni logiche come calcoli, confronti, ordinamenti, filtraggi e algoritmi. È in questa fase che i dati grezzi iniziano a diventare informazioni. Infine, il programma produce un output , cioè restituisce il risultato dell’elaborazione. L’output può essere mostrato su uno schermo, salvato in un file, inviato tramite una rete, memorizzato in un database o utilizzato per attivare un’azione concreta. Programmazione e automazione Una delle applicazioni più potenti della programmazione è l’automazione, ovvero la possibilità di delegare alle macchine compiti ripetitivi, lunghi o complessi. Quando l’automazione è progettata correttamente, consente di risparmiare molto tempo e di aumentare la precisione. Le attività automatizzabili sono praticamente infinite. Ad esempio, la programmazione può eseguire calcoli statistici complessi su grandi quantità di dati in pochi millisecondi, operazioni che manualmente richiederebbero giorni. Può anche gestire comunicazioni personalizzate, come l’invio automatico di

Esempi di algoritmi “scadenti”. Un algoritmo scadente è tale perché non soddisfa uno o più dei criteri fondamentali. Un primo problema è la mancanza di chiarezza , quando le istruzioni sono ambigue e richiedono interpretazioni soggettive. Un altro errore è la non determinazione , cioè la produzione di risultati diversi a partire dallo stesso input, rendendo il sistema inaffidabile. Esistono poi algoritmi non finiti , che entrano in cicli infiniti a causa dell’assenza di una condizione di uscita. Infine, alcuni algoritmi sono troppo specifici , funzionano solo in un caso particolare e falliscono non appena cambia l’input. Struttura dell’algoritmo: sequenza, condizione e ripetizione. Tutti gli algoritmi, anche i più complessi, possono essere costruiti utilizzando solo tre strutture fondamentali. La sequenza consiste nell’eseguire le istruzioni in un ordine preciso, poiché l’ordine influisce sul risultato. La condizione permette di prendere decisioni, scegliendo percorsi diversi in base al fatto che una condizione sia vera o falsa. La ripetizione , o ciclo, consente di eseguire più volte la stessa operazione senza riscrivere le istruzioni. Queste tre strutture costituiscono la base della programmazione strutturata, formalizzata negli anni Sessanta, e sono alla base di tutto il software moderno, dalle applicazioni più semplici ai sistemi di intelligenza artificiale. Applicazioni della programmazione per pedagogisti. Per un educatore, la programmazione può diventare uno strumento pratico e potente. È possibile creare sistemi di valutazione automatica per calcolare medie, monitorare i progressi e individuare studenti a rischio. Si possono progettare strumenti di apprendimento interattivo come quiz, flashcard o giochi educativi personalizzati. La programmazione aiuta anche nella gestione delle presenze, nell’analisi dei dati di partecipazione e nell’automazione della pianificazione delle lezioni, riducendo il carico amministrativo. Inoltre, consente di analizzare le prestazioni degli studenti attraverso grafici e statistiche e di automatizzare la comunicazione con i genitori. Comprendere le basi della programmazione permette agli educatori di usare la tecnologia in modo più consapevole, adattarla alle proprie esigenze e collaborare efficacemente con figure tecniche. Dagli algoritmi ai linguaggi di programmazione Un algoritmo è un piano logico per risolvere un problema, mentre un programma è lo stesso piano scritto in un linguaggio di programmazione affinché il computer possa eseguirlo. L’algoritmo è come una ricetta spiegata a parole; il programma è quella ricetta tradotta in istruzioni formali e senza ambiguità. Un programma è quindi un insieme di istruzioni che specificano quali operazioni eseguire, in quale ordine e in quali condizioni. I programmi sono deterministici: eseguono sempre esattamente ciò che è stato scritto. Cos’è un linguaggio di programmazione Un linguaggio di programmazione è un sistema formale con un vocabolario e una grammatica ben definiti che permette di descrivere algoritmi con precisione assoluta. Rappresenta il collegamento tra il pensiero umano e l’esecuzione della macchina. I linguaggi di programmazione consentono di memorizzare e manipolare dati, esprimere decisioni e ripetizioni, controllare il flusso del programma e interagire con utenti o altri sistemi, gestendo input e output in modo strutturato. Dall’algoritmo al programma Trasformare il pensiero logico in codice eseguibile segue una progressione sistematica. Si passa dalla risoluzione astratta di un problema all’implementazione concreta attraverso tre fasi principali. La fase di progettazione dell’algoritmo è concettuale. In questa fase si riflette sulla logica del problema, si identificano input e output, si scompone il problema in passaggi più piccoli e si pianifica la soluzione usando strumenti come pseudocodice o

diagrammi di flusso. Segue la fase sintattica , in cui i passaggi logici vengono tradotti in un linguaggio di programmazione specifico. Qui è fondamentale rispettare regole, sintassi e convenzioni del linguaggio scelto. Infine, c’è la fase pratica , in cui il programma viene eseguito su un computer reale. In questa fase si testano diversi input, si individuano e correggono gli errori (debug) e si perfeziona il programma finché non produce risultati corretti e affidabili. Algoritmi e programmi: “cosa” e “come” Gli algoritmi descrivono cosa fare. Si concentrano sulla strategia e sui passaggi logici per risolvere un problema, senza preoccuparsi della sintassi o dei dettagli tecnici dell’implementazione. I programmi , invece, descrivono come fare. Traducono l’algoritmo in istruzioni precise, scritte in un linguaggio che il computer può leggere, compilare ed eseguire. Sono la realizzazione concreta della logica astratta. Linguaggi compilati e linguaggi interpretati. I linguaggi di programmazione si differenziano per il modo in cui il codice viene trasformato in istruzioni eseguibili. Nei linguaggi compilati , l’intero programma viene tradotto in codice macchina prima dell’esecuzione. Il compilatore analizza tutto il codice, individua eventuali errori e produce un file eseguibile. Questo approccio garantisce un’esecuzione molto rapida e prestazioni ottimizzate, ma rende lo sviluppo meno flessibile. Esempi tipici sono C, C++ e Java. Nei linguaggi interpretati , il codice viene letto ed eseguito riga per riga durante l’esecuzione. L’interprete traduce ed esegue ogni istruzione man mano che la incontra. Questo rende il linguaggio più flessibile e facile da testare, anche se leggermente più lento in fase di esecuzione. Esempi comuni sono Python, PHP e JavaScript. Java rappresenta un caso speciale : il codice viene prima compilato in bytecode e poi eseguito da una macchina virtuale (JVM), combinando vantaggi di entrambi gli approcci. Perché questa distinzione è importante. Capire se un linguaggio è compilato o interpretato aiuta a prevedere la velocità di esecuzione, la facilità di test e modifica del codice, gli strumenti necessari per lo sviluppo e il modo in cui vengono rilevati gli errori. È importante sottolineare che questa distinzione non riguarda la difficoltà del linguaggio. Compilazione e interpretazione descrivono solo come il codice arriva alla macchina: entrambi gli approcci sono validi in contesti diversi. Programmazione lato client e lato server. Nel contesto dello sviluppo web, il codice può essere eseguito in due posizioni diverse, con funzioni ben distinte. La programmazione lato client avviene nel browser dell’utente. Utilizza HTML per la struttura, CSS per lo stile e JavaScript per l’interattività. Il suo scopo è gestire l’aspetto e il comportamento dell’interfaccia, come animazioni, moduli e aggiornamenti dinamici dei contenuti senza contattare il server. La programmazione lato server avviene invece su un server web. Utilizza linguaggi come PHP, Python, Java, Node.js o Ruby. Qui il codice genera contenuti dinamici, elabora dati, interagisce con i database, gestisce autenticazione, sicurezza e calcoli complessi prima di inviare i risultati al client. Panoramica dei principali linguaggi di programmazione. Ogni linguaggio eccelle in ambiti specifici. Python è apprezzato per la sua leggibilità e versatilità ed è molto usato in analisi dei dati, intelligenza artificiale, automazione e didattica. Java è diffuso nei sistemi aziendali, nelle applicazioni Android e nel software server di grandi dimensioni. C++ offre alte prestazioni e controllo delle risorse, ed è fondamentale per videogiochi, sistemi

HTML come linguaggio di markup. Un linguaggio di markup utilizza tag per etichettare i

contenuti e indicarne il significato. Ogni elemento HTML è composto da un tag di apertura, dal contenuto e da un tag di chiusura. I tag non sono visibili nella pagina finale, ma servono al browser per interpretare correttamente il contenuto. Ad esempio, il tag

indica che il testo racchiuso è un paragrafo. Il browser utilizza questa informazione per strutturare il documento in modo corretto. Distinzione critica: struttura vs presentazione Un concetto fondamentale nello sviluppo web è la separazione tra struttura e aspetto visivo. I tag HTML indicano che cos’è un contenuto, non come deve apparire. Un titolo

non significa “testo grande e in grassetto”, ma “titolo principale del documento”. L’aspetto grafico viene definito successivamente tramite il CSS. Questa separazione permette allo stesso documento HTML di adattarsi a schermi diversi, dispositivi mobili, lettori vocali o stampa, semplicemente cambiando lo stile. Cosa fa e cosa non fa l’HTML L’HTML definisce la struttura e il significato semantico dei contenuti: titoli, paragrafi, elenchi, tabelle e sezioni logiche come intestazioni, articoli e piè di pagina.Non controlla invece lo stile visivo, che è compito del CSS, né il comportamento interattivo o la logica, che richiedono linguaggi di programmazione come JavaScript o PHP. Insieme, HTML, CSS e JavaScript formano la trinità del Web , ognuno con un ruolo specifico che rende i siti più chiari, manutenibili e scalabili. Dal testo alla pagina web Una delle caratteristiche più accessibili dell’HTML è la sua semplicità. I file HTML sono semplici file di testo con estensione .html e possono essere creati con qualsiasi editor di testo. Tutti i browser moderni sono in grado di interpretarli e visualizzarli immediatamente. Quando un browser apre un file HTML, legge il codice dall’alto verso il basso, interpreta i tag, costruisce la struttura della pagina e la visualizza applicando stili predefiniti. Questo processo avviene in modo automatico e rapidissimo. Elementi, tag e attributi. Per comprendere l’HTML è necessario distinguere tre concetti fondamentali. Un elemento è l’unità completa di contenuto, composta da tag di apertura, contenuto e tag di chiusura. Un tag indica l’inizio e la fine di un elemento ed è sempre racchiuso tra parentesi angolari. Un attributo fornisce informazioni aggiuntive su un elemento ed è inserito nel tag di apertura. Ad esempio, in un link, l’elemento completo è il collegamento, mentre attributi come href indicano la destinazione e targetspecificano il comportamento del link. Attributi comuni. Alcuni attributi possono essere utilizzati in quasi tutti gli elementi HTML. L’attributo id identifica un elemento in modo univoco, class consente di raggruppare elementi per lo stile, style applica uno stile diretto e title fornisce informazioni aggiuntive visibili al passaggio del mouse. Focus su PHP. In questo corso l’attenzione è rivolta a PHP , un linguaggio pensato per la programmazione web lato server e particolarmente adatto ai principianti. PHP è stato progettato nativamente per il web e si integra perfettamente con HTML e i server web. Funziona in modo eccellente con database come MySQL ed è ampiamente diffuso, essendo alla base di una grande percentuale dei siti web esistenti. La sua sintassi è chiara e offre feedback immediato, permettendo di vedere rapidamente i risultati nel browser. Come i browser interpretano l’HTML Capire come i browser elaborano l’HTML è fondamentale per scrivere codice corretto e affidabile. I browser seguono regole di parsing precise e, anche se

sono abbastanza tolleranti agli errori, una buona comprensione del processo aiuta a evitare problemi strutturali e comportamenti imprevisti. Quando un browser apre una pagina HTML, legge il codice in sequenza, dall’alto verso il basso , analizzando ogni carattere e ogni tag. Durante questa lettura costruisce una rappresentazione interna del documento chiamata DOM (Document Object Model). Una volta costruita questa struttura, il browser passa alla fase di rendering , cioè visualizza sullo schermo testi, immagini, link e altri contenuti, applicando stili e regole di layout. I browser non sono intelligenti È importante ricordare che i browser non “pensano” e non interpretano il contenuto in modo creativo. Funzionano in maniera meccanica, seguendo regole precise. Essi leggono i tag nell’ordine in cui compaiono, costruiscono relazioni basate sull’annidamento degli elementi, applicano stili predefiniti e cercano di correggere eventuali errori di codice. Tuttavia, un tag mancante o posizionato in modo errato può compromettere l’intera struttura della pagina. Un tag di chiusura dimenticato, ad esempio, può causare un annidamento scorretto e risultati visivi inaspettati. Il Document Object Model (DOM). Il DOM è uno dei concetti più importanti nello sviluppo web. È una rappresentazione ad albero del documento HTML. In questa struttura:  ogni elemento HTML è un nodo  gli elementi contenuti in altri sono nodi figli  gli elementi allo stesso livello sono fratelli  l’insieme delle relazioni forma una gerarchia Il DOM è ciò che JavaScript manipola per creare interazioni dinamiche ed è anche ciò che CSS utilizza per applicare stili selettivi. Comprendere il DOM significa capire come browser, CSS e JavaScript lavorano insieme Il ciclo richiesta–risposta. Quando un utente digita un URL e preme Invio, si avvia una sequenza di eventi ben definita. Il browser esegue prima una ricerca DNS , traducendo il nome del dominio in un indirizzo IP. Poi invia una richiesta HTTP al server. Il server elabora la richiesta e decide cosa inviare in risposta. In seguito, il browser riceve l’HTML (e spesso anche CSS, JavaScript e immagini) e infine interpreta il codice e visualizza la pagina. Questo ciclo avviene in pochi istanti ogni volta che si visita una pagina web. Pagine web statiche e dinamiche. Non tutte le pagine web sono create allo stesso modo. Una pagina statica consiste in un file HTML che il server invia così com’è. Tutti gli utenti visualizzano lo stesso contenuto. Una pagina dinamica , invece, viene generata dal server al momento della richiesta usando linguaggi come PHP, Python o Node.js. Il server può interrogare database, verificare l’identità dell’utente o personalizzare i contenuti. Tuttavia, ciò che arriva al browser è sempre HTML : i linguaggi lato server producono HTML come risultato finale. Cosa sono gli elementi HTMl. Un elemento HTML è l’unità base del contenuto. È composto da un tag di apertura, dal contenuto e da un tag di chiusura. I tag funzionano come etichette che indicano al browser che tipo di contenuto sta elaborando: un paragrafo, un titolo, un link, un’immagine. Senza queste etichette semantiche, il browser non saprebbe come strutturare

La struttura di base di un modulo. Un modulo HTML è definito dall’elemento , che funge da contenitore per tutti i campi di input. Il tag stabilisce dove e come i dati verranno inviati.

Attributi fondamentali del form

action Specifica la destinazione dei dati, solitamente l’URL o il nome di uno script lato server (ad esempio un file PHP) che elaborerà le informazioni inviate.  method Definisce il metodo di invio dei dati. Le due opzioni principali sono: o GET → invia i dati tramite l’URL o POST → invia i dati nel corpo della richiesta HTTP La scelta del metodo influisce direttamente su sicurezza, visibilità e funzionamento del modulo. Pulsanti di opzione (radio button): scelte esclusive. I pulsanti di opzione permettono di scegliere una sola opzione tra più alternative. Il loro comportamento è simile ai vecchi pulsanti delle autoradio: selezionandone uno, gli altri si disattivano automaticamente.

Regole fondamentali dei radio button

Stesso attributo name Tutti i pulsanti che appartengono allo stesso gruppo devono condividere lo stesso nome. Questo indica al browser che solo una scelta è consentita e a PHP quale variabile riceverà il valore.  ID univoco Ogni pulsante deve avere un ID distinto per essere correttamente associato alla sua etichetta.  Attributo value Specifica il valore che verrà inviato al server quando l’opzione è selezionata. Il concetto chiave è che il nome unisce il gruppo , mentre il valore identifica la scelta effettuata. GET vs POST: scegliere il metodo giusto Capire la differenza tra GET e POST è essenziale per creare moduli sicuri, efficienti e corretti.

Metodo GE

Caratteristiche principali:

 I dati sono visibili nell’URL  Gli URL possono essere salvati e condivisi  Lunghezza limitata dei dati  Le richieste possono essere memorizzate nella cache  È idempotente : richieste ripetute producono lo stesso risultato Quando usarlo:  Moduli di ricerca  Filtri e ordinamenti  Impaginazione  Qualsiasi operazione che recupera dati senza modificarli Idea chiave: “Sto chiedendo informazioni al server”.

Metodo POST

Caratteristiche principali:  I dati sono nascosti (non visibili nell’URL)  Più adatto a informazioni sensibili (con HTTPS)  Nessun limite pratico alla dimensione dei dati  Non viene memorizzato nella cache  Non è idempotente: ogni invio può produrre un effetto diverso Quando usarlo:  Login e registrazione  Invio di password  Pagamenti  Caricamento di file  Qualsiasi operazione che modifica i dati sul server Idea chiave: “Sto inviando dati da memorizzare o elaborare”. Introduzione al CSS – Come dare alle pagine web un aspetto professionale. Dopo aver imparato a strutturare i contenuti con l’HTML, è naturale chiedersi come rendere una pagina web più gradevole, leggibile e coinvolgente. Qui entra in gioco il CSS , il linguaggio che si occupa dell’aspetto visivo delle pagine web. L’HTML costruisce lo scheletro della pagina: titoli, paragrafi, immagini, link. Il CSS, invece, si occupa di tutto ciò che riguarda la presentazione : colori, font, spaziature, layout e posizionamento degli elementi. Senza CSS, tutti i siti apparirebbero uguali: testo nero su sfondo bianco, carattere standard, contenuti allineati a sinistra. Funzionali, ma poco coinvolgenti. Il CSS è ciò che trasforma un documento tecnico in un sito web curato e professionale , capace di comunicare un’identità visiva e migliorare l’esperienza dell’utente. Perché il CSS è importante Il CSS:

Il CSS non serve solo a “colorare” le pagine, ma anche a migliorare l’interazione con l’utente attraverso le pseudo-classi.

Pseudo-classi più utili

:hover → applica uno stile quando il mouse passa sopra un elemento  :focus → evidenzia l’elemento che riceve il focus da tastiera (fondamentale per l’accessibilità)  :active → stile applicato nel momento del clic  :visited → distingue i link già visitati  :first-child / :last-child → selezionano il primo o l’ultimo elemento di un gruppo Questi effetti rendono l’interfaccia più chiara, reattiva e intuitiva. Che cos’è un editor HTML (e CSS) Un editor HTML è un software progettato per scrivere e modificare codice web (HTML, CSS e spesso JavaScript). Rispetto a un semplice editor di testo, offre strumenti che rendono il lavoro più semplice, veloce e meno soggetto a errori.

Funzionalità principali

 evidenziazione della sintassi  individuazione degli errori  completamento automatico  maggiore produttività e chiarezza del codice Un buon editor aiuta a concentrarsi sull’apprendimento dei concetti, non sulla lotta con gli errori di battitura. Perché usare un editor HTML dedicato Utilizzare un editor dedicato:  riduce drasticamente gli errori  migliora la leggibilità del codice  offre anteprima in tempo reale  avvicina agli strumenti usati dai professionisti È particolarmente utile per i principianti, perché rende visibile il collegamento tra codice scritto e risultato grafico. Quando usare un editor HTML Un editor è indispensabile quando lavori su:  documenti HTML strutturati  progetti con CSS e layout complessi

 progetti multi-file (HTML + CSS + JavaScript)  sviluppo locale prima della pubblicazione  debug e ottimizzazione delle pagine Durante il corso, l’editor sarà lo strumento principale per esercitarsi in modo efficace. Editor HTML gratuiti più diffusiVisual Studio Code Potente, flessibile e molto usato dai professionisti. Supporta numerosi linguaggi ed estensioni.  Notepad++ Leggero e veloce, ideale per modifiche rapide. Solo per Windows.  Brackets Pensato specificamente per il web, con anteprima live integrata. Ottimo per imparare HTML e CSS. Perché Brackets in questo corso Brackets è ideale per chi è alle prime armi perché:  ha un’interfaccia semplice e intuitiva  è focalizzato su HTML e CSS  offre anteprima live immediata  è gratuito e multipiattaforma  ha una curva di apprendimento ridotta Permette di concentrarsi sui concetti, non sulla complessità degli strumenti. Installazione di Brackets

  1. Visita il sito ufficiale
  2. Scarica la versione per il tuo sistema operativo
  3. Segui l’installazione guidata
  4. Avvia il programma (nessuna registrazione richiesta) Primi passi con Brackets  Crea un nuovo file  Salvalo come index.html  Inizia a scrivere codice HTML  Attiva l’anteprima live con l’icona del fulmine  Osserva le modifiche in tempo reale nel browser Lavorare con CSS in Brackets  Crea un file style.css nella stessa cartella  Collegalo all’HTML con il tag  Scrivi le regole CSS nel foglio di stile

o Cicli o Funzioni  Integrazione con database o Connessione a MySQL o Archiviazione e recupero dati  Preparazione ad argomenti avanzati o Base per lo studio dei database o Sviluppo web full-stack Come funziona PHP: ciclo richiesta–risposta

  1. Invio del modulo o L’utente compila e invia un modulo HTML
  2. Trasmissione dei dati o Dati inviati al server tramite GET o POST
  3. Esecuzione PHP o L’interprete PHP elabora i dati o Esegue logica, calcoli, query
  4. Generazione HTML o PHP produce HTML dinamico
  5. Risposta al browser o Il browser visualizza solo HTML (mai il codice PHP) Contenuti statici vs dinamici

HTML – Pagine statiche

 Contenuto fisso  Modifiche manuali  Adatto a informazioni stabili  Poco flessibile

PHP – Pagine dinamiche

 Contenuto generato su richiesta  Basato su: o dati o tempo o contesto o input utente  Un solo script → molte pagine diverse  Aggiornamento automatico dei contenuti Architettura a tre livelli

  1. Livello di presentazione o Browser web

o HTML, CSS o Interazione utente

  1. Livello applicativo o Server web o Codice PHP o Logica di business o Comunicazione con il database
  2. Livello dati o Database (MySQL) o Archiviazione e recupero dati o Persistenza e integrità delle informazioni Collegare un modulo HTML a PHP  Il modulo HTML invia dati a uno script PHP  PHP elabora i dati e restituisce una risposta  Trasforma pagine statiche in applicazioni interattive

Architettura applicazione web (PHP + MySQL)

Flusso dei dati

  1. Client (browser) o Compilazione e invio modulo
  2. Server web (Apache) o Riceve la richiesta HTTP
  3. Interprete PHP o Accede a $_GET / $_POST o Elabora dati
  4. Database MySQL o Query SQL o Recupero o salvataggio dati
  5. Generazione HTML o PHP crea contenuto dinamico
  6. Risposta al client o HTML inviato al browser Incorporare PHP in HTML

Caratteristica chiave

 PHP può essere inserito direttamente nei file HTML

o Iniziano con lettera o _ o Possono contenere lettere, numeri, _ o Sensibili a maiuscole/minuscole ($Name ≠ $name) o Usare nomi descrittivi ($studentName) Output con echo Sintassi di base echo "Ciao, mondo!"; echo $name; echo "Ciao ". $name;

Concatenazione

 Operatore:.  Unisce stringhe e variabili

Interpolazione

 Funziona solo con virgolette doppie : echo "Benvenuto, $name!";

Output HTML

 Echo può generare intere strutture HTML dinamiche  Gestire correttamente virgolette singole/doppie negli attributi HTML Ottenere dati dai moduli: array superglobali

$_GET

 Riceve dati dall’URL  Dati visibili nella barra degli indirizzi  Dimensione limitata  Adatto a dati non sensibili, link condivisibili  Esempio: page.php?name=Maria&age=

$_POST

 Riceve dati nel corpo della richiesta HTTP  Dati non visibili nell’URL  Nessun limite pratico di dimensione  Adatto a dati sensibili (password, email)  Esempio: invio modulo login o contatto

Metodi GET e POST nei moduli Metodo GET  Dati inviati tramite stringa di query nell’URL  Vantaggi: o Facile da condividere e aggiungere ai preferiti  Limiti: o URL visibile → dati non sicuri o Lunghezza massima ~2048 caratteri  Uso: o Ricerca prodotti, filtri, pagine idempotenti  Esempio:

Metodo POST

 Dati inviati nel corpo della richiesta  Vantaggi: o URL pulito o Nessun limite pratico di dati o Più sicuro per dati sensibili  Uso: o Creazione/modifica risorse lato server o Login, registrazioni, commenti, caricamento file  Esempio:

Idea chiave

$_GET → dati visibili, idempotenti$_POST → dati nascosti, modificano lo stato  La scelta dipende da sicurezza, quantità dati e tipo di operazione Gestione degli errori e convalida in PHP Principi fondamentali  Non fidarsi mai dell’input dell’utente  Gli utenti possono: