Le radici dell'informatica
di Angelo Chianese - Vincenzo Moscato - Antonio Picar
Lo scopo di questo volume è di introdurre ai fondamenti dell’informatica moderna non solo gli studenti dei corsi di Ingegneria e Informatica, ma anche tutti coloro che vogliono comprendere le idee alle radici della rivoluzione tecnologica che pervade le nostre vite. Il testo presenta le tappe più significative della computer science: dalla introduzione del codice binario, al modello architetturale di Von Neumann, dal concetto di algoritmo, all’introduzione dei linguaggi di programmazione e degli ambienti per la produzione dei programmi.
Gli Autori
Angelo Chianese è professore ordinario di Sistemi per l’elaborazione dell’informazione presso il dipartimento di Ingegneria elettrica e delle Tecnologie dell’informazione, Università degli Studi di Napoli Federico II.
Vincenzo Moscato è professore associato di Sistemi per l’elaborazione dell’informazione presso il dipartimento di Ingegneria elettrica e delle Tecnologie dell’informazione, Università degli Studi di Napoli Federico II.
Antonio Picariello è professore associato di Sistemi per l’elaborazione dell’informazione presso il dipartimento di Ingegneria elettrica e delle Tecnologie dell’informazione, Università degli Studi di Napoli Federico II.
Carlo Sansone è professore ordinario di Sistemi per l’elaborazione dell’informazione presso il dipartimento di Ingegneria elettrica e delle Tecnologie dell’informazione, Università degli Studi di Napoli Federico II.
Dai bit alla programmazione strutturata
Pagine | 306 |
Data pubblicazione | Ottobre 2017 |
Data ristampa | |
Autori | Angelo Chianese - Vincenzo Moscato - Antonio Picar |
ISBN | 8891624369 |
ean | 9788891624369 |
Tipologia prodotto | Cartaceo |
Collana | Apogeo Education |
Editore | Maggioli Editore |
Dimensione | 17x24 |
Prefazione
Capitolo 1 L’informazione e le sue rappresentazioni
1.1 L’informatica e il mondo moderno
1.2 Una defi nizione di Informatica
1.3 Una breve storia dell’informatica
1.4 La rappresentazione dell’informazione e il problema della codifica
1.5 La rappresentazione digitale
1.6 I numeri in binario
1.7 La rappresentazione dei numeri relativi
1.8 La rappresentazione dei numeri reali
Esempi di codifica/decodifica di numeri
1.9 L’Algebra di Boole e gli operatori booleani
1.10 La convergenza digitale
1.11 La codifica delle informazioni testuali
1.12 La codifica delle immagini
1.13 Immagini in movimento o video
1.14 La codifica del suono
1.15 Dati e metadati
Domande riepilogative
Capitolo 2 Il modello di esecutore
2.1 Processi e processori
2.2 Modello di Von Neumann
2.3 La memoria
2.4 La CPU
2.5 I bus
2.6 Il clock
2.7 Controllo cablato e microprogrammato, firmware e software
2.8 Evoluzioni del modello di Von Neumann: sistemi dedicati di I/O, interruzioni e cache
2.9 Il modello astratto di esecutore ed esecuzione dei programmi
2.10 I microprocessori
Domande riepilogative
Approfondimento 1: Operazioni di load e store scandite dal clock
Approfondimento 2: Software, sistemi operativi e middleware
Capitolo 3 Algoritmi e programmi
3.1 Informatica come studio di algoritmi
3.2 La soluzione dei problemi
3.3 La calcolabilità degli algoritmi
3.4 La trattabilità degli algoritmi
3.5 La descrizione degli algoritmi
3.6 Sequenza statica e dinamica di algoritmi
3.7 I linguaggi di programmazione
3.8 I metalinguaggi
3.9 La programmazione strutturata
3.10 La progettazione dei programmi di piccole dimensioni
3.11 La documentazione dei programmi
Domande riepilogative
Capitolo 4 La struttura dei programmi
4.1 Le frasi di un linguaggio di programmazione
4.2 Le dichiarazioni
4.3 Le frasi di commento
4.4 L’istruzione di calcolo e assegnazione
4.5 I costrutti di controllo
4.6 Equivalenza dei costrutti di controllo
4.7 La potenza espressiva
4.8 La modularità
4.9 La parametrizzazione
4.10 La specifi ca di procedure e funzioni
4.11 La visibilità
4.12 L’allocazione dinamica
4.13 La ricorsione
4.14 Gli effetti collaterali
4.15 L’uso dei sottoprogrammi e la manutenzione dei programmi
4.16 L’information hiding
Domande riepilogative
Capitolo 5 I dati
5.1 Informazione e dato
5.2 La classificazione dei tipi
5.3 Il tipo booleano
5.4 Il tipo carattere
5.5 Il tipo intero
5.6 Il tipo reale
5.7 Il tipo per enumerazione e il tipo subrange
5.8 I tipi strutturati
5.9 Gli array
5.10 Il tipo stringa di caratteri
5.11 Il tipo record
5.12 Il tipo puntatore
5.13 I file
5.13.1 I file sequenziali
5.13.2 I file di caratteri o textfile
5.13.3 La connessione e sconnessione di file
5.13.4 I fi le ad accesso diretto
5.14 L’astrazione sui dati
5.14.1 Il tipo pila
5.14.2 Il tipo coda
5.14.3 Il tipo tabella
Domande riepilogative
Capitolo 6 Un linguaggio per la progettazione e la codifica di algoritmi
6.1 Introduzione
6.2 Le caratteristiche generali del linguaggio
6.3 Il vocabolario del linguaggio
6.3.1 Separatori
6.3.2 Identifi catori
6.3.3 I simbolispeciali
6.3.4 Parole chiavi
6.3.5 Le costanti
6.3.6 Le stringhe
6.4 Le frasi di commento
6.5 Il programma e la gestione dei tipi
6.5.1 L’intestazione di una funzione
6.5.2 Il blocco di una funzione
6.5.3 I tipi semplici
6.5.4 Dichiarazione di variabili
6.5.5 Definizione di tipi
6.5.6 I tipi derivati
6.6 Gli operatori del linguaggio
6.6.1 Operatori Aritmetici
6.6.2 Operatori Relazionali
6.6.3 Operatori Logici
6.7 La specifica dell’algoritmo
6.7.1 Istruzioni di assegnazione
6.7.2 Chiamata di funzioni
6.7.3 Costrutti selettivi
6.7.4 Costrutti Iterativi
6.8 Le funzioni del linguaggio
6.8.1 La gestione dell’I/O e degli errori
6.8.2 La gestione delle stringhe
6.8.3 Funzioni per il calcolo matematico
6.9 Gli algoritmi di base
6.9.1 Lo scambio di valore
6.9.2 Inserimento in un vettore
6.9.3 Eliminazione in un vettore
6.9.4 Eliminazione di una colonna da una matrice
6.9.5 Eliminazione di una riga da una matrice
6.9.6 Ricerca sequenziale
6.9.7 Ricerca binaria
6.9.8 La ricerca del valore massimo in un vettore
6.9.9 La posizione del valore minimo in un vettore
6.9.10 Ordinamento di un vettore col metodo della selezione
6.9.11 Ricerca in un array di record
6.10 Ordinamento di un array di record
Domande riepilogative
Capitolo 7 La traduzione dei programmi
7.1 Introduzione
7.2 Il processo di traduzione
7.3 La compilazione
7.4 Il collegamento
7.5 Il caricamento
7.6 Gli interpreti
7.7 La verifica della correttezza dei programmi
7.8 Gli ambienti integrati
Domande riepilogative
Appendice A Un Modello di Processore
A.1 Le caratteristiche del modello
A.2 La programmazione in linguaggio assemblativo
Bibliografia consigliata