www.unipa.it

Facoltà di Ingegneria - Università di Palermo

                      Viale delle Scienze - 90128 Palermo
               Tel.: +39 091 489468 - Fax: +39 091 485894

www.ingegneria.unipa.it
 
ingegneria@unipa.it       Come raggiungerci       Home
 


L'Offerta Didattica

--------------------------------
  Corsi di Laurea

Ing. Aereospaziale
Ing. Chimica
Ing. Civile
Ing. Edile
Ing. Elettrica
Ing. Elettronica
Ing. Gestionale
Ing. Informatica
Ing. Meccanica
Ing. Nucleare
Ing. per l'Ambiente ed il Territorio

--------------------------------
  Corsi di Diploma

Ing. dell'Ambiente e delle Risorse
Ing. dell'Automazione
Ing. delle Infrastrutture
Ing. Elettrica(*)
Ing. Meccanica

(*) Attivo dal 1998/99 presso       la sede di Caltanissetta.

--------------------------------
  Dottorati di Ricerca

 

 

FONDAMENTI  DI  INFORMATICA
(Corsi di laurea in Ingegneria Elettronica ed Elettrica)
Prof. Antonio Chella

 

Gli argomenti del corso di Fondamenti di informatica riguardano i principi della programmazione strutturata e delle moderne tecniche di progettazione del software; le principali strutture dati del linguaggio di programmazione C; i principali algoritmi ed i loro campi di utilizzo ed i metodi di confronto e valutazione degli algoritmi. Sono introdotte le moderne tecniche di programmazione orientata agli oggetti in linguaggio C++. Il corso non richiede conoscenze pregresse.

Modalità di esame:
L'esame consiste in una prova scritta di programmazione in linguaggio C/C++ ed in una prova orale.

 

PROGRAMMA DEL CORSO

 

Introduzione - Gli algoritmi, i linguaggi di programmazione, architettura dei sistemi informatici, le applicazioni informatiche, cenni sull'architettura di un calcolatore.

La programmazione - Primi elementi del linguaggio C, codifica degli algoritmi mediante pseudocodice, costruzione incrementale dei programmi.

Introduzione al linguaggio C - Il formalismo BNF per la descrizione della sintassi dei linguaggi, BNF estesa, notazione grafica ed a blocchi, descrizione del linguaggio C mediante BNF, struttura dei programmi C, parte dichiarativa e parte esecutiva.

Tipi di dati - Concetti ed esempi, tipi semplici predefiniti e definiti dall'utente, tipi strutturati, array, puntatori ed aritmetica dei puntatori, il C e la tipizzazione.

Strutture di controllo - Istruzioni di selezione, istruzioni cicliche, struzioni di salto incondizionato e condizionato.

Funzioni e procedure - Definizioni, chiamate e prototipi, passaggio dei parametri per valore e per indirizzo, visibilita' delle variabili, vita delle variabili, effetti collaterali, procedure e funzioni predefinite.

Programmazione ricorsiva - Formulazione ricorsiva di problemi ed algoritmi, esecuzione di sottorpogrammi ricorsivi, gestione a pila della memoria.

Gestione dei files - I files in linguaggio C, gestione degli errori, operazioni di lettura e scrittura formattata, operazioni di lettura e scrittura non formattata, accesso diretto ai files.

Complessita' degli algoritmi - Notazione "Theta-grande", analisi della complessita' degli algoritmi di ricerca ed ordinamento, limiti inferiori alla complessita', problemi intrattabili.

Strutture dati - Gestione dinamica dei dati, produzione di garbage e riferimenti fluttuanti, liste ed algoritmi per la loro gestione, liste circolari e liste bidirezionali, alberi e loro gestione, visita degli alberi in preordine, in ordine ed in postordine, visita in profondita' ed in ampiezza, alberi binari di ricerca, algoritmi di inserimento e cancellazione in alberi binari di ricerca, alberi non binari., grafi, caratteristiche dei grafi, rappresentazione di grafi mediante array, rappresentazione di grafi mediante puntatori, rappresentazioni di grafi mediante plessi, principali applicazioni dei grafi, visita dei grafi in ampiezza ed in profonditˆ, pile e code, aratteristiche delle pile e delle code, rappresentazione di pile e code mediante array, rappresentazione di pile e code mediante puntatori, principali applicazioni delle pile e delle code, tabelle, aratteristiche delle tabelle, modalita' di accesso, gestione delle collisioni.

Tecniche di progetto - Modularizzazione, moduli interfaccia, moduli implementazione. modularizzazione in C, progettazione top-down e bottom-up.

Cenni sul linguaggio C++ - Introduzione, differenze con il linguaggio C, tipi di dati, operatori, strutture di controllo, classi, oggetti, cenni di programmazione orientata agli oggetti.

 

TESTI CONSIGLIATI

S. Ceri, D. Mandrioli, L. Sbattella: "Informatica istituzioni, Linguaggio di riferimento Ansi C", McGraw-Hill Libri Italia, Milano, 1994.
M. Gori, P. Nesi, E. Pasca: "Pascal e C. Guida pratica alla programmazione", McGraw Hill Libri Italia, 1994.

 

TESTO DI CONSULTAZIONE

B. W. Kernighan, D. M. Ritchie: "Linguaggio C. II ed.", Gruppo Editoriale Jackson, Milano, 1989.

 
Indietro
Ultimo aggiornamento pagina: