FONDAMENTI DI INFORMATICA A - E
Anno accademico 2018/2019 - 1° annoCrediti: 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: 2°
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. Verranno forniti gli strumenti metodologici per risolvere algoritmicamente un problema e le tecniche della programmazione strutturata. Gli studenti saranno in grado di sviluppare autonomamente un programma in linguaggio C con particolare riferimento alla gestione di strutture dati complesse (biblioteche, archivi, etc.).
Modalità di svolgimento dell'insegnamento
Lezioni frontali, esercitazioni e laboratorio.
Prerequisiti richiesti
Non sono richieste specifiche conoscenze o abilità in ingresso
Frequenza lezioni
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.
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 delle periferiche. Gestione del file system.
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.
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. Dichiarazioni e campo d'azione degli identificatori. Variabili locali, globali e statiche. Tecniche di passaggio dei parametri. La ricorsione. I File: file di testo e file binari. Primitive di accesso ai file. 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
1) Bellini, A. Guidi - "Linguaggio C - guida alla programmazione", 4a ed. McGraw-Hill
2) D. Sciuto, G. Buonanno, L. Mari, , "Introduzione ai sistemi informatici" 5a ed. McGrawHill
DIspense del docente.
Programmazione del corso
Argomenti | Riferimenti testi | |
---|---|---|
1 | Informazione e sua codifica | Libro 2: Capitolo 2 |
2 | Problemi e algoritmi | Libro 2: Capitolo 3 |
3 | Linguaggi per la formalizzazione dell’informazione | Libro 2: Capitolo 4 |
4 | Infrastruttura Hardware | Libro 2: Capitolo 6, Slides del docente |
5 | Infrastruttura Software | Libro 2: Capitolo 7, Slides del docente |
6 | Infrastruttura di Rete | Libro 2: Capitolo 8 |
7 | Introduzione ANSI C: Tipi di dati, istruzioni di assegnazione e strutture di controllo. | Libro1: Capitoli 1, 2 e 11; Dispense del docente |
8 | ANSI C: Istruzioni interative | Libro 1: Capitolo 3; Dispense del docente |
9 | ANSI C: Tipi di dati strutturato: array e stringhe, strutture | Libro 1: Capitoli 4 e 6. Dispense del docente |
10 | ANSI C: Funzioni, ricerche, ordinamenti e fusioni | Libro1: Capitoli 5 e 7; Dispense del docente |
11 | ANSI C: Puntatori e gestione dinamica della memoria | Libro1: Capitoli 9 e 12; Dispense del docente |
12 | ANSI C: File e strutture dati | Libro1: Capitoli 13 e 14; Dispense del docente |
Verifica dell'apprendimento
Modalità di verifica dell'apprendimento
L'esame consiste in una prova di teoria (scritta) e in una prova pratica di programmazione in laboratorio. Le due prove sono indipendenti, e ciscuna prova superata resta valida fino ad ottobre 2018. L'esame è superato quando entrambe le prove sono state superate.
Esempi di domande e/o esercizi frequenti
Esempi di esercizi e prove di laboratorio sono disponibili su http://studium.unict.it