Conoscenza e comprensione
Conoscenze sulla rappresentazione dell’informazione nei calcolatori e sull’architettura dell’elaboratore.
Comprensione del funzionamento di un elaboratore.
Conoscenze sul software di base e sul sistema operativo.
Comprensione di algoritmi.
Conoscenza sui linguaggi di programmazione e su compilatori e interpreti.
Conoscenza sulle reti di calcolatori.
Conoscenza sulla programmazione strutturata e sulla programmazione in linguaggio C.
Capacità di applicare conoscenza e comprensione
Sviluppo di programmi in linguaggio C per la gestione di strutture dati complesse (biblioteche, archivi, etc.).
Lezioni frontali. Esercitazioni. Qualora l'insegnamento venisse impartito in modalità mista o a distanza potranno essere
introdotte le necessarie variazioni rispetto a quanto dichiarato in precedenza, al fine di rispettare
il programma previsto e riportato nel syllabus.
Notazione esponenziale o scientifica. Arrotondamento dei valori numerici. Numeri reali. Operazioni con numeri reali. Potenza ad esponente razionale e reale. Logaritmo di un numero reale positivo. Concetto di funzione. Vettori e Matrici: Operazioni con vettori e matrici.
La frequenza non è obbligatoria, ma fortemente consigliata.
Gli asterischi (*) indicano le competenze minime.
Rappresentazione dell'informazione: Sistemi di numerazione e algoritmi di conversione. Aritmetica intera e in virgola mobile. (*)
Struttura di un elaboratore: La struttura di un elaboratore: memoria centrale, unità centrale, funzionamento elementare dell'elaboratore. (*)
Sistema Operativo: Traduzione ed esecuzione di programmi. Ambiente di Programmazione. Compilatori vs. interpreti. Sistema Operativo. (*)
Algoritmi e Programmi: Elaborazione automatica dell'informazione. Algoritmi e programmi. Linguaggi di programmazione. Il progetto di un programma. (*)
Reti di Calcolatori e Internet: Reti di calcolatori. Reti locali. Reti geografiche. Internet e le più diffuse applicazioni di rete. (*)
Il linguaggio di programmazione "C": sintassi e semantica Controllo: 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 legame dei parametri. La ricorsione. I File: file di testo e file binari. Primitive di accesso ai file. (*)
Algoritmi di ordinamento: Algoritmi di ordinamento e ricerca. Ricerca sequenziale e binaria. (*)
Allocazione dinamica della memoria.(*)
Strutture dati: Liste. (*)
Strutture dati: Pile, Code ed Alberi.
Il materiale didattico sarà fornito su Studium (https://studium.unict.it) nell'area dedicata al corso.
Argomenti | Riferimenti testi | |
1 | Rappresentazione dell'Informazione. Sistema numerico binario. Sistema esadecimale, sistema ottale. Conversione tra sistemi numerici. Rappresentazione dei numeri interi, reali. Codice ASCII. | Dispense della docente su STUDIUM, nell'area dedicata all'insegnamento. Bellini Guidi: Appendice D. |
2 | Architettura e funzionamento elementare del calcolatore. Esecuzione delle istruzioni. Interrupt. Algebra di Boole | Dispense della docente su STUDIUM, nell'area dedicata all'insegnamento. Bellini Guidi: Capitolo 1. |
3 | Sistema operativo. Politiche di gestione della CPU, della memoria centrale e di massa. | Dispense della docente su STUDIUM, nell'area dedicata all'insegnamento. Bellini Guidi: Capitolo 2 |
4 | Algoritmi e programmi. Linguaggi di Programmazione.• Traduzione ed esecuzione dei programmi • Linker • Notazione grafica per la rappresentazione degli algoritmi: Diagrammi di flusso | Capitolo 3,4. Dispense della docente su STUDIUM, nell'area dedicata all'insegnamento. |
5 | Linguaggio C: Tipi di dato. Identificatori. Variabili. Classi di memorizzazione. Costanti. Operatori. Strutture di Controllo.Istruzioni di selezione, iterazione, salto,espressione, blocco. Preprocessore, include, define | Capitolo 5,6,7,8,9,23 |
6 | Array•Puntatori •Puntatori ad array •Stringhe •Strutture •Array di strutture • Lettura e scrittura di caratteri e stringhe •I/O formattato •File di testo • Allocazione dinamica della memoria •Puntatori a strutture | Capitolo 10,13,14,16 |
7 | Funzioni • Istruzione return • Passaggio di Parametri • Ricorsione • Variabili locali, regole di visibilità e tempo di vita | Capitolo 11,15,17,19,20 |
8 | Puntatori a Funzioni | Capitolo 20 |
9 | Algoritmi di ricerca e di ordinamento | Cap.12 |
10 | Strutture dati lineari: Liste, Pile, Code | Capitolo 21 Caso di studio V Dispense della docente su STUDIUM, nell'area dedicata all'insegnamento. |
11 | Esercizi sugli argomenti svolti | Caso di studio I, II, III, IV e V. Dispense della docente su STUDIUM, nell'area dedicata all'insegnamento. |
12 | Cenni su Alberi. | Cap.22. |
La prova d'esame è composta da una prova scritta e una prova orale (opzionale). La prova scritta è rappresentata da un elaborato al calcolatore (obbligatorio) della durata di due ore. L'elaborato consiste di vari quesiti, il cui punteggio è indicato esplicitamente nel compito (es. 4 funzioni da 6 punti ciascuna, etc.). La prova si considera superata se si ottiene una valutazione di almeno 18/30. Lo studente che lo desideri può integrare la prova scritta con la prova orale da svolgere in un qualunque appello regolare (entro la fine dell’a.a.), per il superamento dell’esame. Prenotazione obbligatoria tramite portale di Ateneo.
La verifica dell’apprendimento potrà essere effettuata anche per via telematica, qualora le condizioni lo dovessero richiedere.
Relativamente al linguaggio C:
- Funzioni e passaggio di parametri.
- Ricorsione ed esempio di funzioni ricorsive.
- Costruzione di menu' a scelta multipla.
- Implementazione di liste.