Riflessioni sui Contenuti

Da aptiva.

Indice

PROGRAMMAZIONE

Linguaggi programmazione: procedurali, funzionali, logici

Linguaggi dei dati (Formati) Linguaggi di Marcatura

Protocolli.

Compilatori e Interpreti

Script e Programmi

Metodi: Pseudocodice; Diagrammi di Flusso

Concetti di programmazione: Sequenza; Variabili; Espressione; Blocco; Condizione; Cicli; Funzioni; Ricorsione; Moduli; Oggetti; Classi; Librerie

ALGORITMI

Tipi Elementari: int; float; char; unicode

Strutture Dati: scalari; vettori; liste; code; stack; alberi; grafi;

Complessita': complessita' in tempo e in spazio; come si misura; ordine di crescita

Tecniche Algoritmiche: Divide et Impera; Backtrack; Algoritmi approssimati; Greedy

Algoritmi di ordinamento: counting sort; inserimento; selezione; shellsort; mergesort; quicksort; heapsort

Algoritmi di ricerca: sequenziale; ricerca binaria/dicotomica; alberi di ricerca; hashing (separate chaining, linear probing)

Algoritmi su grafi: visita depth first; visita breadth first; calcolo delle componenti connesse; riconoscimento dei cicli; gradi di separazione; sort topologico; chiusura transitiva; connessione forte in un grafo diretto; Minimum spanning tree; Minimo cammino su un grafo; Calcolo di tutti i cammini minimi

Algoritmi su stringhe: Radix sort; Ricerca di sottostringhe; Elaborazione di espressioni regolari (Automi a stati finiti); Compressione: Codifiche run-length; Compressione: Codifica di Huffman; Compressione: Lempel-Ziv-Welch.

Altri Algoritmi: Algoritmi geometrici; B-tree; Reti di flusso; Matrimoni stabili;

Codifica: Testo, Audio, Immagini; Compressione lossless/lossy; codice grey; CRC; Hamming; Reed-Solomon;

CALCOLO NUMERICO

Floating point, errori e propagazione

Calcolo di sistemi lineari: metodo di gauss, decomposizione matrici (LU e Cholesky), numero di condizione

Equazioni non lineari: quadratiche, cubiche, calcolo degli zeri (secanti e tangenti)

Derivazione numerica

Interpolazione

Approssimazione

Integrazione: montecarlo, trapezi

Equazioni differenziali

Trasformata di Fourier (FFT)

Metodi montecarlo

ARCHITETTURA

Storia dell'architettura: generazione 0 (Byron/Lovelace), 1 (valvole), 2 (transistor), 3 (IC), 4 (VLSI), quinta: computer invisibili

Lo zoo dei computer: microcontrollori/embedded, personal computer, server, mainframe, cloud

Elaborazione Digitale ed Analogica Porte Logiche tecniche costruttive: Relais/Transistor/IC circuiti combinatorici elementari -encoder -decoder -multiplex selector -half-adder -adder

circuiti sequenziali elementari -flip-flop

Processori: control path e data path, CISC e RISC, microcodice, ISA, registri. Protezione hardware del sistema: Modo kernel/user. Interrupt/Trap.

Linguaggi assembler: codice operativo, indirizzamento, gestione stack, salti.

Memoria Centrale: RAM/ROM/EPROM memoria statica e bipolare, cache di processore. Codici di correzione errore.

MMU: indirizzi logici e fisici, protezione di memoria.

Memoria Secondaria: Gerarchia delle memorie. Dischi magnetici, memorie flash, CD/DVD. RAID

Memoria Virtuale.

Unita' di Input Output: Bus, DMA e arbitraggio del Bus, Unita' memory mapped.

Architetture Parallele: SIMD/MIMD. Multithreading. Tightly coupled multiprocessor: gestione interrupt e coerenza delle cache. Loosely coupled multiprocessor: sistemi massicciamente paralleli.

(Attualita': approfondimento sulla struttura dei Data-Center)

COMPILATORI

Front-End e Back-End: porting di un compilatore

Compilatori e Interpreti

Passi di un compilatore: analisi lessicale, sintattica, generazione codice intermedio, ottimizzazione, generatore di codice macchina

Storia e tassonomia dei linguaggi di programmazione.

Il linkage editor, la gestione delle librerie, librerie statiche e dinamiche.

Il codice e l'ambiente di esecuzione.

MACCHINE ASTRATTE E CALCOLABILITA'

(ci sono argomenti adatti alle scuole superiori?)

LINGUAGGI FORMALI

(ci sono argomenti adatti alle per le scuole superiori?)

SISTEMI OPERATIVI

Definizione di Sistema Operativo (e di Distribuzione). Storia dei Sistemi Operativi. Sistemi Batch e interattivi. Sistemi mono-multi utente.

Struttura dei sistemi operativi: monolitico, monolitico/modulare, exokernel, microkernel, macchine virtuali.

Processi e Thread

Programmazione concorrente/Inter Process Communication: message passing, semafori, mutex, monitor.

Scheduling

I/O: device driver, interrupt handler. Deadlock.

Memory management: protezione di memoria, segmentazione/paginazione, paginazione a richiesta e memoria virtuale.

File System: File e directory. Attributi dei file. Implementazione dei File System. Allocazione indicizzate e concatenata. controllo e ripristino di coerenza. Journaling.

RETI

Struttura a Livelli dei Protocolli: i 7 livelli OSI (PDNTSPA) e i 5 reali: fisico, data link, network, transport, application. LAN/WAN (MAN, PAN ...)

Modelli di interazione: Client-Server, Peer-to-Peer

Fisico: Supporti per trasmissioni. Cavi, onde radio. Segnali e modulazioni, topologia fisica,

Data Link: indirizzo MAC,codici a correzione di errore, controllo di accesso del canale, reti a diffusione/bus e a token. Funzionamento di Switch/Bridge

Network: internetworking, indirizzi a livello network. Indirizzamento, routing: link state e distance vector, controllo di congestione, QoS.

Transport: datagrammi e connessioni, controllo di connessione (protocollo a finestra scorrevole)

Protocolli applicativi.

Sicurezza in rete.


Architettura di Internet:

Fisico/Data Link: Ethernet, Wi-Fi, ADSL

Network/Transport: IP, IPv6, TCP/UDP, ICMP (ICMPv6)

Protocolli Applicativi: DNS, SMTP, POP, IMAP, HTTP, FTP, SSH, protocolli Peer-to-Peer

DATA BASE

Concetto di sistema informativo. Informatizzazzione dei sistemi informativi.

Il modello E/R. Gli attributi e le associazioni. Tipi di associazioni. Lo schema E/R.

Il modello relazionale. Le tabelle e le relazioni. Tipi di relazioni. Vincoli di integrità dei dati. La normalizzazione e le 3 forme normali. Operazioni dell'algebra relazionale: ridenominazione, proiezione, restrizione, incrocio, prodotto, join.

I sistemi integrati: DBMS. Tre linguaggi per i DBMS: DDL, DML, DCL. I linguaggi dichiarativi: l'SQL. Schema fisico VS schema logico. I DBMS come sistemi distribuiti. Cenni di sicurezza su un DBMS.

L'SQL come tutto fare della teoria relazionale. Modellazione di un sistema informativo: le istruzioni di DDL. I vincoli in SQL. Dalle operazioni relazionali e alle istruzioni di DML dell'SQL. Le interrogazioni: tecniche e funzionalità SQL. Gli indici. Cenni di politiche di sicurezza: SQL come DCL.

Domanda aperta: presentare prima la teoria relazionale, con tanto di algebra relazionale, e solo in seguito mostrare come l'SQL si dimostri linguaggio tutto fare nel realizzarne concetti e operazioni o invece introdurre l'SQL assieme al concetto di algebra relazionale, integrando passo passo la spiegazione delle operazioni relazionali con il parallelo delle corrispettive nel linguaggio SQL (che darebbe, tra l'altro, la possibilità di un effetto pratico, verificale dagli studenti)?

INGEGNERIA DEL SOFTWARE

Design pattern: Model View Controller (MVC)

Software testing

USABILITA' E ACCESSIBILITA'

Concetti di base sull'usabilità. Concetti di base sull'accessibilità.

ASPETTI LEGALI ED ETICI

Programma come testo, diritto di autore. Concetto di Plagio. Licenze.

Software proprietario e software libero.

Protocolli e Formati aperti e chiusi.

Open Data.

Strumenti personali
Namespace

Varianti
Azioni
Navigazione
Strumenti