Argomenti scolastici
Per chi fosse curioso di sapere che cosa si insegna in un istituto tecnico ad indirizzo informatico, di seguito riporto alcuni gli argomenti da me trattati nelle varie discipline.
Tecnologie informatiche
(Classe 1^)
Sistemi di numerazione
-
Numeri e sistemi di numerazione posizionali
-
Sistemi di numerazione decimale, binario, ottale, esadecimale
-
Conversioni di base
-
Rappresentazione di numeri negativi in complemento a 2
-
Operazioni con i numeri binari: addizione, moltiplicazione, sottrazione
Struttura del calcolatore elettronico
-
Classificazione dei calcolatori
-
Struttura di un calcolatore, componenti hardware, periferiche
Software
Sistema Operativo
-
Compiti
-
Livelli
-
Nucleo e gestione del multitasking
-
Gestore della memoria RAM e paginazione
-
Gestore delle periferiche
-
File system e organizzazione fisica e logica delle memorie di massa
-
Interprete dei comandi CUI e GUI
-
Avvio del computer
-
Sistemi operativi disponibili
-
Elementi dell'interfaccia grafica
-
Identificazione degli utenti e permessi
Sicurezza sul posto di lavoro
Sicurezza dei dati
Diritto d'autore
Privacy
Sicurezza informatica
Reti di computer
-
Reti di computer
-
Utilizzo della rete telefonica per le comunicazioni
-
Trasmissione analogica e digitale
-
Mezzi trasmissivi e cablaggio
-
Apparecchiature
-
Rete internet
Programmazione
Automazione d'ufficio
-
Videoscrittura
-
Presentazioni
-
Fogli di calcolo
Siti web
Scienze e tecnologie applicate
(Classe 2^)
Logica
-
Logica e ragionamento
-
Proposizioni semplici e composte
-
Forme proposizionali e connettivi logici
-
Algebra di Boole ed espressioni logiche
-
Logica dei predicati
-
Quantificatori esistenziali
I sistemi
Automi a stati finiti
-
Definizione e caratteristiche
-
Automa come sistema dinamico, discreto, deterministico
-
Descrizione analitica di un automa
-
Funzioni di uscita e transizione
-
Grafi di transizione
I segnali digitali
Architettura del computer
Trasmissione delle informazioni
Networking
-
Reti di computer
-
Dispositivi di rete
-
Indirizzi IPv4 e IPv6
-
Indirizzi statici e dinamici
-
Le porte
-
I protocolli TCP e UDP
-
I socket
-
I servizi di rete
-
Il DNS
-
I comandi di rete: ifconfig, nslookup, ping, traceroute, mrt, ssh, scp, netcat
-
Realizzare un programma console utilizzabile da remoto con netcat come primo esempio di client-server
-
I problemi di sicurezza e gli attacchi DDOS
Cenni di intelligenza artificiale
-
Le reti neurali e il riconoscimento dei caratteri nelle immagini
-
I sistemi esperti e l'uso della conoscenza per risolvere un labirinto
-
Gli algoritmi genetici per ottimizzare le prestazioni di un bot di gioco
I diagrammi di flusso
-
Elementi grafici dei flow chart
-
Comprendere un diagramma di flusso
-
Sviluppare un diagramma di flusso per la soluzione di un problema
Usare un linguaggio di programmazione C/C++/Pascal
-
L'ambiente di sviluppo
-
Tipi di dato fondamentali
-
Variabili e costanti
-
Uso delle funzioni di I/O
-
Operatori
-
Costrutto condizionale if
-
Cicli for, while, do while e istruzioni break e continue
-
Gli array monodimensionali e bidimensionali
-
I numeri pseudo-casuali
-
Le stringhe
-
Le funzioni e la ricorsione
-
Il cast
-
I file
-
Realizzazione di automi
-
Stampa di caratteri sullo schermo del terminale usando le sequenze di escape ANSI e disegno ASCII
-
Generazione e manipolazione di immagini da programma
-
Risolvere problemi con programmi
Tecnologia e progettazione di sistemi informatici e di telecomunicazione
(Classe 3^)
La comunicazione
Digitale e binario
-
Analogico e digitale
-
Campionamento e digitalizzazione
-
Codifica binaria
-
Codifica dei caratteri: ASCII, EBCDIC, UNICODE (UTF-8, UTF-16, UTF-32)
Immagini suoni filmati
-
Digitalizzazione
-
Immagini raster, formati di codifica, compressione delle immagini
-
Immagini vettoriali
-
Filmati digitali e codifiche
-
Suoni digitali e codifiche
-
Compressione con la codifica di Huffman
Codici
-
Codici pesati e non pesati, varie codifiche
-
Codici a rilevazione e correzione d'errore, checksum e codice Hamming
Codifica binaria dei numeri
Gestione del processore
-
Processi e multitasking
-
Interazione tra processi
-
Stato di un processo
-
Descrittore di un processo
-
Schedulazione dei task e criteri di scheduling
-
Algoritmi di scheduling: FCFS, SJF, SRTF, RR, MLFQ
-
Scheduling in Linux e Windows
-
Sincronizzazione tra processi e possibili problemi
Gestione della RAM
-
Caricamento di un programma e rilocazione statica e dinamica
-
Partizionamento a dimensione fissa e variabile
-
Memoria virtuale
-
Paginazione
-
Segmentazione
-
Segmentazione con paginazione
Gestione della memoria di massa
Sviluppo del software
(Classe 4^)
Multitasking
Risorse e condivisione
-
Risorse e classi di risorse
-
Gestione delle risorse
-
Classificazione per richiesta, assegnazione, utilizzo
-
Grafi di Holt e riduzione
Thread
-
Processi e thread
-
Stati di un thread
-
Thread Control Block
-
Thread Local Storage
-
Codice thread-safe
-
Pregi e difetti dei thread rispetto ai processi
-
Implementazione dei thread nei principali sistemi operativi
-
Thread user-level e kernel-level
-
Standard Posix per la gestione dei thread
-
Utilizzi dei thread in foreground e background
Elaborazione concorrente
Descrizione della concorrenza
-
Costrutto fork-join
-
Costrutto cobegin-coend
-
Semplificazione del grafo delle precedenze
-
Realizzazione dei costrutti fork-join e cobegin-coend usando le funzioni disponibili per processi e thread
-
Passaggio di parametri tramite struttura dati o variabili globali
Comunicazione tra processi
-
Modelli di comunicazione tra processi a risorse condivise, allocazione statica e dinamica delle risorse, problematiche
-
Modelli di comunicazione tra processi a scambio di messaggi, comunicazione sincrona e asincrona, simmetrica e asimmetrica
-
Communicating Sequential Processes
-
Distributed Processes
-
Modello client-server
Sincronizzazione tra processi
-
Errori dipendenti dal tempo nei programmi concorrenti
-
Overlapping e interleaving
-
Definizioni e proprietà, domain e range di istruzioni e procedure
-
Condizioni di Bernstein
-
Sezioni critiche e mutua esclusione
-
Starvation, deadlock, livelock
-
Safety, liveness, fairness
Semafori
-
Semafori binari, primitive lock e unlock, mutua esclusione, attesa attiva, mutex.
-
Semafori generalizzati di Dijkstra, primitive P e V.
-
Utilizzo dei semafori: vincoli di precedenza, rendez-vous, produttori consumatori, lettori scrittori.
Deadlock
-
Condizioni di Coffman
-
Individuare lo stallo
-
Eliminare lo stallo: terminare i processi, prerilasciare le risorse, checkpoint rollback.
-
Evitare lo stallo: sequenza sicura, algoritmo del banchiere.
-
Prevenire lo stallo agendo sulle condizioni di Coffman
-
Ignorare lo stallo
Monitor
-
Caratteristiche
-
Variabili condizione, wait e signal.
-
Semafori binari con i monitor
-
Problema dei produttori consumatori con i monitor.
Scambio di messaggi tra processi
-
Modello ad ambiente locale
-
Primitive per la comunicazione asimmetrica molti a uno e molti a molti
-
Segnali asincroni in Unix/Linux
Specifica dei requisiti
-
Studio di fattibilità
-
Specifica dei requisiti e relative fasi: analisi, definizione delle funzionalità, convalida delle specifiche
-
Classificazione dei requisiti: di utente e di sistema, funzionali non funzionali e di dominio
-
Importanza della specifica dei requisiti
-
Verifica dei requisiti
Raccolta dei requisiti
-
Tipi di raccolta
-
Attori coinvolti
-
Fase di esplorazione
-
Tecniche di esplorazione: interviste, questionari, focus group, osservazioni sul campo, suggerimenti spontanei, analisi della concorrenza, casi d'uso
-
Documento di specifica dei requisiti
-
Problemi nella raccolta dei requisiti
-
Validazione dei requisiti
-
Cenni su attori, casi d'uso, scenari
La relazione tecnica
-
Struttura di una relazione tecnica
-
Indicazioni per la stesura
-
Analisi di esempi
-
Realizzazione per un progetto di laboratorio
(Classe 5^)
Sistemi distribuiti
-
Evoluzione dei sistemi informatici
-
Sistemi centralizzati e sistemi distribuiti
-
Vantaggi e svantaggi dei sistemi distribuiti
-
Classificazione di Flynn delle architetture hardware ed esempi: SISD, SIMD, MISD, MIMD.
-
MIMD multiprocessori e multicomputer cluster e grid
-
Sistemi pervasivi distribuiti
-
Architetture distribuite: a terminali remoti, client-server, web-centric, cooperativa
-
Sistemi operativi di rete e distribuiti
-
Il middleware
Modello client-server
-
Caratteristiche delle applicazioni enterprise
-
Operazioni client-server
-
Organizzazione a livelli/tier
-
Architetture a 1, 2, 3 tier
-
Thin client e thick client
Applicazioni distribuite
-
Livello applicativo
-
Socket
-
Architetture: client-server, peer to peer, peer to peer centralizzata, ibrida
-
Livello di trasporto e protocolli UDP e TCP
-
Applicativi client e server di rete con netcat
XML
JSON
-
Sintassi
-
Elementi
-
Esempi applicativi
-
Utilizzo in PHP
Reti mobili
-
Caratteristiche
-
Classificazioni delle reti mobili in base alla mobilità e in base alla tecnologia
-
Caratteristiche del software per dispositivi mobili
-
Sistemi operativi per i dispositivi mobili: iOS e Android
Android
-
Organizzazione del sistema: kernel, HAL, Android Runtime, librerie native, Java API framework, system apps, app
-
Struttura di una app: concetto di event driven, tipologie di app (activity, service, broadcast receiver, content provider), lifecycle ed eventi.
-
File apk
-
Android Studio: struttura del progetto, componenti, intent, API per i sensori e sviluppo di semplici app
Socket
-
Motivazioni
-
Protocolli
-
Gestione dei socket e API
-
Utilizzo dei socket TCP e UDP in C e Java
-
Famiglie e tipologie di socket: stream socket, datagram socket.
-
Trasmissione multicast
Servlet
-
Applicazioni di rete
-
Generalità sui web server
-
CGI
-
Servlet: struttura, realizzazione, deployment, esecuzione
-
Confronto tra tecnologie
-
Sessioni e cookies
JDBC
-
Motivazioni
-
Tipologie di driver: Tipo 1 Bridge JDBC-ODBC, Tipo 2 API native, Tipo 3 Pure Java driver for Database Middleware, Tipo 4 Direct to Database pure Java driver
-
Modalità di utilizzo: librerie, driver manager, connection, statement, resultset
JSP
PHP
API di Google per le mappe
Sistemi e Reti
(Classe 3^)
I sistemi
-
Sistema
-
Modello
-
Parametri e variabili, stato interno, ingresso, uscita, funzione di transizione e di trasformazione
-
Automa
-
Diagramma degli stati
Le architetture dei sistemi di elaborazione
-
Modello di Von Neumann e di Harvard
-
Componenti di un sistema di elaborazione
-
Tipi di memorie elettroniche
-
Indirizzamento della memoria
-
Evoluzione delle tecniche di elaborazione e di gestione della memoria
-
Tipi di BUS che collegano la CPU agli altri dispositivi
Il linguaggio Assembly e l’interfacciamento
-
Struttura del processore 8086
-
Modello di programmazione x86 a 16 e 32 bit
-
Struttura dello stack
-
Istruzioni principali dell’ISA x86
-
Struttura di un programma Assembly
-
Metodi di indirizzamento
-
Interfacciamento dell’elaboratore
-
Sensori e attuatori
Comunicazione e Networking
-
Elementi fondamentali di una rete
-
Tipologie di rete
-
Concetto di protocollo
-
Tecniche di multiplicazione
-
Tecniche di commutazione
-
Concetto di architettura stratificata
Dispositivi per la realizzazione di reti locali
-
Modalità di trasmissione di segnali elettrici via cavo
-
Strumenti e tecniche dei test sui cavi
-
Modalità di trasmissione di segnali ottici in fibra
-
Strumenti e tecniche dei test sulle fibre
-
Modalità di trasmissione dei segnali wireless
-
Problematiche connesse alla sicurezza nelle comunicazioni wireless
-
Normativa americana EIA/TIA 568
-
Normativa europea ISO/IEC 11801
Le reti ethernet e il livello di collegamento
-
Le reti Ethernet e il livello di collegamento
-
Formato dell’indirizzo MAC
-
Formato di una trama
-
Modello OSI ed Ethernet
-
Caratteristiche del CSMA/CD
-
Timing, interframe spacing e tempo di backoff
-
Ethernet ad alta velocità: Fast e Giga Ethernet
-
Livello MAC e formato del frame Ethernet
-
Repeater, bridge, hub e switch
-
Dominio di collisione
(Classe 4^)
Il protocollo IP
-
ISO/OSI e TCP/IP
-
Struttura degli indirizzi IP
-
Classi degli indirizzi IP
-
Indirizzamento pubblico e privato
-
Assegnazione statica e dinamica degli IP
-
Messaggistica ICMP
-
Protocollo ARP
-
DHCP
I Router come dispositivi hardware
-
Architettura di un router
-
Componenti hardware di un router
-
Funzionalità di un router
-
Caratteristiche di un S.O. per router
-
Procedura di boot
-
Gerarchia dei comandi IOS
Il routing: protocolli e algoritmi
-
Problematiche connesse all’instradamento
-
Instradamento diretto e indiretto
-
Routing statico e dinamico
-
Tipologie degli algoritmi statici
-
AS e routing gerarchico
-
Protocolli IGP, RIP e OSPF
-
Un protocollo EGP: il BGP
Lo strato di trasporto
(Classe 5^)
Protocolli livello applicazione
-
Panoramica di principali protocolli applicativi: http, dns, ftp, Voip, smtp, pop3, telnet, ssh
VLAN
-
Motivazioni, vantaggi e svantaggi.
-
Frame ethernet e formato 802.1Q
-
VLAN tagged e untagged, tipologie di porte, trunk.
-
Inter VLAN routing tradizionale e router-on-a-stick
Crittografia
-
Motivazioni
-
Aspetti della sicurezza (Segretezza, Autenticazione, Integrità)
-
Tecniche di cifratura: trasposizione, sostituzione monoalfabetica e polialfabetica, crittografia simmetrica e asimmetrica.
-
Cenni di crittoanalisi.
-
Principio di Kerckhoffs.
-
Cifrario di Vernam.
-
Chiavi monouso.
-
Strumenti matematici per la crittografia moderna: operatore XOR, aritmetica modulare e numeri primi.
-
Cifratura a blocchi e a flusso
-
Confronto tra algoritmi simmetrici e asimmetrici
Crittografia simmetrica
-
Caratteristiche, vantaggi e svantaggi
-
Caratteristiche principali di alcuni algoritmi di crittografia simmetrica: DES, 3DES, IDEA e AES. Crittografia asimmetrica, introduzione. Autenticità e integrità con la firma digitale.
Crittografia asimmetrica
-
Caratteristiche, chiave pubblica e privata, vantaggi e svantaggi, applicazioni
-
Scambio di chiavi Diffie-Hellman: algoritmo e logaritmo discreto
-
Caratteristiche e descrizione del funzionamento dell'algoritmo di crittografia asimmetrica RSA. Assunzione RSA.
-
Crittografia ibrida.
Firma digitale
-
Dispositivi di firma: smart card e usb token.
-
Formato p7m
-
Carta Nazionale dei Servizi
-
Funzioni di hash per il message digest
-
Caratteristiche principali di MD5 e SHA
-
Certificati e Public Key Infrastructure
-
Applicazione di MD5 nella gestione delle password
Sicurezza nei sistemi informativi
-
Tipologie di minacce
-
Concetti relativi alla sicurezza informatica
-
La valutazione dei rischi: asset, minacce, analisi dei rischi
-
Principali attacchi: obiettivi, tipologie di attacco passivo e attivo
-
Principi di sicurezza: prevenzione, rilevazione, investigazione.
Sicurezza della posta elettronica
Sicurezza delle connessioni
Difesa perimetrale con i firewall
-
Motivazioni
-
Principi di progettazione dei firewall.
-
Classificazione dei firewall, caratteristiche, vantaggi e svantaggi delle varie soluzioni: personal e network firewall, NAT, packet filter router, stateful inspection firewall, application proxy
-
Scrittura delle regole ACL
-
La DMZ.
Normativa sulla sicurezza e privacy
Wireless
-
Caratteristiche del servizio, vantaggi e problemi.
-
Reti wireless e reti cellulari. Funzionalità aggiuntive per utenti mobili.
-
Classificazione delle reti wireless in base all'area di copertura (BAN, PAN, WLAN, WWAN) e principali caratteristiche e applicazioni
-
Protocolli della famiglia 802.11 e principali caratteristiche.
-
Altre tecnologie wireless.
Sicurezza nelle reti wireless
-
Problematiche di sicurezza nelle reti wireless.
-
Protocollo WEP: caratteristiche, principio di funzionamento, fragilità
-
Protocollo WPA: caratteristiche, TKIP e MIC, fragilità
-
Protocollo WPA2: caratteristiche, protocollo 802.1x, server RADIUS, EAP.
Trasmissione wireless
-
Tecnologie trasmissive (radio, laser, infrarosso).
-
Caratteristiche della trasmissione wireless radio.
-
Problemi nella trasmissione: problemi dovuti alla trasmissione di onde (attenuazione, interferenza, altri fenomeni), problemi dovuti al posizionamento degli host (hand off, stazione nascosta, stazione esposta), problemi dovuti al consumo energetico
Architettura delle reti wireless
-
Componenti di una rete wireless
-
Classificazione in base alla presenza di infrastruttura e numero di hop
-
Reti IBSS: tipologie di coordinamento, routing e inserimento di un host
-
Reti ESS: struttura, transizione tra BSS, scanning attivo e passivo, access point root e repeater, servizi del Distribution System e delle Station.
Architetture dei sistemi distribuiti
-
Organizzazione a livelli (tier) logici e fisici
-
Architetture 1-tier, 2-tier, 3-tier
-
Server farm: cloning RACS shared nothing e shared disk, partitioning, RAPS
-
Modello di sistema distribuito Windows: workgroup, domain.
Architetture dei sistemi web
-
Elementi costituenti
-
Architetture: 2 tier con 1 server, 3 tier con 2 server, 3 tier con server farm, vantaggi e svantaggi delle varie soluzioni.
Amministrazione di rete
-
Autenticazione degli utenti.
-
Permessi di accesso alle risorse.
-
Servizi di directory.
-
LDAP.
-
DNS.
-
Active Directory: domini, alberi di domini, foreste di domini, relazioni di fiducia, gruppi, procedura di logon, criteri di gruppo, NTFS
Troubleshooting
Sicurezza di rete
-
Minacce
-
Livelli di sicurezza
-
Sicurezza nei protocolli e possibili attacchi
-
Sistemi di controllo e monitoraggio
-
Affidabilità e sicurezza delle strutture
-
Ridondanza di server e servizi
-
Piano e tecniche di disaster recovery
Informatica
(Classe 3^)
Programmazione imperativa
-
Concetto e caratteristiche di un algoritmo
-
Metodologie di sviluppo top-down e bottom-up
-
Rappresentazione degli algoritmi
-
Esecuzione logica di un programma
-
Utilizzo di un ambiente di sviluppo per la scrittura dei programmi e il debugging
-
Dati, istruzioni, operatori
-
Costrutti di base: sequenza, selezione, iterazione; utilizzo di goto, break, continue
-
Sottoprogrammi
-
Procedure e funzioni
-
Variabili locali e globali, scope
-
Parametri formali e attuali
-
Passaggio di parametri per valore e per riferimento
-
Ricorsione: codifica e ottimizzazione
-
Requisiti di leggibilità del codice
-
Misurazione delle prestazioni
Codifica dei programmi in linguaggio Java
-
Caratteristiche di funzionamento
-
Strumenti per lo sviluppo di applicazioni
-
Convenzioni principali per la stesura del codice
-
Struttura dei programmi
-
Tipi di dati predefiniti e variabili
-
Istruzioni di input e output; classe Scanner
-
Lettura e scrittura su file
-
Costrutti condizionali e cicli
-
Oggetti e classi
Dati strutturati e algoritmi notevoli
-
Le strutture dati
Array
Concetti
Dichiarazione in vari linguaggi e manipolazione
Array associativi
Lettura e scrittura
Ricerca totale e parziale
Array paralleli per gestire informazioni composte
Array multidimensionali
Passaggio di array come parametri
Array di strutture
Array di oggetti
Ricerca
Ordinamento
Ordinamento per inserzione e per selezione
Ordinamento bubble sort
Algoritmi ricorsivi quick sort e merge sort
Confronto fra algoritmi di ordinamento
Teoria della computabilità
-
Linguaggi naturali e formali
-
Linguaggi di basso, medio, alto livello
-
Paradigmi di programmazione
-
Compilatori: fasi di analisi e sintesi
-
Interpreti
-
Soluzioni miste
-
Vantaggi e svantaggi delle varie soluzioni
-
Descrizione di un linguaggio formale: alfabeto, vocabolario, sintassi
-
Grammatiche generative e descrizione tramite EBNF
-
Classificazione delle grammatiche
-
Cenni sugli automi riconoscitori
-
Calcolo di espressioni aritmetiche e generazione automatica di codice assembly
Introduzione alla programmazione a oggetti
-
Evoluzione storica della programmazione, problematiche, crisi del software
-
L'ingegneria del software
-
Metodologie di sviluppo
-
Astrazione
-
Record e strutture
-
Classi e oggetti
-
Proprietà e metodi
-
Costruttori e distruttori
-
Incapsulamento e visibilità
-
Overloading
-
Overriding
-
Ereditarietà: sottoclassi e interfacce
-
Cenni sul polimorfismo
-
Cenni di UML
-
Serializzazione
-
Progettazione e realizzazione di varie classi in Java
-
Liste, code e pile
-
Oggetti in Javascript
Interfaccia utente
(Classe 4^)
Programmazione ad oggetti
-
Concetto di classe e oggetto
-
Definizione di una classe
-
Istanziazione di oggetti
-
Metodi costruttori e distruttori
-
Overloading
-
Overriding
-
Final
-
Metodi statici
-
Comunicazione e interazione tra oggetti
-
Information hiding ed incapsulamento
-
Attributi e metodi di classe
-
Aggregazioni tra oggetti
-
Programmazione OOP con Java
Ereditarietà e polimorfismo
-
Ereditarietà
-
Specializzazione, tipi di ereditarietà e classi astratte
-
Generalizzazione
-
Interfacce
-
Polimorfismo per i metodi e per i dati
-
Binding statico e dinamico
-
InstanceOf
-
Invocazione dei metodi delle superclassi
-
Distruttori e garbage collection
-
Gestione delle eccezioni
Progettazione ad oggetti
-
Analisi ad oggetti e diagrammi UML
-
Entità, relazioni, associazioni
-
Generalizzazione, dipendenza, realizzazione
-
Diagramma delle classi
-
Diagramma dei casi d'uso
-
Scenari
-
Design Pattern: singleton, adapter, strategy, decorator, observer, flyweight, factory, MVC
-
Qualità del software
-
Relazione tecnica di un progetto
GUI e programmazione ad eventi
-
Le interfacce utente CLI e GUI
-
Oggetti componenti e oggetti contenitori
-
Creazione e utilizzo dei contenitori standard
-
Pulsanti e campi di testo
-
Gestione degli eventi
-
Listener e metodi
-
Eventi del mouse
-
Eventi legati agli oggetti GUI
-
GUI in Java con Netbeans
-
Introduzione a C# con MonoDevelop
Strutture dati lineari e non lineari
-
Allocazione statica e dinamica della memoria
-
Aree di memoria
-
I puntatori
-
Allocazione e deallocazione tramite puntatori
-
Aliasing, garbage, side effect e dangling reference
-
Tipi di puntatori
-
Tipi di dato semplici e strutturati
-
Strutture statiche e dinamiche
-
Strutture concrete e astratte
-
Tipi di dato astratti
-
Limiti dell'allocazione statica
-
Implementazione delle strutture dati astratte
-
Liste concatenate: definizione ed implementazione
-
Code e Pile: definizione ed implementazione
-
Alberi: definizione, terminologia, proprietà
-
Alberi generici e alberi binari
-
Allocazione in memoria di un albero
-
Visita di un albero: visita in profondità ed ampiezza
-
Alberi binari di ricerca
-
AVL: inserimento e cancellazione, ribilanciamento
-
Cenni sui B-Tree
-
I grafi: definizioni, terminologia, rappresentazione
-
Grafi orientati e non orientati, pesati e non pesati
-
Allocazione dei grafi tramite liste di adiacenza, matrice di adiacenza e di incidenza
-
Le operazioni sui grafi
-
Algoritmi di Dijkstra e Kruskal
-
Considerazioni sull'ottimizzazione delle implementazioni
La memorizzazione su memorie di massa
(Classe 5^)
Introduzione alle basi di dati
-
Sistema Informativo e Sistema Informatico
-
Dati e informazioni
-
Il modello dei dati
-
il DBMS
-
Livelli di astrazione di un DBMS
-
La progettazione di una base di dati
Il modello relazionale
-
Il modello relazionale
-
Concetto matematico e informatico di relazione
-
Schemi e istanze
-
Vincoli di tupla, intra-relazionali e inter-relazionali
-
Integrità referenziale
-
Elementi di Algebra relazionale: simboli e terminologia
-
Operazioni insiemistiche: unione, differenza, intersezione e ridenominazione
-
Operazioni specifiche: proiezione, restrizione (selezione) e join
-
Tipi di join
-
Interrogazioni in Algebra relazionale
-
Viste
SQL
-
Generalità su SQL e sue caratteristiche
-
Identificatori e tipi di dato
-
Comandi DDL di SQL
-
Vincoli di riga e di integrità
-
Comandi DML di SQL
-
Interrogazioni in SQL: il comando SELECT
-
Operazioni relazionali in SQL
-
Interrogazioni insiemistiche
-
Le aggregazioni in SQL
-
Query nidificate
-
I predicati ANY, ALL, IN ed EXIST
-
Le viste in SQL
-
Le Stored Procedure
-
Costrutti IF LOOP WHILE
-
I trigger
-
Le transazioni, la sicurezza e la gestione dei privilegi
-
Cursori
-
Query parametriche
Progettazione concettuale: il modello ER e UML
-
Progettazione concettuale e modellazione dei dati
-
Documentazione
-
Raccolta e analisi dei requisiti
-
Il modello ER
-
Entità e associazioni
-
Attributi delle entità e delle associazioni
-
Tipi e proprietà delle associazioni
-
Associazioni uno a molti e molti a molti
-
Vincoli di integrità
-
Collezioni di entità e gerarchie (generalizzazioni)
-
Qualità di uno schema concettuale
Progettazione logica
-
Analisi delle prestazioni
-
Ristrutturazione di uno schema ER
-
Analisi delle ridondanze
-
Eliminazione delle generalizzazioni
-
Partizionamento/accorpamento di entità e associazioni
-
Individuazione delle chiavi primarie
-
Traduzione di entità e associazioni verso il modello logico relazionale
-
Normalizzazione: ridondanze e anomalie, dipendenze funzionali, forme normali
Programmazione lato client e lato server
-
Architettura client-server
-
Programmazione lato client e lato server
-
Ripartizione di applicazioni tra client e server
-
Configurazione di un ambiente di sviluppo con PHP e Apache (XAMPP)
-
Linguaggio PHP
-
DBMS MySQL
-
HTML, Javascript e CSS
-
Gestione delle sessioni
-
I cookie
-
Interfacciamento di un database in rete mediante connessione remota
-
Interazione tra web server e server SQL
-
Creare e gestire un database con MySQL
-
Framework CSS Bootstrap
-
Aspetti generali del GDPR da applicare allo sviluppo di siti web
Gestione di progetto, organizzazione d'impresa
(Classe 5^)
Elementi di economia e organizzazione aziendale
I Processi aziendali
-
Processi primari e processi di supporto
-
Catena del valore di Porter
-
Processi che caratterizzano l'operatività di un' azienda
-
Ciclo di vita di un prodotto
-
Prestazioni dei processi aziendali: tempo, flessibilità
-
Modelli di semplici processi aziendali
-
Ruolo delle tecnologie informatiche nell'organizzazione dei processi
La qualità
-
Tecniche di miglioramento continuo
-
Foglio di raccolta dei dati
-
Frequenze di accadimento
-
Schematizzare i costi legati alla qualità
-
Legge di Pareto
-
Procedura di gestione dei documenti nell'ambito di un sistema di gestione della qualità
Principi e tecniche di Project Management
-
Pianificazione e controllo dei tempi, costi e qualità di un progetto
-
Work Breakdown Structure
-
Risk management
-
Diagramma di Gantt
-
Tecniche reticolari (CPM)
-
Costi e rischi di un progetto informatico
-
Tecnica dell'earned value
-
Gestione della documentazione di progetto
-
Fasi e obiettivi di un progetto
Gestione di progetti informatici
-
Competenze del Software Engineer
-
Bando per la gara di appalto
-
Contratto di sviluppo software
-
Raccolta dei requisiti
-
Stima dei costi di un progetto informatico
-
Modello LOC e FSA
-
Modello COCOMO
-
Qualità secondo il modello di Mc Call-Boehm
-
Modelli di sviluppo
Software di supporto
-
GIT
-
OpenProject
-
ProjectLibre
-
GanttProject