Italia · Traguardi per lo Sviluppo delle Competenze
2a Liceo Informatica.
Il corso di Informatica per il secondo anno del Liceo Scientifico opzione Scienze Applicate mira a consolidare le basi dell'algoritmica e della programmazione strutturata. Gli studenti esploreranno inoltre i fondamenti delle reti di calcolatori, la rappresentazione digitale dell'informazione multimediale e le metodologie di sviluppo software.

01Reti di Calcolatori e Sicurezza
Introduzione ai concetti fondamentali delle reti informatiche, al funzionamento di Internet e alle basi della sicurezza digitale.
Introduzione ai concetti base delle reti di calcolatori, analizzando i mezzi trasmissivi e le principali topologie di rete. Gli studenti comprenderanno come i dispositivi comunicano tra loro a livello fisico e logico.
Studio dell'architettura a livelli delle reti informatiche. Analisi dei principali protocolli che permettono il funzionamento di Internet, come IP, TCP, HTTP e DNS.
Panoramica sulle principali minacce informatiche (malware, phishing) e sulle tecniche di difesa. Introduzione ai concetti base di crittografia simmetrica e asimmetrica.

02Rappresentazione Multimediale e Logica
Studio della codifica digitale di diverse tipologie di informazione e introduzione all'algebra booleana applicata ai circuiti.
Analisi dei processi di campionamento e quantizzazione per la digitalizzazione dei segnali analogici. Studio dei formati raster e vettoriali per le immagini.
Esplorazione degli algoritmi di compressione lossy e lossless. Valutazione del compromesso tra qualità dell'informazione e spazio di archiviazione.
Introduzione all'algebra booleana, alle tabelle di verità e agli operatori logici fondamentali (AND, OR, NOT). Progettazione di semplici circuiti logici combinatori.

03Strutture Dati e Algoritmi Complessi
Approfondimento delle strutture dati monodimensionali e bidimensionali e dei principali algoritmi operanti su di esse.
Studio delle strutture dati omogenee monodimensionali per la memorizzazione di sequenze di elementi. Applicazione degli array per la gestione di testi tramite stringhe.
Estensione del concetto di array a più dimensioni. Utilizzo delle matrici per rappresentare griglie, tabelle e immagini digitali all'interno del codice.
Analisi e implementazione dei classici algoritmi di ricerca (sequenziale e dicotomica) e di ordinamento (Bubble Sort, Selection Sort) su array.

04Programmazione Modulare
Transizione dalla programmazione monolitica a quella modulare attraverso l'uso di sottoprogrammi, funzioni e procedure.
Introduzione al concetto di scomposizione dei problemi (top-down). Creazione di funzioni e procedure per rendere il codice riutilizzabile e leggibile.
Studio delle modalità di comunicazione tra funzioni. Analisi del passaggio di parametri per valore e per riferimento, e comprensione della visibilità (scope) delle variabili locali e globali.
Concetti base della programmazione ricorsiva. Implementazione di semplici algoritmi matematici (es. fattoriale, Fibonacci) utilizzando funzioni che richiamano se stesse.

05Progettazione e Sviluppo Software
Applicazione pratica delle competenze acquisite per la realizzazione, il collaudo e la documentazione di un progetto informatico.
Fasi dello sviluppo di un'applicazione: dall'analisi dei requisiti alla progettazione logica. Utilizzo di diagrammi di flusso e pseudocodice per pianificare la soluzione.
Metodologie per l'individuazione e la correzione degli errori (sintattici, logici, di runtime). Creazione di casi di test per verificare la robustezza del programma.
Stesura della documentazione tecnica e del manuale utente. Preparazione di una presentazione efficace per illustrare il funzionamento e le scelte progettuali del software realizzato.