cover-tecnologia-digitale-web

Marcello Missiroli
Tecnologia e progettazione per il mondo digitale e per il web 1
NUOVA EDIZIONE 2015
Digital Index Editore, Modena, 2015 - 
ISBN 9788897982692
Libro di testo disponibile per l'adozione scolastica

 

 

 

Indice dell'opera

  224

Introduzione
Introduzione (per i docenti)
Come usare questo libro
Domande ed esercizi 
 
Fil Rouge

1 - DATI E INFORMAZIONI
1.1 Il dato e l'informazione
1.1.1 Dati e codici
1.1.2 Informazione
1.1.3 La saggezza
1.1.4 Riassumendo
1.1.5 E ora?
1.1.6 Domande ed esercizi - Il dato e l'informazione
1.2 Il sistema di numerazione binario
1.2.1 Analogico e digitale
1.2.2 Il codice
1.2.3 I sistemi di numerazione
1.2.4 Il codice binario
1.2.4.1 Il “bit” e il “byte”
1.2.4.2 I multipli del byte
1.2.5 Riassumendo
1.2.6 Domande ed esercizi - Il sistema di numerazione binario
1.3 Usare il sistema binario
1.3.1 Conversione da decimale a binario
1.3.2 Conversione da Binario a Decimale
1.3.3 Operazioni elementari in base 2
1.3.4 Sistemi ottali ed esadecimali
1.3.4.1 Conversione rapida da esadecimale/ottale a binario
1.3.4.2 Conversione rapida da binario a esadecimale/ottale
1.3.5 Riassumendo
1.3.6 Domande ed esercizi - Usare il sistema binario
1.3.7 E ora?
Quiz 1
1.4 I numeri nel computer
1.4.1 Aritmetica degli insiemi limitati
1.4.2 Rappresentazione dei dati interi senza segno
Errori e anomalie
1.4.3 Rappresentazione dei numeri con segno
1.4.4 Rappresentazione in complemento a 1
1.4.4.1 I calcoli
1.4.5 Rappresentazione in complemento a 2
1.4.5.1 Interpretazione alternativa del C2
1.4.5.2 La sottrazione in complemento a 2
1.4.5.3 Errori e anomalie
1.4.5.4 Orrori tipici da studenti
1.4.6 Codifica BCD
1.4.7 I numeri interi nei linguaggi di programmazione
1.4.8 Riassumendo
1.4.9 E ora?
1.4.10 Domande ed esercizi - I numeri nel computer
1.5 I numeri reali
1.5.1 Rappresentazione in virgola fissa
1.5.1.1 Conversione da decimale a virgola fissa
1.5.2 Rappresentazione in virgola mobile
1.5.3 I calcoli in virgola mobile
1.5.4 Errori e anomalie
1.5.5 Riassumendo
1.5.6 E ora?
1.5.7 Domande ed esercizi - I numeri reali
1.6 Numeri e lettere
1.6.1 Codifica ASCII
Tabella Caratteri ASCII non stampabili
Tabella Caratteri ASCII stampabili
1.6.2 Codepages: esplode la babele
1.6.3 Un po' di ordine: ASCII Esteso
1.6.3.1 Diffusione di ISO 8859 e problemi
1.6.4 Arriva l'Unicode
1.6.4.1 Implementazione sul calcolatore
1.6.4.2 Dettagli su UTF-8.
1.6.4.3 Utilizzo pratico di Unicode
1.6.5 Nei linguaggi di programmazione
1.6.6 Riassumendo
1.6.7 E ora?
1.6.8 Domande ed esercizi - Numeri e lettere
Quiz 2
1.7 Facciamo il punto e tracciamo la rotta
1.7.1 Esercizi di ricapitolazione - Dati e Informazioni
1.7.2 Spunti di riflessione
1.7.2.1 Codifiche
1.7.2.1 Complemento a 2
1.7.3 Mappe mentali

2 - COMUNICAZIONE, CODIFICA, FORMATI
2.1 La teoria dell'informazione
2.1.1 Comunicazione e codifiche
2.1.2 Misurare l'informazione
2.1.2.1 Nozione intuitiva di misura dell'informazione
2.1.2.1 Nozione un po' più formale della misura dell'informazione
2.1.3 A cosa serve tutto questo?
2.1.4 Compressione: distruttiva e non distruttiva
2.1.5 Il codice migliore
2.1.6 Entropia della comunicazione
2.1.7 La codifica migliore
2.1.8 Sorgenti con memoria
2.1.9 Correzione e rilevazione degli errori
2.1.9.1 Distanza di Hamming
2.1.9.2 Codice di parità longitudinale
2.1.9.3 Codice di parità verticale (checksum)
2.1.9.4 Codice di ridondanza ciclica (CRC)
2.1.9.5 Codice autocorrettivo di Hamming
2.1.10 Applicazioni pratiche
2.1.11 Riassumendo
2.1.12 E ora?
2.1.13 Domande ed esercizi - La teoria dell'informazione
2.2 Computer graphics
2.2.1 Come codificare le immagini?
2.2.2 La rappresentazione raster
2.2.3 Risoluzione
2.2.4 Colore e memoria
2.2.5 Problemi e anomalie
2.2.6 La rappresentazione vettoriale
2.2.7 Problemi e anomalie
2.2.8 I formati grafici
2.2.8.1 Fax
2.2.8.2 BMP
2.2.8.3 GIF
2.2.8.4 JPEG
2.2.8.5 PNG
2.2.8.6 Formati Autocad
2.2.8.7 Formato SVG
2.2.8.8 Postscript
2.2.8.9 PDF
2.2.9 I font: le forme dei caratteri
2.2.10 I font bitmap
2.2.11 I font outline
2.2.12 Formati
2.2.12.1 Adobe type fonts (.atf, .afm)
2.2.12.2 True Type e Open Type(.ttf, .otf)
2.2.12.3 Web Open Font Format(.woff, .woff2)
2.2.12.4 Embedded OpenType Fonts(.eot)
2.2.13 Problemi artistici
2.2.14 Aspetti pratici
2.2.14.1 Installazione
2.2.14.2 Modifiche
2.2.15 Riassumendo
2.2.16 E ora?
2.2.17 Domande ed esercizi - Computer graphics
2.3 Digital audio & video
2.3.1 Il suono in salsa digitale
2.3.2 Formati non compressi
2.3.2.1 Formato audio del CD
2.3.3 Formati compressi, senza perdita
2.3.4 Formati compressi, con perdita
2.3.5 Il video digitale
2.3.5.1 Digitalizzazione e codec
2.3.5.1 Tipi di compressione
2.3.6 I formati di distribuzione
2.3.6.1 AVI
2.3.6.2 MPEG
2.3.6.3 3gp
2.3.6.4 Webm
2.3.6.5 WebRTC
2.3.7 I codec più diffusi
2.3.7.1 MPEG
2.3.7.2 H264 (MPEG4- AVC)
2.3.7.3 VP8, VP9, AV1
2.3.7.4 DVD e Blu-ray
2.3.8 Aspetti pratici
2.3.9 Riassumendo
2.3.10 E ora?
2.3.11 Domande ed esercizi - Digital audio & video
2.4 Facciamo il punto e tracciamo la rotta
2.4.1 Esercizi di ricapitolazione - Comunicazione, codifica, formati
2.4.2 Spunti di riflessione
2.4.3 Mappe mentali
 
3 - INTRODUZIONE AI SISTEMI OPERATIVI
3.1 Primo incontro con il sistema operativo
3.1.1 Definizione di un sistema operativo
3.1.2 Compiti del S.O.
3.1.2.1 Risorse
3.1.3 Classificazione dei sistemi operativi
3.1.3.1 Desktop
3.1.3.2 Server
3.1.3.3 Mobile
3.1.3.4 Real time Operating System (RTOS)
3.1.3.5 Embedded
3.1.3.6 Distribuiti
3.1.4 Organizzazione di un sistema operativo
3.1.4.1 Sistema semplice
3.1.4.2 Struttura a due strati
3.1.4.3 Struttura a più strati
3.1.4.4 Macchine virtuali
3.1.4.5 Modelli ibridi
3.1.5 Il kernel
3.1.5.1 Tipologie di kernel
3.1.6 Panoramica dei SO attuali
3.1.6.1 Windows
3.1.6.2 Linux
3.1.6.3 Sistemi Apple: Mac OSX e IOS
3.1.6.4 Android
3.1.6.5 Cosa ci riserva il futuro?
3.1.7 Riassumendo
3.1.8 E ora?
3.1.9 Esercizi e domande - Primo incontro con il sistema operativo
3.2 L'accensione del computer
3.2.1 Sequenza di avvio del PC (UEFI)
3.2.1.1 Avvio Hardware
3.2.1.2 Stadi di avvio di UEFI
3.2.2 Il bootloader
3.2.2.1 Secure Boot: vantaggi e perplessità
3.2.3 Sistema di avvio di Windows
3.2.3.1 Configurazione del boot
3.2.3.2 Avvio e riavvio
3.2.4 Il sistema di avvio di Mac OS
3.2.5 Sistema di avvio di GNU/Linux
3.2.5.1 GRUB
3.2.5.2 Linux e Secure Boot
3.2.6 Sistema di avvio di Android
3.2.7 Systemi Legacy: BIOS e CSM
3.2.7.1 Differenze tra UEFI E BIOS
3.2.7.2 Sequenza di avvio BIOS ("Legacy")
3.2.8 Problemi e anomalie
3.2.8.1 Troubleshooting
3.2.8.2 Modalità di emergenza
3.2.8 Riassumendo
3.2.9 E ora?
3.2.10 Esercizi e domande - L'accensione del computer
3.3 I processi
3.3.1 Le strutture del processo
3.3.2 Monotasking
3.3.2.1 Batch processing
3.3.2.2 Spooling
3.3.2.3 Sistemi operativi monotasking
3.3.3 Le interruzioni
3.3.4 La multiprogrammazione
3.3.4.1 Gli stati del processo
3.3.4.2 Foreground e background
3.3.4.3 Sistemi operativi multiprogrammati
3.3.5 Il multitasking preemptive
3.3.6 Algoritmi di scheduling
3.3.7 I thread
Implementazioni pratiche
3.3.8 Esecuzione parallela
3.3.8.1 Il pericolo dello stallo
3.3.9 Gestione dei processi in Windows
3.3.9.1 Teoria
3.3.9.2 Gestione Attività (Task Manager)
3.3.10 Gestione dei processi in Linux
3.3.10.1 Teoria
3.3.10.2 Gestione processi
3.3.11 Gestione dei processi nel SO mobili
3.3.12 Riassumendo
3.3.13 E ora?
3.3.14 Esercizi e Domande - I processi
3.4 Gestione utenti
3.4.1 Il “mio” computer
3.4.1 Controllo remoto
3.4.2 Identificazione e login
3.4.2 Multiutenza in Windows
3.4.2.1 Tipi di utenti
3.4.2.2 Gestione utenti (Windows Home)
3.4.2.3 Utenti, gruppi e permessi sui file
3.4.3 Multiutenza in Linux
3.4.3.1 Tipi di utenti
3.4.3.2 Gestione utenti in Ubuntu
3.4.3.3 Cambio dell'utente attivo (multisessione)
3.4.3.4 Utenti, gruppi e permessi sui file
3.4.4 Il caso Android
3.4.5 Riassumendo
3.4.6 E ora?
3.4.7 Domande ed esercizi - Gestione utenti
3.5 La memoria
3.5.1 Vicino all'hardware: la cache
3.5.1.1 Stesso nome, altre applicazioni
3.5.1.2 Funzionamento della cache
3.5.2 La memoria centrale
3.5.2.1 Prime metodologie
3.5.2.2 La paginazione
3.5.2.3 Segmentazione
3.5.2.4 Il meglio dei due mondi.
3.5.3 La memoria virtuale
3.5.3.1 Funzionamento
3.5.3.2 Implementazione della memoria virtuale in Linux
3.5.3.3 Implementazione della memoria virtuale in Windows
3.5.4 Riassumendo
3.5.5 E ora?
3.5.6 Domande ed esercizi - La memoria
3.6 Gestione del disco
3.6.1 Le partizioni
3.6.1.2 GPT - General Partition Table
2.6.1.2 Tabella delle partizioni classica: MBR
3.6.1.3 Nomenclatura delle partizioni
3.6.1.4 Strumenti
3.6.2 File
3.6.2.1 Tipi di file
3.6.2.2 Operazioni sui file
3.6.3 Il filesystem
3.6.3.1 Montaggio del filesystem
3.6.3.2. Journaling
3.6.3.3 Snapshot
3.6.3.4 Basta teoria!
3.6.4 Implementazione: il filesystem FAT
3.6.4.1 Funzionamento
3.6.4.2 Limitazioni di FAT
3.6.4.3 ExFAT, FAT resuscitato con gli steroidi
3.6.5 Filesystem Apple: APFS
3.6.5.1 Caratteristiche del filesystem
3.6.5.2 Filesystem Apple obsoleti: HFS e HFS+
3.6.5.3 Strumenti
3.6.6 Filesystem NTFS
3.6.6.1 Dettagli tecnici
3.6.6.2 Funzionamento
3.6.7 La famiglia di filesystem EXT
3.6.7.1 Dettagli tecnici
3.6.7.2 Directory, soft e hard links
3.6.8 Filesystem su CD-ROM e DVD-ROM: ISO9660 e UDF
3.6.9 Oltre le partizioni: gestione logica del volumi
3.6.9.1 RAID
3.6.9.2 Problemi dei RAID
3.6.10 Riassumendo
3.6.11 E ora?
3.6.12 Domande ed esercizi - Gestione del disco
3.7 Facciamo il punto e tracciamo la rotta
3.7.1 Esercizi di ricapitolazione - Introduzione ai sistemi operativi
3.7.2 Spunti di riflessione
3.7.3 Mappe mentali
 
4 - SVILUPPO WEB
4.1 Le basi di HTML
4.1.1 Breve storia dell'HTML
4.1.2 Evoluzione del linguaggio
4.1.2.1 La situazione nel 2021
4.1.3 Struttura di un file HTML
4.1.3.1 Versione minimalistica
4.1.3.2 DTD e validazione
4.1.3.3 Qualche dettaglio in più: codifiche del testo
4.1.3.4 Un hello world più completo
4.1.4 Gli elementi base
4.1.5 Formato del carattere
4.1.6 Liste
4.1.7 Gli strumenti del mestiere
4.1.7.1 Visualizzare : i browser
4.1.7.1 Scrivere: editor testuali, semitestuali e WYSWYG
4.1.7.3 Controllare: strumenti di supporto
4.1.8 Riassumendo
4.1.9 E ora?
4.1.10 Domande ed esercizi - Le basi di HTML
4.2 Link e grafica
4.2.1 Dal testo all'ipertesto
4.2.1.1 Dove andare?
4.2.1.2 I link esterni
4.2.1.3 I link interni (frammenti)
4.2.1.4 Il target
4.2.1.5 Problemi
4.2.2 Le immagini
4.2.2.1 Il tag img e i suoi attributi
4.2.2.2 Posizionamento dell'immagine
4.2.2.3 Mappe di immagine (image map)
4.2.3 I colori
4.2.4 Blocchi di testo
4.2.5 L'allineamento del testo
4.2.6 Le tabelle
4.2.6.1 Dimensioni
4.2.6.2 Tabelle più complesse
4.2.6.3 Didascalie
4.2.6.4 Gruppi di colonne
4.2.6.5 intestazione e corpo di tabelle
4.2.7 Elementi strutturali e semantici
4.2.8 Ulteriori elementi di marcatura
4.2.9 Elementi multimediali
4.2.9.1 Audio
4.2.9.2 Video
4.2.10 Riassumendo
4.2.11 E ora?
4.2.12 Domande ed esercizi - Link e grafica
4.3 I Fogli di stile a cascata
4.3.1 Cosa sono?
4.3.2 Perche' usarli?
4.3.3 La regola dello stile
4.3.4 Posizionare lo stile
4.3.5 I selettori
4.3.5.1 Selettori di elemento
34.3.5.2 Selettori di classe
4.3.5.3 Selettore di ID
4.3.5.4 Pseudo-classi e pseudo-elementi
4.3.5.5 Commenti
4.3.6 Riassumendo
4.3.7 Strumenti
4.3.8 E ora?
4.3.9 Domande ed esercizi - I Fogli di stile a cascata
4.4 CSS1 – Le basi dello stile
4.4.1 Proprietà dello sfondo e dei colori
4.4.1.1 Il colore in primo piano e di sfondo
4.4.1.2 Immagine di sfondo
4.4.2 Proprietà relative al testo
4.4.2.1 Il carattere
4.4.2.2 Lo spazio
4.4.3 Stili sovrapposti: ereditarietà e regole di cascata
4.4.3.1 Importanza
4.4.3.2 Specificità
4.4.3.3 Ordine di definizione (autore, utente)
4.4.3.4 Ordine di definizione (posizionamento)
4.4.3.5 Per far chiarezza...
4.4.4 Commenti condizionali
4.4.5 E ora?
4.4.6 Domande ed esercizi - CSS1 – Le basi dello stile
Quiz 3
4.5 CSS2 - Posizione e altri media
4.5.1 Selettori e pseudo-elementi più raffinati
4.5.2 Box Model
4.5.3 Altezza e overflow
4.5.4 Posizionamento
4.5.5 Image sprite
4.5.6 Elementi flottanti (floats)
4.5.6.1 Problemi con i float
4.5.6.2 Ulteriori chiarimenti sui float e le tabelle fluttuanti
4.5.7 Molti media, ma la stampa in particolare
4.5.7.1 Dimensioni della pagina stampata
4.5.7.2 Interruzioni di pagina
4.5.7.3 Preparazione per la stampa
4.5.8 Layout ed elementi semantici
4.5.8.1 Impostazione generale
4.5.8.2 Struttura del contenuto principale
4.5.9 Web Design - Layout non responsive
4.5.10 Riassumendo
4.5.11 E ora?
4.5.12 Domande ed esercizi - CSS2 - Posizione e altri media
4.6 CSS3 - La nuova frontiera
4.6.1 Selettori
4.6.2 Trasparenza (alpha channel)
4.6.3 Bordi arrotondati
4.6.4 Transizioni, trasformazioni e animazioni
4.6.5 Incorporare i font
4.6.6 Web Design: Responsive design
4.6.6.1 Media Query
4.6.6.2 Immagini fluide
4.6.6.3 Griglie fluide
4.6.6.4 RWD con Multicol
4.6.6.5 RWD con Flex
4.6.6.6 RWD con Grid
4.6.7 Riassumendo
4.6.8 E ora?
4.6.9 Domande ed esercizi - CSS3 - La nuova frontiera
4.7 Facciamo i punto e tracciamo la rotta.
4.7.1 Esercizi di ricapitolazione - Sviluppo Web
4.7.2 Mappe mentali
 
5 - LA PROGETTAZIONE INFORMATICA
5.1 Scienza o arte?
Risultati dell'analisi di 25000 progetti circa. © Standish Group 2015
5.1.1 Che significa progettare
5.1.2 Il "prodotto" software
5.1.3 L'ingegneria del software
5.1.3 Il ciclo di vita del software
5.1.4 Modelli di sviluppo
5.1.3.1 Modello artigianale (bug-and-fix)
5.1.3.2 Modello a cascata
5.1.3.3 Modelli iterativi
5.1.3.4 Modelli agili
5.1.3.5 Modello di sviluppo web
5.1.5 Riassumendo
5.1.6 E ora?
5.1.7 Domande ed esercizi - Scienza o arte?
5.2 Analisi: di che cosa stiamo parlando?
5.2.1 Raccolta delle informazioni
5.2.2 Organizzare le informazioni
5.2.3 Risultati dell'analisi
5.2.4 Demo Project: Analisi
5.2.4.1 Demo: documento dei requisiti
5.2.4.2 Demo: studio di fattibilità
5.2.5 Progetto didattico guidato: Analisi
5.2.5.1 La situazione
5.2.5.2 L'intervista
5.2.5.3 La visita
5.2.5.4 Ulteriori attività
5.2.2.6 Valutazione
5.2.6 Riassumendo
5.2.7 Domande ed esercizi - Analisi: che cosa vogliamo fare?
5.3 Progettazione: come lo facciamo?
5.3.1 Progettazione ad alto livello
5.3.2 Progettazione di dettaglio
5.3.3 Progettazione del sistema
5.3.4 Risultati della progettazione
5.3.5 Progettazione web
5.3.5.1 Progettazione ad alto livello (web design)
5.3.5.2 Progettazione di dettaglio (visual design)
5.3.5.3 Altre peculiarità dello sviluppo web
5.3.6 Demo Project: Web design
5.3.6.1 Architettura informazioni
5.3.6.2 Struttura del sito
5.3.6.3 Mappa del sito
5.3.6.4 Prototipo di navigazione
5.3.7 Demo project: Visual design
5.3.7.1 Modifica dell'esistente
5.3.7.1 Produzione originale
5.3.8 Progetto didattico guidato: progettazione
5.3.8.1 La situazione
5.3.8.2 Deliverables (web design)
5.3.8.3 Deliverables (visual design)
5.3.9 Riassumendo
5.3.10 E ora?
5.3.11 Domande ed esercizi - Progettazione: come lo facciamo?
5.4 Realizzazione: facciamolo!
5.4.1 Le attività dello sviluppo
5.4.1.1 Codifica
5.4.1.2 Controllo
5.4.1.3 Valutazione
5.4.2 Attività dello sviluppo web
5.4.2.1 Prototipo funzionale
5.4.2.2 Prototipo editoriale
5.4.3 Demo Project: lo sviluppo
5.4.3.1 Prototipo funzionale
5.4.3.2 Prototipo editoriale
5.4.4 Progetto didattico guidato: realizzazione
5.4.4.1 Prodotto atteso: prototipo funzionale
5.4.4.1 Prodotto atteso: prototipo editoriale
5.4.5 Riassumendo
5.4.6 Domande ed esercizi - Realizzazione: facciamolo!
5.5 Testing: Funziona? Stiamo andando bene?
5.5.1 Verifica: test di unità
5.5.1.1 Black box testing
5.5.1.2 White box e Grey testing
5.5.1.3 Test di regressione
5.5.1.4 Test automatici
5.5.1.5 Test di unità nei progetti web
5.5.1.3 Bugfixing e debugging
5.5.2 Verifica: test di integrazione e di sistema
5.5.2.1 Progetti web
5.5.3 Validazione: test di accettazione
5.5.4 Validazione: test di usabilità
5.5.4.1 Valutazioni euristiche
5.5.4.2 Euristica per i siti web
5.5.4.3 Test di usabilità
5.5.6 Demo project: Testing
5.6.6.1 Verifica
5.6.6.2 Validazione
5.5.7 Progetto didattico guidato: Testing
5.5.7.1 Test di unità
5.5.7.2 Test di integrazione
5.5.7.3 Test di usabilità
5.5.7.1 Test di accettazione
5.5.8 Riassumendo
5.5.9 E ora?
5.5.10 Domande ed esercizi - Testing: Funziona? Stiamo andando bene?
5.6 Rilascio
5.6.1 System setup
5.6.1.1 Sistemi tradizionali
5.6.1.2 Web server
5.6.2 Deployment
5.6.2.1 Numerazione delle versioni
5.6.3 Demo Project: rilascio
5.6.4 Progetto didattico guidato: rilascio
5.6.4.1 La situazione
5.6.4.2 Deployment: Consegna del sito
5.6.4.3 Cerimonia di consegna
5.6.5 Riassumendo
5.6.6 Domande e Esercizi - Rilascio
5.7 Manutenzione
5.7.1 Identificazione
5.7.2 Implementazione
5.7.3 Gestione delle operazioni
5.7.4 Responsabilità e durata
5.7.5 Demo project: manutenzione
5.7.5 Progetto didattico mirato: manutenzione
5.7.6 Riassumendo
5.6.7 Domande e Esercizi - Manutenzione
5.8 Facciamo il punto
5.7.1 Esercizi di ricapitolazione - La progettazione informatica
5.7.2 Mappe mentali
 
6 APPENDICE
6.1 La proprieta' intellettuale
I sistemi esistenti
6.1.1 Le nuove tecnologie
6.1.1.1 No-copyright
6.1.1.2 Irrigidimento delle normative
6.1.2 Il software e i contenuti liberi
6.1.2.1 Premessa storica
6.1.3 Le licenze attuali
6.1.3.1 Pubblico dominio
6.1.3.2 Licenze Commerciali (chiuse)
6.1.3.3 Licenze Aperte
6.1.3.4 Creative Commons
6.1.5 Cosa significa tutto questo, in pratica?
6.1.6 E ora?
6.2 GNU/Linux
6.2.1 Introduzione generale
6.2.2 Installazione
6.2.3 Interfaccia utente grafica
6.2.4 Interfaccia testuale
6.2.5 E ora?
 
Ringraziamenti
L'autore
Dove andiamo oggi?
Crediti