FONDAMENTI DI INFORMATICA F - O

Anno accademico 2018/2019 - 1° anno
Docenti: Concetto SPAMPINATO e Isaak Kavasidis
Crediti: 9
SSD: ING-INF/05 - Sistemi di elaborazione delle informazioni
Organizzazione didattica: 225 ore d'impegno totale, 138 di studio individuale, 42 di lezione frontale, 45 di esercitazione
Semestre:
ENGLISH VERSION

Obiettivi formativi

Il corso ha la finalità di fornire conoscenze: - sulla rappresentazione dell’informazione nei calcolatori, sull’architettura dell’elaboratore, sul software di base, sul sistema operativo, sugli algoritmi, sui linguaggi di programmazione, su compilatori e interpreti e sulle reti di calcolatori - sulla programmazione strutturata e sulla programmazione in linguaggio C. Sviluppo di programmi in C per la gestione di strutture dati complesse (biblioteche, archivi, etc.).


Modalità di svolgimento dell'insegnamento

Lezioni frontali, esercitazioni e laboratorio.


Prerequisiti richiesti

Non sono richieste specifiche capacità in ingresso


Frequenza lezioni

E' richiesta la frequenza obbligatoria


Contenuti del corso

Introduzione: Algoritmi e Programmi

Elaborazione automatica dell'informazione. Algoritmi e programmi. Un linguaggio di programmazione. Il progetto di un programma. La programmazione strutturata. Diagrammi di flusso e pseudocodice.

Rappresentazione dell'informazione

Sistemi di codifica. Sistemi di numerazione e algoritmi di conversione. Aritmetica intera e in virgola mobile. Rappresentazione di dati multimediali.

Architettura di un sistema di elaborazione

La struttura di un elaboratore: memoria centrale, unità centrale, funzionamento elementare dell'elaboratore (ciclo macchina). Dispositivi periferici e memorie di massa. Classificazione dei sistemi di elaborazione.

Reti di Calcolatori e Internet
Generalità sulle reti di calcolatori. Reti locali. Reti geografiche. I protocolli di rete. Cenni su Internet e sulle più diffuse applicazioni di rete.

Software di base e Sistemi Operativi

Traduzione ed esecuzione di programmi. Ambiente di Programmazione. Compilatori vs. interpreti. Architettura e funzionalità del Sistema Operativo. Gestione dei processi. Gestione della memoria. Gestione del file system.

Il linguaggio di programmazione "C": sintassi e semantica

Istruzioni di Assegnazione. Strutture di controllo. Tipi di dato in C: tipi semplici (int, char, float, double) e

strutturati (array e stringhe, strutture). Il tipo puntatore. Le funzioni. Campo d'azione degli identificatori.

Algoritmi di ordinamento e ricerca

Ricerca sequenziale e binaria. Algoritmi di ordinamento.

Strutture dati

Strutture dati dinamiche. Allocazione dinamica della memoria. Liste, Pile, Code ed Alberi. Primitive e relative

implementazioni in C. Esempi di programmi.


Testi di riferimento

  • Bellini, A. Guidi - "Linguaggio C - guida alla programmazione", 4a ed. McGraw-Hill
  • D. Sciuto, G. Buonanno, L. Mari, , "Introduzione ai sistemi informatici" 5a ed. McGraw-Hill


Programmazione del corso

 ArgomentiRiferimenti testi
1Informazione e sua codificaLibro 2: Capitolo 2 
2Problemi e algoritmiLibro 2: Capitolo 3 
3Linguaggi per la formalizzazione dell’informazione Libro 2: Capitolo 4 
4Teoria della ComputabilitàDispense del docente  
5Infrastruttura HardwareLibro 2: Capitolo 6 
6Infrastruttura SoftwareLibro 2: Capitolo 7 
7Infrastruttura di ReteLibro 2: Capitolo 8 
8Introduzione ANSI C: Tipi di dati, istruzioni di assegnazione e strutture di controllo.Libro1: Capitoli 1, 2 e 11 
9ANSI C: Istruzioni interativeLibro 1: Capitolo 3 
10ANSI C: Tipi di dati strutturato: array e stringhe, struttureLibro 1: Capitoli 4 e 6. Dispense del docente 
11ANSI C: Funzioni, ricerche, ordinamenti e fusioniLibro1: Capitoli 5 e 7 
12ANSI C: Puntatori e gestione dinamica della memoriaLibro1: Capitoli 9 e 12 
13ANSI C: File e strutture datiLIbro1: Cpitolo 13 e 14 

Verifica dell'apprendimento

Modalità di verifica dell'apprendimento

L'esame consiste in una prova (individuale) da svolgere in laboratorio divisa in due parti per una durata di 2 ore: la prima parte di teoria (tramite test a risposta multipla al pc o esame orale) sugli argormenti affrontati nel corso e la seconda parte di programmazione in C.

L'esame è superato quando entrambe le prove sono state superate.

E' prevista inoltre una prova in itinere, che, se superata, sostituirà la prova di teoria.


Esempi di domande e/o esercizi frequenti

Esempi di compiti riguardanti la prova di teoria e di laboratorio sono disponibili su Studium.