Programma Ministeriale
Il programma per la classe di concorso A041 fa riferimento alle Linee Guida per gli Istituti Tecnici (settore tecnologico) e alle Indicazioni Nazionali per i Licei Scientifici opzione Scienze Applicate. Di seguito i nuclei tematici fondamentali.
1. Fondamenti di Informatica
- Sistemi di numerazione: binario, ottale, esadecimale, conversioni.
- Codifica dell'informazione: ASCII, Unicode, immagini, audio, video.
- Architettura del calcolatore: CPU, memoria, bus, periferiche.
- Sistemi operativi: funzioni, gestione dei processi, memoria, file system.
- Reti di calcolatori: topologie, protocolli, modello OSI, TCP/IP.
2. Programmazione
- Algoritmi e flowchart: rappresentazione, strutture di controllo.
- Linguaggi di programmazione: paradigmi (imperativo, orientato agli oggetti, funzionale).
- Strutture dati: array, liste, pile, code, alberi, grafi.
- Programmazione orientata agli oggetti: classi, ereditarietà, polimorfismo, incapsulamento.
- Gestione delle eccezioni: errori, debugging, testing.
- Linguaggi e ambienti: Python, Java, C++, IDE, debugger.
3. Basi di Dati
- Modelli di dati: gerarchico, reticolare, relazionale, NoSQL.
- Progettazione di basi di dati: modellazione concettuale (ER), logica, fisica.
- SQL: DDL, DML, query semplici e complesse, join, subquery.
- Normalizzazione: forme normali, dipendenze funzionali.
- Transazioni e sicurezza: ACID, gestione degli accessi, backup.
4. Sviluppo Software
- Ciclo di vita del software: waterfall, agile, Scrum, DevOps.
- Analisi dei requisiti: raccolta, specifiche, validazione.
- Design patterns: pattern strutturali, creazionali, comportamentali.
- Testing: unit test, integration test, system test, TDD.
- Versionamento: Git, branching, merge, CI/CD.
5. Reti e Sicurezza Informatica
- Architetture di rete: LAN, WAN, MAN, VLAN, VPN.
- Protocolli di rete: HTTP, FTP, SMTP, DNS, DHCP.
- Cybersecurity: crittografia, firewall, IDS/IPS, malware, social engineering.
- Normative sulla privacy: GDPR, protezione dei dati.
- Cloud computing: IaaS, PaaS, SaaS, AWS, Azure, Google Cloud.
6. Intelligenza Artificiale e Machine Learning
- Fondamenti di IA: storia, approcci, agenti intelligenti.
- Machine Learning: apprendimento supervisionato, non supervisionato, rinforzato.
- Reti neurali: percettroni, reti profonde, deep learning.
- NLP e Computer Vision: elaborazione del linguaggio naturale, visione artificiale.
- Etica dell'IA: bias, trasparenza, responsabilità.
Riferimenti normativi: Linee Guida Istituti Tecnici settore tecnologico (D.M. 4/2012), D.M. 769/2018 (TAB4), Indicazioni Nazionali per i Licei Scientifici.
Didattica con le TIC
L'integrazione delle Tecnologie dell'Informazione e della Comunicazione (TIC) nell'insegnamento delle discipline informatiche è intrinseca e fondamentale per sviluppare competenze digitali, computazionali e di problem solving, in linea con le richieste del mondo del lavoro e della ricerca.
Obiettivi dell'integrazione TIC
- Pensiero computazionale: sviluppare capacità di astrazione, decomposizione, riconoscimento di pattern.
- Programmazione: imparare a programmare in diversi linguaggi e ambienti.
- Sviluppo software: utilizzare strumenti professionali per lo sviluppo collaborativo.
- Analisi dei dati: utilizzare strumenti per l'analisi e la visualizzazione di dati.
- Cybersecurity: comprendere e applicare tecniche di sicurezza informatica.
Strumenti e risorse
Python
Linguaggio di programmazione versatile per sviluppo web, data science, machine learning e automazione.
Coding
Java / C++
Linguaggi per la programmazione orientata agli oggetti, sviluppo enterprise e applicazioni ad alte prestazioni.
OOP
SQL / NoSQL
Linguaggi e sistemi per la gestione di basi di dati relazionali e non relazionali.
Database
Git / GitHub
Sistemi di versionamento e piattaforme collaborative per lo sviluppo software.
Versionamento
Cloud Platforms
AWS, Azure, Google Cloud per infrastrutture, deployment e servizi avanzati.
Cloud
AI / ML Frameworks
TensorFlow, PyTorch, scikit-learn per l'intelligenza artificiale e il machine learning.
AI
Metodologie didattiche
Learning by Coding
Gli studenti apprendono i concetti informatici attraverso la programmazione pratica, implementando progetti e risolvendo problemi.
Project Based Learning
Sviluppo di progetti complessi (es. creazione di un'applicazione web, analisi di dati, sistema di gestione) con l'ausilio di strumenti professionali.
Agile e Scrum
Utilizzo di metodologie agili per lo sviluppo software in team, con sprint, planning, review e retrospettive.
Pair Programming
Due studenti lavorano insieme su un compito di programmazione, alternando i ruoli di "driver" e "navigator".
Esempi di attività con le TIC
- Sviluppo di un'applicazione web: utilizzare Python (Flask/Django) e HTML/CSS/JavaScript per creare un'applicazione web completa.
- Analisi di dati: importare un dataset e applicare tecniche di machine learning con Python (pandas, scikit-learn).
- Progettazione di una base di dati: progettare e implementare un database relazionale con MySQL/PostgreSQL.
- Cybersecurity: simulare attacchi informatici in ambiente controllato e implementare misure di sicurezza.
- Creazione di un bot: sviluppare un chatbot o un bot per Telegram/Discord utilizzando Python e API.
Competenze digitali del docente
- Padronanza dei linguaggi di programmazione: conoscenza di almeno due linguaggi (es. Python, Java).
- Conoscenza degli strumenti di sviluppo: IDE, versionamento, CI/CD, database.
- Capacità di progettare attività integrate: integrare TIC nella didattica in modo coerente e efficace.
- Valutazione autentica: utilizzare rubriche digitali e portfolio elettronici per valutare competenze computazionali.
- Aggiornamento continuo: seguire l'evoluzione delle tecnologie e delle metodologie didattiche.
L'uso delle TIC nelle Scienze Informatiche prepara gli studenti a professioni innovative nel mondo della tecnologia, della finanza, della sanità e della ricerca, combinando competenze tecniche, digitali e trasversali.