Italia · Traguardi per lo Sviluppo delle Competenze
3a Liceo Informatica.
Il corso di Informatica per il terzo anno del Liceo Scientifico opzione Scienze Applicate mira a consolidare le competenze algoritmiche e introdurre la programmazione orientata agli oggetti. Gli studenti esploreranno strutture dati complesse, l'analisi della complessità computazionale e i fondamenti della progettazione di basi di dati.

01Paradigmi di Programmazione e OOP
Introduzione al paradigma orientato agli oggetti, superando la programmazione procedurale. Studio di classi, incapsulamento, ereditarietà e polimorfismo.
Analisi delle differenze tra programmazione procedurale e OOP. Comprensione dei concetti di stato, comportamento e identità di un oggetto.
Definizione di classi come modelli per la creazione di oggetti. Implementazione di costruttori, attributi e metodi.
Studio dei meccanismi di derivazione delle classi e riutilizzo del codice. Applicazione del polimorfismo per creare sistemi flessibili.

02Strutture Dati Dinamiche
Studio delle strutture dati che variano in dimensione durante l'esecuzione del programma. Implementazione e utilizzo di liste, pile, code e alberi.
Implementazione di liste semplici e doppie tramite allocazione dinamica della memoria. Operazioni di inserimento, cancellazione e scorrimento.
Analisi delle strutture LIFO (Last In, First Out) e FIFO (First In, First Out). Applicazioni pratiche nella gestione dei processi e nella valutazione di espressioni.
Introduzione alle strutture dati non lineari. Studio degli alberi binari di ricerca e concetti base sui grafi per la rappresentazione di reti.

03Algoritmi Complessi e Complessità
Introduzione all'analisi della complessità degli algoritmi. Studio di algoritmi di ordinamento e ricerca avanzati per ottimizzare le prestazioni.
Valutazione dell'efficienza degli algoritmi in termini di tempo e spazio. Introduzione alla notazione asintotica (O-grande).
Studio e implementazione di algoritmi di ordinamento efficienti come Merge Sort e Quick Sort. Analisi del paradigma divide et impera.
Approfondimento della ricerca binaria e introduzione alle tabelle hash. Risoluzione delle collisioni e funzioni di dispersione.

04Introduzione alle Basi di Dati
Fondamenti della progettazione di database relazionali. Dal modello concettuale alla manipolazione dei dati tramite linguaggio SQL.
Progettazione concettuale di una base di dati. Identificazione di entità, attributi, relazioni e cardinalità a partire da specifiche testuali.
Traduzione del modello E/R in tabelle relazionali. Regole di derivazione, chiavi esterne e concetti base di normalizzazione.
Utilizzo del Data Definition Language (DDL) e Data Manipulation Language (DML). Creazione di tabelle e interrogazioni semplici.

05Ingegneria del Software e UML
Introduzione alle metodologie di sviluppo del software. Utilizzo del linguaggio UML per la modellazione e progettazione di sistemi informatici.
Analisi delle fasi di sviluppo di un prodotto software. Confronto tra modelli tradizionali (a cascata) e metodologie agili.
Introduzione all'Unified Modeling Language. Creazione di diagrammi dei casi d'uso e diagrammi delle classi per documentare il progetto.
Principi base per la creazione di interfacce utente efficaci e accessibili. Differenza tra User Interface (UI) e User Experience (UX).