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