FONDAMENTI DI INFORMATICA A - E

Anno accademico 2020/2021 - 1° anno - Curriculum Ingegneria Industriale-Elettrica, Curriculum Ingegneria Industriale-Gestionale e Curriculum Ingegneria Industriale-Meccanica
Docente: Carmelo PINO
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. 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.

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.

Persistenza dei dati

I File: file di testo e file binari.


Testi di riferimento

  1. Fondamenti di Informatica per Ingegneria Industriale, a cura di: Daniela Giordano, Salvatore Cavalieri e Concetto Spampinato. McGraw-Hill.
  2. Linguaggio C - 5a ed. - Guida alla programmazione con elementi di Objective-C, a cura di Bellini, Guidi.

Dispense del docente.


Verifica dell'apprendimento

Modalità di verifica dell'apprendimento

Esame pratico, con svolgimento di un programma in C, ed esame orale sugli argomenti di teoria.

La verifica dell’apprendimento potrà essere effettuata anche per via telematica, qualora le condizioni lo dovessero richiedere.


Esempi di domande e/o esercizi frequenti

Esempi di esercizi e prove di laboratorio sono disponibili su http://studium.unict.it