Attività Didattica
Orario di ricevimento
Martedì-Giovedì 10,00-11,30
(Dipartimento di Informatica 7 piano - Campus Universitario)
Avvisi
Nessun avviso
Materiali didattici
Il Materiale didattico della Prof.ssa Roselli è presente sulla piattaforma ADA al seguente indirizzo: http://informatica2.di.uniba.it/
Corsi attribuiti
Programmazione (corso B) - I Anno- I sem. Laurea Triennale in Informatica
Programma didattico
OBIETTIVI FORMATIVI
L’insegnamento ha lo scopo di fornire i concetti di base della programmazione attraverso l’uso di linguaggi imperativi. Al termine del corso lo studente dovrà essere in grado di analizzare semplici problemi e risolverli progettando e sviluppando programmi utilizzando il linguaggio di programmazione C
CONTENUTI
1.Introduzione
Problem solving: algoritmi e programmi. Specifica di un algoritmo: diagrammi di flusso, albero di decomposizione, linguaggio naturale, pseudocodice. Programmazione strutturata. Teorema di Bohem-Jacopini (enunciato). Il paradigma imperativo. Traduttori.
2.Linguaggi di programmazione: dati e controllo
Tipi di dato. Tipi semplici. Compatibilità tra tipi di dato. Variabili e costanti. Istruzione di assegnazione. Strutture di controllo di base. Astrazione funzionale. Sottoprogrammi: procedure e funzioni. Visibilità degli identificatori. Parametri formali ed effettivi, tecniche di legame dei parametri. Effetti collaterali. Gestione delle attivazioni dei sottoprogrammi. Ricorsione. Tipi strutturati (array, record e file). Puntatori.
3.Metodologie di programmazione
Cenni su programmazione in grande e programmazione in piccolo e sulle
metodologie di progetto top-down e bottom-up.
Progetto di un algoritmo: Albero di scomposizione funzionale, raffinamenti successivi e pseudocodifica. Stile di programmazione. Auto-documentazione dei programmi
4.Algoritmi fondamentali
Algoritmi elementari: conteggio, sommatoria e media di un insieme di numeri, fattoriale, conversione da caratteri a numeri in base 10, numero primo, massimo comun divisore, serie di Fibonacci. Algoritmi su array: ricerca del massimo-minimo, calcolo del valore medio, inversione degli elementi, stampa istogrammi mediante array, eliminazione duplicati su array ordinati. Algoritmi su array multidimensionali. Algoritmi di ordinamento su array: selezione, scambio, inserzione,quick sort, merge sort. Ricerca lineare. Ricerca binaria. Fusione di array. Algoritmi ricorsivi: Fattoriale, Fibonacci. Algoritmi su file.
5.Linguaggio C
Struttura dei programmi C. Tipi di dati: semplici predefiniti –int, float, double e char-, enumerazione esplicita dei valori. Definizione di tipo. Tipi strutturati:
il costruttore array, il costruttore struct ed il costruttore puntatore. Concetti fondamentali su caratteri e stringhe. Compatibilità dei tipi. Strutture di controllo. Istruzioni di selezione: If, Switch; Istruzioni iterative: while, do-while, for. Funzioni e procedure: definizione, chiamata, prototipo, passaggio dei parametri. Ambito di visibilità delle variabili. Array come parametri. Strutture come parametri. Effetti collaterali. Procedure e funzioni predefinite. Standard library. Puntatori. File.
ESONERI O PROVE DI VALUTAZIONE INTERMEDIE CON MODALITÀ DI ESECUZIONE:
E' prevista una prova in itinere esonerante nel periodo di interruzione delle lezioni..
MODALITÀ DI ESECUZIONE DEGLI ESAMI:
prova di laboratorio e orale