Fondamenti di Informatica Architettura dei calcolatori Algoritmi e

Transcript

Fondamenti di Informatica Architettura dei calcolatori Algoritmi e
Programma di Fondamenti di Informatica a.a. 2002-2003
Ing. Gestionale (A-I)
POLITECNICO DI BARI
1° Facoltà di Ingegneria
Corso di Laurea in INGEGNERIA GESTIONALE
CORSO A-I
Programma del corso di
Fondamenti di Informatica
Anno accademico 2002-2003
Docente: prof. ing. Eugenio Di Sciascio
Architettura dei calcolatori
Codifica binaria delle informazioni
Codifica di numeri interi e razionali. Il concetto di precisione di una rappresentazione ed il calcolo
dell’errore relativo.
Algebra di Boole
Il concetto di variabile e funzione booleana e tavola della verità. Gli operatori logici fondamentali.
Architettura dei calcolatori
L'architettura del calcolatore di Von Neumann: memoria centrale; processore; bus; interfacce I/O;
periferiche; le memorie di massa.
Il linguaggio macchina: formato delle istruzioni; cenni ai metodi di indirizzamento.
Linguaggi simbolici: cenni sul linguaggio assemblatore.
Algoritmi e strutture dati
Algoritmi
Definizione di algoritmo; proprietà di un algoritmo. Teorema di Böhem-Iacopini. Algoritmi strutturati:
strutture di controllo fondamentali, sequenza, selezione, iterazione. Concetto di complessità
computazionale di un algoritmo.
La ricorsione: principio di induzione, definizione di problema ricorsivo, esempi. Linguaggi per la
descrizione di algoritmi, il diagramma di flusso (flow chart) .
Programmazione
Linguaggi di programmazione: definizione di un linguaggio: alfabeto dei simboli, sintassi, semantica.
Compilatori ed interpreti: analisi lessicale, sintattica, semantica e generazione del codice oggetto.
La struttura dei programmi in C: parte dichiarativa e parte esecutiva.
Le variabili di un programma. I tipi di dati: definizione di tipo di dato; tipi di dati predefiniti ( built-in) e
tipi definiti dall'utente (user-defined); tipi semplici: int, float, char e double.
Tipi strutturati: caratteristiche delle variabili array e strutture; costruttori di tipo: il costruttore array, il
costruttore struct, il costruttore di puntatori.
Strutture di controllo in C: if- else, while; altre istruzioni cicliche: for, do while; il costrutto switch –
case.
Le funzioni: definizione di una funzione; dichiarazione di funzione: la testata (header); l'istruzione return;
i parametri: passaggio dei parametri; chiamata della funzione; parametri attuali e parametri formali;
1
Programma di Fondamenti di Informatica a.a. 2002-2003
Ing. Gestionale (A-I)
gestione della memoria nella chiamata di funzioni, record di attivazione. Regole di visibilità delle
variabili. Funzioni predefinite, lettura e scrittura; librerie di funzioni.
I file: definizione; la variabile puntatore a file; file binari e file testo; operazione di gestione di file:
apertura (modalità di utilizzo), chiusura, scrittura, lettura, accesso diretto a file; lettura e scrittura di
stringhe e di caratteri. Allocazione dinamica della memoria.
La programmazione ricorsiva; gestione della memoria nella chiamata di funzioni ricorsive.
Strutture dati
Strutture dati lineari ed operazioni di gestione: la lista, la pila, la coda.
Strutture dati non lineari ed operazioni di gestione: l'albero, il grafo.
Architettura dei sistemi informatici
Il sistema operativo
Funzioni di un sistema operativo. Gestione dei processi; interruzioni interne, interruzioni esterne.
Gestione della memoria; cenni alla virtualizzazione della memoria, segmentazione, paginazione.
Gestione delle periferiche. Gestione dei file: il file system.
L'interprete dei comandi.
Confronto tra sistemi operativi commerciali.
Basi di dati
Tecniche di gestione della memoria di massa.
Modelli per la gestione di una base di dati: il livello fisico; il livello logico; il livello esterno.
Modelli per la progettazione di una base di dati; il modello dei dati relazionale.
Data Definition Language, Data Manipulation Language.
L'algebra relazionale: principali operatori.
Il linguaggio SQL.
Cenni ai sistemi transazionali.
Reti di calcolatori
Cenni di teoria della trasmissione delle informazioni.
Topologia delle reti: reti geografiche; reti locali.
Modello ISO/OSI:
Ethernet, il protocollo CSMA/CD.
Modello TCP/IP:
Il livello rete: il protocollo IP; il formato degli indirizzi IP.
Il livello di trasporto: il protocollo TCP.
Protocolli del livello applicativo: HTTP, ftp, telnet, la posta elettronica, il DNS.
Modello client/server; il World Wide Web, il linguaggio HTML, applicazioni web.
Cenni alla sicurezza nelle reti: segretezza, integrità, autenticazione: crittografia simmetrica e
asimmetrica; chiave privata, chiave pubblica.
Il ciclo di vita del software
Modelli del processo di produzione del software: a cascata, a spirale.
Obiettivi di qualità del software.
Attività di Laboratorio
Uso di un elaboratore.
L'ambiente di programmazione Microsoft Visual C++ 6.0; l’editor, il compiler ed il linker; il debugger;
creazione del workspace e del project.
Codifica di:
- algoritmi di ordinamento: il bubble sort;
2
Programma di Fondamenti di Informatica a.a. 2002-2003
-
Ing. Gestionale (A-I)
algoritmi di ricerca: la ricerca dicotomica con algoritmo ricorsivo; ricerca dicotomica con
algoritmo iterativo;
funzioni di gestione delle stringhe di caratteri;
funzioni di gestione di file strutturati.
Testi consigliati:
1. S. Ceri, D. Mandrioli, L.Sbattella, Informatica Arte e Mestiere, McGraw-Hill, 1999.
2. B. W. Kernigham, D.M. Ritchie, Linguaggio C, Jackson Libri, 1989.
3. Introduzione alla programmazione in C++. Franco Angeli Editore, (comprensivo di CD per
ambiente di sviluppo freeware DEV-C++).
3