( english version )
Fondamenti di informatica A ( 7 CFU )
Prof. Eduardo Calabrese
     Tel. 0521-905703 - Fax. 0521-905723           E-mail. educal@ce.unipr.it           Home page. http://www.ce.unipr.it/people/educal/

Finalità
Il modulo intende fornire i concetti di base dell'informatica e gli strumenti fondamentali per l'utilizzo e la programmazione dei calcolatori elettronici, con particolare attenzione agli algoritmi, ai linguaggi e alle metodologie di programmazione. Come linguaggio di programmazione viene usato il C++.

Programma
Parte A (24 ore in aula)
Rappresentazione posizionale dei numeri. Sistemi di numerazione. Conversione di base. Aritmetica binaria.
La rappresentazione dei dati in memoria. Rappresentazione in complemento a 2. Il codice ASCII. Rappresentazione delle stringhe C.
L'organizzazione dei file su disco. Cenni ai sistemi operativi Dos-Windows e Unix.
Definizione di problema, dati, risultati. Concetto di algoritmo, metodo computazionale, esecutore.
Algoritmi di ricerca e di ordinamento.
Strutture dati: liste, alberi, tabelle.
Alberi binari e loro attraversamento.
Progettazione di un programma: programmazione top-down . Metodologie di programmazione strutturata e modulare.

Parte B (36 ore: 12 in aula e 24 in laboratorio)
Il linguaggio C++
Struttura di un programma.
Tipi di dati elementari.
Costanti, variabili, operatori, espressioni.
Assegnamento. Istruzioni di controllo.
Array e stringhe.
Funzioni e prototipi. Ambito degli identificatori. Modalità di passaggio dei parametri.
Stack e record di attivazione.
Sovrapposizione di funzioni.
Ricorsione.
Tipi enumerati. Strutture.
Il sistema di input/output del C++.
Gestione di file.
Uso dell'Editor e il debugging di un programma. Progetti multifile.
Puntatori. Allocazione dinamica della memoria.
Manipolazione di liste e alberi binari.
Librerie.

Attività d'esercitazione
Le esercitazioni sono molto importanti e hanno come obbiettivo quello di familiarizzare con l’ambiente di programmazione e di riuscire a risolvere problemi di programmazione via via più complessi.

Modalità d'esame
L'esame consiste di una prova scritta, o quiz (domande a risposte chiuse, <1 ora), di una prova pratica (tema di programmazione da svolgere in C++, 2 ore) e di una eventuale prova orale.

Propedeuticità
Nessuna. Si suppone comunque che lo studente conosca le basi dell'uso di Internet.

Testi consigliati
E. Clementini: Fondamenti di Informatica – Programmazione strutturata in C++. Carocci (2206)
M. Bertozzi, E. Calabrese: Lezioni di Fondamenti di Informatica A. Santa Croce (2004)
E. Calabrese: Temi d'esame di Fondamenti di Informatica con esempi di soluzione in C++. Pitagora Editrice Bologna (Nuova edizione 2005)

Testi d'approfondimento
S. Prata: C++ Primer Plus. Waite Group Press
H. M. Deitel, P. J. Deitel: C++ - Fondamenti di programmazione. Apogeo
H. M. Deitel, P. J. Deitel: C++ - Tecniche avanzate di programmazione. Apogeo
 
stampa il programma ~ torna indietro