Indice. Prefazione. Ringraziamenti dell Editore

Documenti analoghi
Indice PARTE A. Prefazione Gli Autori Ringraziamenti dell Editore La storia del C. Capitolo 1 Computer 1. Capitolo 2 Sistemi operativi 21 XVII XXIX

Sommario PREFAZIONE...XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLA PROGRAMMAZIONE IN C...

Indice. Prefazione. 3 Oggetti e Java 53

Sistemi Informativi Aziendali. Programma del corso

PREFAZIONE... IX Lo scopo di questo libro... ix La metodologia di insegnamento... ix Panoramica sul libro... xiii

Classe III A. A.s Programma di Informatica 5 ore settimanali (3 laboratorio) Docenti. Prof. Alberto Ferrari Prof.

Linee di programmazione

Indice Prefazione 1 Il diritto e la società dell informazione La società dell informazione Un nuovo paradigma soc

Sommario. I Uso degli oggetti 39

Programma di Informatica. Insegnanti: N. Cataruozzolo - S. Termini Classe III sez. B SIA Anno scolastico: 2018/2019

PROGRAMMA PER LA PROVA DI ACCERTAMENTO

Il computer. Il case e l'unità di elaborazione. Il computer, una macchina aggiornabile.

Università degli studi di Roma Tor Vergata Ingegneria Medica Informatica I Programma del Corso

Linee di programmazione

Sommario. Introduzione... xv. Giorno 1 Elementi base del linguaggio C

Indice. 3 Reti logiche Reti logiche Algebra di Boole Espressioni booleane e funzioni... 48

INdICe. Prefazione XIII. 3 Capitolo 1 Classificazioni e concetti base

Indice. Parte I FondaMentI di InForMatIca. Prefazione alla seconda edizione Gli Autori Ringraziamenti dell Editore Guida alla lettura XIII XV XVI XVII

Docenti Marco Cirrito, Pier Luigi Girelli. Disciplina. OBIETTIVI MINIMI (necessari al passaggio alla classe successiva)

MODELLO SCHEDA INSEGNAMENTO

Programma svolto informatica a.s. 2017/2018. Classe 1D

IV Indice I comandi e la sintassi dei linguaggi formali Proposte di variazione sul tema Le stringhe Tipi di dato Operazioni co

Informatica 3. LEZIONE 1: Introduzione. Modulo 1: Introduzione al corso Modulo 2: Introduzione ai linguaggi di programmazione

Argomento della lezione N. 2. Argomento della lezione N. 1. Presentazione del corso.

Informatica 3. Informatica 3. Lezione 1- Modulo 1. LEZIONE 1: Introduzione. Concetti di linguaggi di programmazione. Introduzione

APPUNTI PER IL CORSO DI ALFABETIZZAZIONE INFORMATICA

Indirizzo Liceo Scientifico opzione Scienze Applicate Classe 1 a sez. F Anno Scolastico

Elenco sezioni libro di testo Ed. 5 Tra parentesi le corrispondenze per l'ed. 7.

Il computer. Il case e l'unità di elaborazione. Il computer, una macchina aggiornabile.

Prefazione. Capitolo 1 Sistemi di elaborazione 1

Programma dettagliato

ISTITUTO ISTRUZIONE SUPERIORE

ISTITUTO STATALE D ISTRUZIONE SUPERIORE FERRARIS - BRUNELLESCHI EMPOLI Anno scolastico 2015/2016

PROGRAMMAZIONE DISCIPLINARE LICEO SCIENTIFICO OPZIONE SCIENZE APPLICATE INFORMATICA CLASSE TERZA

Indice Capitolo 1 Capitolo 2 Capitolo 3 Capitolo 4 Capitolo 5 Capitolo 6

PROGRAMMAZIONE INFORMATICA PRIMO BIENNIO

I-XIII_romane_sawyer :50 Pagina V. Indice. Prefazione

ISTITUTO SUPERIORE ENRICO FERMI. PROGRAMMAZIONE DEL GRUPPO DISCIPLINARE INFORMATICA IT INDIRIZZO INFORMATICA E TELECOMUNICAZIONI a.s.

PROGRAMMA SVOLTO CLASSE INDIRIZZO ANNO SCOLASTICO 2018/19 DISCIPLINA DOCENTI 1BSS. Servizi Socio-Sanitari

Che cos e l Informatica. Informatica generale. Caratteristiche fondamentali degli algoritmi. Esempi di algoritmi. Introduzione

ISTITUTO D ISTRUZIONE SUPERIORE L. EINAUDI con sezione associata del Liceo Scientifico G. Bruno MURAVERA

Sommario. Note alla traduzione... xix

Esercizi di autovalutazione Risposte agli esercizi di autovalutazione Esercizi... 64

Fondamenti di Programmazione

Programmazione modulare

Prefazione all edizione italiana Descrizione dei contenuti. PARTE I Introduzione e modelli 1. Capitolo 1 Introduzione 3

Capitolo 7 Un primo sguardo agli oggetti Schema e valori Elementi di classe e d istanza

Introduzione ai sistemi informatici

Architettura dei calcolatori e Software di sistema

Informatica (C.I. Metodologia Scientifica e Linguistica)

Informatica A. Allievi Gestionali A.A Nozioni di Base

Indice generale Introduzione...vii Parte I Concetti e costrutti fondamentali... 1 Capitolo 1 Introduzione al linguaggio... 3

ITI M. FARADAY. Programmazione a. s

MATRICE TUNING competenze versus unità didattiche, Corso di Laurea in Informatica (classe L-31), Università degli Studi di Cagliari

Giacomo Fauser. Istituto Tecnico Settore Tecnologico Via Ricci, Novara. PIANO DI LAVORO. Per l anno scolastico

PRIMO MODULO. DURATA: 80 ore CONTENUTI

LICEO SCIENTIFICO "LEONARDO DA VINCI" - RC PROGRAMMA DI INFORMATICA A.S. 2015/16 - CLASSE: I R - Indirizzo Scienze applicate Prof Miritello Rita

Sommario PREFAZIONE... XI CAPITOLO 1: INTRODUZIONE AI COMPUTER, A INTERNET E AL WEB... 1 CAPITOLO 2: INTRODUZIONE ALLE APPLICAZIONI JAVA...

Modulo 1 Information Communication Technology. ICT e computer... Pag. 6 Classificazione dei computer...» 8

PIANO DI LAVORO. Programmazione Didattica per Competenze. Indirizzo Informatica e Telecomunicazioni. Articolazione Informatica DOCENTE:

Calendario delle lezioni

Funzioni, Stack e Visibilità delle Variabili in C

Indice. Introduzione PARTE PRIMA LE BASI DEL C++: IL LINGUAGGIO C 1

Parte prima. Dell uso del computer in generale

Reti di Calcolatori. Concetti introduttivi. Il modello ISO/OSI ed il protocollo TCP/IP

23/02/2011. I/le corsisti/e dovranno dimostrare di conoscere le varie parti di un computer, saper utilizzare le normali funzioni del

Istituto di Istruzione Superiorevia Salvini 24 Roma Liceo M. Azzarita Liceo delle scienze applicate Materia:Informatica Programmazione a.s.

Corso di Sistemi di Elaborazione Modulo 1 (6 CFU)

Programmazione modulare

INFORMATICA LSOSA LINEE GENERALI: Contenuti/Aree tematiche

PROGRAMMARE IN JAVA Volume I

PROGETTAZIONE DIDATTICA ANNUALE

Prefazione. Introduzione

Introduzione... IX Capitolo 1 Primi passi con PHP...1 Capitolo 2 Numeri e stringhe...9

Sommario Prefazione xiii Modulo 1 Concetti di basedell ICT

Introduzione al Corso

ISTITUTO TECNICO INDUSTRIALE M. FARADAY Programmazione didattica

Elementi di Informatica

Il corso di Fondamenti di Informatica

Saper riconoscere un automa attraverso l analisi delle caratteristiche di un sistema. Saper descrivere il funzionamento di una CPU

Costanti e Variabili

INDICE CONCETTI DI BASE DELLE TECNOLOGIE DELL'INFORMAZIONE E DELLA COMUNICAZIONE

CORSO DI FONDAMENTI DI INFORMATICA

Sommario Obiettivo della programmazione e ciclo di sviluppo di programmi. Programmi. Ciclo di sviluppo di programmi. Obiettivo

Anno Scolastico Contenuti minimi (possibile oggetto della prova per la sessione differita per gli studenti con giudizio sospeso)

ISTITUZIONE SCOLASTICA DI ISTRUZIONE TECNICA LYCÉE TECHNIQUE PROGRAMMAZIONE EDUCATIVA E DIDATTICA ANNUALE PER COMPETENZE A.S.

Lezione 2 Chiamate di procedura e risposta alle interruzioni

ISTITUTO D ISTRUZIONE SECONDARIA SUPERIORE

Laboratorio di Informatica. Introduzione

Prefazione... xi. Da leggere prima di iniziare...xiv. Capitolo 1 Introduzione a JavaScript Sezione A Programmazione, HTML e JavaScript...

Programma svolto di INFORMATICA. Classe 3 - indirizzo MERCURIO A.S. 2009/2010

Funzioni, Stack e Visibilità delle Variabili in C

Corso di Fondamenti di Informatica e Laboratorio

Anagrammando Proposte di variazione sul tema Cosa hai imparato

Programma svolto di INFORMATICA. Classe 3M - indirizzo MERCURIO A.S. 2010/2011

PROGRAMMAZIONE DISCIPLINARE LICEO SCIENTIFICO OPZIONE SCIENZE APPLICATE INFORMATICA CLASSE PRIMA

Transcript:

Prefazione Autori Ringraziamenti dell Editore XIV XXI XXII 1 Introduzione 1 1.1 Che cos è l informatica? 1 1.2 Il concetto di algoritmo 2 1.3 Esempio esteso: consultazione di una carta geografica 6 1.4 I linguaggi per la programmazione di algoritmi 9 1.5 Architettura dei sistemi informatici 11 1.5.1 Hardware 11 1.5.2 Personal computer 12 1.5.3 Altri sistemi informatici 14 1.5.4 Software 16 1.5.5 Ambiente di programmazione 17 1.5.6 Software di produttività personale 18 1.6 Applicazioni dell informatica 19 1.6.1 Le applicazioni numeriche 20 1.6.2 Le applicazioni gestionali 20 1.6.3 I servizi telematici 20 1.6.4 L automazione industriale 21 1.6.5 Controllo di impianti industriali e applicazioni embedded 22 1.6.6 Realtà virtuale e interfacce utente avanzate 22 1.6.7 Informatica e disabilità 27 1.6.8 L invasione dell informatica (informatics everywhere) 28 1.7 Esempio esteso: il simulatore di corse automobilistiche 28 1.8 Le aree disciplinari dell informatica 30 Esercizi 32 2 Architettura di un calcolatore 33 2.1 Elementi della macchina di von Neumann 33 2.2 Codifica dei dati e delle istruzioni di un programma 34 2.2.1 Codifica dei numeri 35 2.2.2 Codifica dei caratteri 42 2.2.3 Codifica delle immagini 43 2.2.4 Operazioni aritmetiche e logiche 44 2.2.5 Codifica delle istruzioni della macchina di von Neumann 48

VII 2.3 Comportamento della macchina di von Neumann 48 2.3.1 La memoria centrale 48 2.3.2 Il bus di sistema 51 2.3.3 L unità di elaborazione 53 2.3.4 Interfacce di ingresso/uscita 55 2.4 Esecuzione dei programmi 55 Esercizi 61 PARTE PRIMA Programmazione 63 3 Codifica degli algoritmi in un linguaggio di alto livello 65 3.1 Il nucleo del linguaggio C 66 3.2 Primi esempi di programmi C 70 3.3 I dati strutturati in C 76 3.4 La costruzione incrementale dei programmi 79 Esercizi 87 4 Esecuzione di programmi C su macchine reali 91 4.1 Struttura dei programmi C 92 4.1.1 La parte dichiarativa dei programmi 92 4.1.2 La parte esecutiva dei programmi: istruzioni di ingresso/uscita 94 4.2 Primi esempi di programmi C 98 Esercizi 99 5 Tipi di dato 101 5.1 Classificazione dei tipi di dato 102 5.2 Tipi semplici predefiniti 104 5.2.1 Il tipo int 104 5.2.2 Itipifloat e double 106 5.2.3 Il tipo char 109 5.2.4 Classificazione dei tipi predefiniti del C 110 5.3 Definizione di nuovi tipi: regole sintattiche 111 5.4 Tipi semplici definiti dall utente 112 5.4.1 Ridefinizione 112 5.4.2 Enumerazione esplicita dei valori 113 5.4.3 Il tipo bool 114 5.5 Tipi strutturati 114 5.5.1 Il costruttore array 114 5.5.2 Il costruttore struct 122 5.5.3 Il costruttore puntatore 126 5.5.4 Alcuni rischi della programmazione mediante puntatori 132 5.6 Array, puntatori e aritmetica dei puntatori 132 5.7 Il C e la tipizzazione forte 134 5.7.1 Compatibilità tra tipi 135 5.8 Cenni all organizzazione dei tipi in altri linguaggi 136 Esercizi 138

VIII Indice 6 Strutture di controllo 139 6.1 Istruzioni di selezione 140 6.1.1 Il costrutto switch 140 6.1.2 Altri tipi di alternative multiple 142 6.2 Istruzioni cicliche 144 6.2.1 Il ciclo for 144 6.2.2 Il ciclo do-while 147 6.3 L istruzione goto 147 6.4 Le istruzioni break e continue 148 6.5 Dichiarazione e inizializzazione congiunte di variabili 149 6.6 Cenno alle strutture di controllo di altri linguaggi 149 Esercizi 150 7 Funzioni e procedure 151 7.1 Struttura completa di un programma C 153 7.2 Le funzioni 153 7.2.1 Definizione delle funzioni 154 7.2.2 Chiamata delle funzioni 156 7.2.3 Prototipo delle funzioni 156 7.2.4 Esecuzione delle funzioni e passaggio dei parametri 157 7.3 Le procedure 160 7.3.1 Esecuzione delle procedure 162 7.4 Il passaggio dei parametri per indirizzo 163 7.5 Aspetti avanzati nell uso dei sottoprogrammi 166 7.5.1 La struttura di un programma C 167 7.5.2 L ambito di visibilità delle variabili 169 7.5.3 La durata delle variabili 172 7.5.4 Uso di parametri di tipo array 173 7.5.5 Uso di parametri di tipo struttura 174 7.5.6 Effetti collaterali 175 7.5.7 Scelta della tecnica di passaggio parametri 176 7.5.8 Uso interscambiabile di procedure e funzioni 177 7.6 Procedure e funzioni predefinite. La standard library del C 177 7.6.1 Header file 179 7.6.2 Uso della funzione scanf 180 7.7 Cenno ai sottoprogrammi in altri linguaggi 180 Esercizi 182 8 Introduzione alla programmazione ricorsiva 183 8.1 La formulazione in termini ricorsivi di problemi e algoritmi 183 8.2 La ricorsione come strumento di programmazione 185 8.3 L esecuzione dei sottoprogrammi ricorsivi 188 8.3.1 La gestione a pila della memoria 190 8.4 Ulteriori esempi di programmazione ricorsiva 193

IX 8.5 La ricorsione nei diversi linguaggi di programmazione 196 Esercizi 197 9 Gestione dei file 199 9. Flussi, file e programmi C 200 9.2 Operazioni su file 201 9.2.1 Operazioni di gestione dei file 202 9.2.2 Operazioni di gestione degli errori 203 9.2.3 Operazioni di lettura e scrittura 204 9.3 Accesso diretto 211 9.4 Alcune considerazioni conclusive 212 Esercizi 215 10 Strutture dati dinamiche 219 10.1 Strumenti per la gestione dinamica dei dati e loro uso 220 10.1.1 Le operazioni di allocazione e cancellazione di memoria 220 10.1.2 Rischi della gestione dinamica della memoria 222 10.2 Liste e loro gestione 223 10.2.1 Inizializzazione 225 10.2.2 Controllo di lista vuota 226 10.2.3 Controllo dell esistenza di un elemento in una lista 227 10.2.4 Estrazione della testa o della coda da una lista 228 10.2.5 Inserimento di un nuovo elemento in una lista 228 10.2.6 Cancellazione di un elemento da una lista 232 10.3 Le strutture dati dinamiche nei vari linguaggi 234 Esercizi 234 11 Tipi di dato astratti, classi, e la programmazione a oggetti in Java 235 11.1 Gli elementi essenziali della programmazione a oggetti 236 11.1.1 Incapsulamento e information hiding 236 11.1.2 La programmazione a oggetti e i tipi di dato astratti 237 11.2 I primi passi in Java: terminologia e sintassi 238 11.3 Tipi,classieoggettiinJava 241 11.3.1 Istanziazione e assegnamento di oggetti 244 11.4 Java e i tipi di dato astratti 246 11.5 Gli array in Java 249 11.6 La costruzione di strutture dinamiche in Java 252 Esercizi 258 PARTE SECONDA Architettura hardware e software 261 12 Estensioni all architettura di von Neumann 263 12.1 Estensioni all architettura di von Neumann 263 12.2 Architetture pipeline e superscalari 265 12.3 Architetture CISC e RISC 266

X Indice 12.3.1 Architetture CISC 267 12.3.2 Architetture RISC 267 12.4 La memoria cache 269 12.5 Architetture di calcolo parallele 270 12.5.1 Classificazione di Flynn sul flusso di controllo 271 12.5.2 Architetture a memoria distribuita o condivisa 272 12.6 Architetture SMP e dual processor 273 12.6.1 Architetture multi-core 274 12.6.2 Architetture con hyper-threading 274 12.7 I processori grafici 275 12.8 Sistemi in cluster 276 Esercizi 278 13 Il sistema operativo 279 13.1 Funzioni di un sistema operativo 280 13.2 Gestione dei processi 281 13.2.1 Interruzioni interne 282 13.2.2 Interruzioni esterne 284 13.2.3 Politiche di gestione dell unità di elaborazione 285 13.2.4 Sincronizzazione dei processi 286 13.3 Gestione della memoria centrale 286 13.3.1 Rilocazione 287 13.3.2 Memoria di modo S e memoria di modo U 289 13.4 Driver per la gestione delle periferiche 290 13.5 Gestione dei file 290 13.6 La virtualizzazione e le macchine virtuali 292 13.7 Storia dei sistemi operativi 295 13.8 I sistemi operativi moderni 296 Esercizi 297 14 Archivi e basi di dati 299 14.1 Memoria di massa 300 14.1.1 Nastri 300 14.1.2 Dischi magnetici 302 14.1.3 Dischi ottici 303 14.1.4 Unità allo stato solido 304 14.2 Organizzazione degli archivi 305 14.3 Basi di dati 306 14.3.1 Differenze fra archivi separati e basi di dati 306 14.3.2 Modelli e linguaggi per la gestione dei dati 308 14.3.3 Livelli di astrazione in una base di dati 309 14.3.4 Basi di dati e transazioni 310 14.3.5 Programmazione e utilizzo di una base di dati 311 14.4 Esempio esteso: basi di dati relazionali 312 14.4.1 Il modello relazionale 312

XI 14.4.2 Il linguaggio SQL 315 14.4.3 Strumenti per la programmazione delle applicazioni 326 Esercizi 330 15 Reti di calcolatori e sistemi distribuiti 331 15.1 Mezzi e tecniche di trasmissione dati 332 15.1.1 Cavi in rame 332 15.1.2 Fibre ottiche 333 15.1.3 Onde radio e sistemi wireless 334 15.1.4 Modulazione e demodulazione 336 15.2 Reti di calcolatori 339 15.2.1 Reti geografiche e reti locali 339 15.2.2 Topologia delle reti 341 15.2.3 Struttura dei messaggi e dei pacchetti 342 15.2.4 Protocolli di comunicazione 344 15.2.5 I livelli ISO-OSI 345 15.2.6 Apparati di rete 347 15.3 Sistemi distribuiti 348 15.3.1 Architetture client/server 349 15.3.2 Architetture peer-to-peer 350 16 I servizi Internet 353 16.1 Breve storia di Internet 354 16.2 Il protocollo TCP/IP 355 16.2.1 Indirizzi IP 356 16.2.2 Intranet e indirizzi privati 357 16.2.3 Nomi e indirizzi: il DNS 358 16.3 Il World Wide Web 360 16.3.1 Documenti ipertestuali 362 16.3.2 HTTP e URL 364 16.3.3 I motori di ricerca 364 16.4 La posta elettronica 366 16.4.1 Funzionamento della posta elettronica 366 16.4.2 Architettura di un sistema di posta elettronica 367 16.4.3 Origini ed evoluzione della posta elettronica 369 16.5 Audio e video su Internet 370 16.5.1 Streaming 370 16.5.2 Codifica video 372 16.5.3 La televisione su Internet 373 16.5.4 Telefonare con Internet 374 16.6 Cloud computing 374 Esercizi 376 17 Sicurezza dei calcolatori e delle reti 377 17.1 Concetti base sulla sicurezza informatica 377

XII Indice 17.1.1 Gli attacchi informatici 378 17.2 Meccanismi di autenticazione 379 17.3 Crittografia 381 17.3.1 Cenni storici sulla crittografia 381 17.3.2 Esempi di algoritmi crittografici 382 17.3.3 Robustezza dei sistemi crittografici 383 17.3.4 Crittografia simmetrica e asimmetrica 384 17.3.5 Firma digitale e certificati digitali 386 17.4 Sicurezza nei sistemi informatici 389 17.4.1 Sicurezza nei sistemi operativi 389 17.4.2 Sicurezza a livello di rete: firewall 390 17.4.3 Sicurezza a livello di rete: protocolli sicuri e VPN 391 Esercizi 393 18 La visione dei sistemi informatici da parte dell utente finale 395 18.1 Interfacce utente 396 18.1.1 Universal Design e linee guida per l accessibilità 396 18.1.2 Dispositivi di ingresso e uscita 398 18.1.3 Interfacce logiche 401 18.2 Esempio esteso: Windows 403 18.3 Strumenti di produttività 408 18.4 Esempio esteso: gli elaboratori di testo 408 18.4.1 Elaborazione di testi mediante Word 409 18.5 Esempio esteso: i fogli elettronici 411 18.5.1 Tipi di celle: valori, etichette ed espressioni 412 18.5.2 La costruzione delle formule 413 18.5.3 Valutazione del foglio elettronico 414 18.5.4 Riorganizzazione del foglio elettronico 415 18.5.5 Presentazione dei dati 415 Esercizi 418 19 La produzione industriale del software 419 19.1 Obiettivi di qualità del software 420 19.2 Modelli del processo di produzione del software 422 19.2.1 Il modello a cascata 422 19.2.2 Il modello a spirale 424 19.2.3 Il software agile 425 19.2.4 Il software open source 426 19.2.5 I metodi formali 426 19.2.6 Considerazioni conclusive sullo sviluppo del software 427 19.3 Analisi e progettazione del software con UML 427 19.3.1 Il diagramma delle classi 428 19.3.2 Il diagramma delle sequenze 430 19.3.3 Il diagramma delle macchine a stati 432 19.3.4 Il diagramma dei casi d uso 433

XIII 19.3.5 Da UML al codice: un esempio completo 436 19.4 La verifica del software e del sistema 441 19.4.1 Principio di completezza della verifica 442 19.4.2 Tecniche di ispezione o analisi 443 19.4.3 Tecniche di sperimentazione 443 19.5 Aspetti organizzativi del processo di produzione del software 444 Esercizi 446 20 L evoluzione dell informatica 447 20.1 Breve storia dell informatica 447 20.1.1 La preistoria dell informatica 448 20.1.2 L informatica negli anni Cinquanta 451 20.1.3 L informatica negli anni Sessanta 452 20.1.4 L informatica negli anni Settanta 453 20.1.5 L informatica negli anni Ottanta 455 20.1.6 L informatica negli anni Novanta e gli albori del nuovo millennio 455 20.1.7 L entrata nel nuovo millennio 457 20.2 L impatto dell informatica sull individuo e sulla società 460 20.2.1 Informatica e sicurezza personale 460 20.2.2 Informatica e protezione dei dati 460 20.2.3 Informatica ed etica 461 Appendice A I caratteri ASCII 465 B Operatori ANSI C 473 C Parole chiave e identificatori predefiniti del C 474 D Alcune funzioni della libreria standard del C 479 E La sintassi formale ANSI C 489 F Soluzioni di esercizi scelti 499 Bibliografia 521 Indice analitico 525