Informatica Avanzata
Sintesi Operativa
Competenze tecniche avanzate per il profilo Assistente Informatico (INF) - Modulo 13 RIPAM. 15 quesiti specifici su sei aree pilastro.
- Programmazione: Algoritmi, complessità Big O, strutture dati (Stack LIFO, Queue FIFO)
- Database: SQL, JOIN, normalizzazione, transazioni ACID
- Reti: Modelli OSI/TCP-IP, TCP vs UDP, porte (443 HTTPS, 22 SSH)
- Sistemi Operativi: Processi, thread, memoria virtuale, comandi Linux
- Sicurezza: Crittografia AES/RSA, OWASP, OAuth 2.0, JWT
- Cloud/DevOps: IaaS/PaaS/SaaS, Docker, CI/CD
1. Programmazione e Algoritmi
La sezione analizza la logica alla base dello sviluppo software, concentrandosi sulla teoria degli algoritmi e sulla gestione delle strutture dati.
Concetto di Algoritmo
Un algoritmo è una sequenza finita di istruzioni ben definite che trasforma un input in un output per risolvere un problema.
Caratteristiche fondamentali:
- Finitezza: Terminazione dopo un numero finito di passi
- Determinismo: Passaggi univocamente determinati
- Input/Output: Ricezione e produzione di dati
- Effettività: Eseguibilità di ogni operazione
Complessità Computazionale (Notazione Big O)
La notazione Big O misura l'efficienza degli algoritmi in termini di tempo o spazio.
| Notazione | Nome | Esempio |
|---|---|---|
| O(1) | Costante | Accesso ad array per indice |
| O(log n) | Logaritmica | Ricerca binaria |
| O(n) | Lineare | Ricerca sequenziale |
| O(n log n) | Linearitmica | Merge Sort, Quick Sort |
| O(n²) | Quadratica | Bubble Sort |
| O(2^n) | Esponenziale | Calcolo dei sottoinsiemi |
Strutture Dati
| Struttura | Caratteristica | Complessità |
|---|---|---|
| Array | Accesso diretto tramite indice | O(1) |
| Lista concatenata | Nodi collegati, accesso sequenziale | O(n) |
| Stack (Pila) | Logica LIFO (Last In First Out) | O(1) push/pop |
| Queue (Coda) | Logica FIFO (First In First Out) | O(1) enqueue/dequeue |
| Albero binario | Nodi con massimo 2 figli | O(log n) se bilanciato |
| Hash Table | Accesso tramite chiave hash | O(1) in media |
Paradigmi di Programmazione
- Procedurale: C
- Orientato agli oggetti (OOP): Java, Python
- Funzionale: Haskell
- Dichiarativo: SQL
Pilastri OOP: Incapsulamento, Ereditarietà, Polimorfismo, Astrazione
2. Database e SQL
L'analisi dei database si concentra sul modello relazionale e sulle proprietà che garantiscono l'integrità dei dati.
Modello Relazionale
I dati sono strutturati in:
- Tabelle (Relazioni)
- Righe (Tuple/Record)
- Colonne (Attributi/Campi)
Chiave Primaria (PK): Identifica univocamente la riga
Chiave Esterna (FK): Referenzia tabelle esterne
Linguaggio SQL
| Comando | Funzione |
|---|---|
| SELECT | Estrazione dati con WHERE, ORDER BY, LIMIT |
| INNER JOIN | Combina tabelle con corrispondenze esatte |
| LEFT JOIN | Include tutte le righe della tabella di sinistra |
| COUNT(*), SUM, AVG | Funzioni di aggregazione |
| GROUP BY / HAVING | Raggruppamento e filtro aggregati |
Normalizzazione
Processo per eliminare la ridondanza dei dati:
- 1NF: Valori atomici
- 2NF: 1NF + nessuna dipendenza parziale dalla PK
- 3NF: 2NF + nessuna dipendenza transitiva
Transazioni ACID
| Proprietà | Significato |
|---|---|
| Atomicity | Transazione indivisibile (tutto o niente) |
| Consistency | Passaggio tra stati validi del database |
| Isolation | Nessuna interferenza tra transazioni concorrenti |
| Durability | Persistenza delle modifiche dopo il commit |
3. Reti e Protocolli
La comunicazione tra sistemi è analizzata attraverso i modelli di stratificazione e i protocolli applicativi.
Modelli OSI e TCP/IP
Modello OSI (7 livelli): Fisico, Data Link, Rete, Trasporto, Sessione, Presentazione, Applicazione
Modello TCP/IP (4 livelli): Accesso alla rete, Internet, Trasporto, Applicazione
TCP vs UDP
| Caratteristica | TCP | UDP |
|---|---|---|
| Connessione | Orientato alla connessione | Senza connessione |
| Affidabilità | Garantita (ACK, ritrasmissione) | Non garantita |
| Ordine | Mantiene l'ordine dei pacchetti | Non garantisce l'ordine |
| Uso tipico | HTTP, FTP, Email | DNS, VoIP, Streaming |
Indirizzamento IP
IPv4: 32 bit (4 ottetti) | IPv6: 128 bit
Indirizzi privati (RFC 1918):
- Classe A: 10.0.0.0/8
- Classe B: 172.16.0.0/12
- Classe C: 192.168.0.0/16
Porte e Protocolli Comuni
| Porta | Protocollo | Funzione |
|---|---|---|
| 80 | HTTP | Web non cifrato |
| 443 | HTTPS | Web cifrato (TLS) |
| 21 | FTP | Trasferimento file |
| 22 | SSH | Shell remota sicura |
| 25 | SMTP | Invio email |
| 110 / 143 | POP3 / IMAP | Ricezione email |
| 53 | DNS | Risoluzione nomi |
| 67/68 | DHCP | Assegnazione automatica IP |
4. Sistemi Operativi e Virtualizzazione
Il Sistema Operativo (SO) gestisce hardware e servizi per gli applicativi.
Gestione Processi
- Processo: Programma in esecuzione con memoria dedicata
- Thread: Unità di esecuzione leggera interna a un processo
Stati del processo: New → Ready → Running → Waiting → Terminated
Gestione Memoria
Memoria Virtuale: Astrazione che estende la RAM fisica tramite:
- Paging: Suddivisione in pagine fisse
- Swap: Spostamento su disco
File System
| File System | Sistema | Note |
|---|---|---|
| NTFS | Windows | Supporto ACL, journaling |
| ext4 | Linux | Standard Linux moderno |
| APFS | macOS | Ottimizzato per SSD |
| FAT32 | Universale | Limite file 4GB |
Comandi Linux Essenziali
ls -la- Lista dettagliata filechmod 755- Permessi rwxr-xr-xps aux- Lista processisudo- Esecuzione con privilegi root
Virtualizzazione
| Tipo | Descrizione | Esempio |
|---|---|---|
| Hypervisor Tipo 1 | Bare-metal (diretto su hardware) | VMware ESXi |
| Hypervisor Tipo 2 | Hosted (su SO esistente) | VirtualBox |
| Container | Virtualizzazione a livello SO | Docker |
5. Sicurezza Informatica Avanzata
La sicurezza si basa sulla protezione dei dati e sulla gestione degli accessi.
Crittografia
| Tipo | Caratteristica | Algoritmi |
|---|---|---|
| Simmetrica | Stessa chiave per cifrare/decifrare | AES, DES |
| Asimmetrica | Coppia chiave pubblica/privata | RSA, ECC |
| Hash | Funzione unidirezionale | SHA-256, MD5 |
Certificati Digitali X.509: Emessi da Certificate Authority (CA) per legare identità e chiavi pubbliche.
Vulnerabilità OWASP Top 10
- SQL Injection: Input malevolo nelle query SQL
- XSS (Cross-Site Scripting): Iniezione di script nel browser
- CSRF (Cross-Site Request Forgery): Richieste forgiate
Standard di Autenticazione
| Standard | Funzione |
|---|---|
| OAuth 2.0 | Autorizzazione delegata |
| JWT | Token stateless (JSON Web Token) |
| SAML | Single Sign-On (SSO) |
6. Cloud Computing e DevOps
L'evoluzione delle infrastrutture si sposta verso servizi pronti all'uso e cicli di sviluppo automatizzati.
Modelli di Servizio Cloud
| Modello | Cosa fornisce | Esempio |
|---|---|---|
| IaaS | Infrastruttura (VM, rete, storage) | AWS EC2, Azure VM |
| PaaS | Piattaforma (runtime applicativo) | Heroku, Google App Engine |
| SaaS | Software (applicazioni finite) | Gmail, Office 365 |
Docker e Containerizzazione
- Immagine: Template immutabile
- Container: Istanza in esecuzione dell'immagine
- Dockerfile: Script per costruire immagini
CI/CD (Continuous Integration / Continuous Deployment)
- Continuous Integration: Integrazione e test automatici ad ogni commit
- Continuous Delivery: Rilascio automatizzato in ambiente di staging
- Continuous Deployment: Rilascio automatico in produzione
Appendice: Punti Chiave
Riepilogo rapido dei concetti più frequenti nei quesiti tecnici.
| Concetto | Definizione / Valore Chiave |
|---|---|
| IPv4 vs IPv6 | 32 bit vs 128 bit |
| Porta 443 | HTTPS (cifrato) |
| Porta 22 | SSH (sicuro) |
| O(n) | Complessità lineare |
| ACID | Proprietà transazioni Database |
| Normalizzazione | Eliminazione ridondanza |
| Docker | Containerizzazione |
| AES / RSA | Crittografia Simmetrica / Asimmetrica |
| SQL Injection | Attacco tramite input in query |
| chmod 755 | Permessi: rwxr-xr-x |
| LIFO | Stack (Last In First Out) |
| FIFO | Queue (First In First Out) |
| TCP | Affidabile, orientato alla connessione |
| UDP | Veloce, senza garanzie |