FONDAMENTI DI PROGRAMMAZIONE A
cod. 1000747

Anno accademico 2015/16
1° anno di corso - Primo semestre
Docente
Settore scientifico disciplinare
Informatica (INF/01)
Field
Formazione informatica
Tipologia attività formativa
Base
48 ore
di attività frontali
6 crediti
sede: PARMA
insegnamento
in - - -

Obiettivi formativi

Un obiettivo del corso è quello di far acquisire allo studente le
conoscenze di base per la progettazione e la realizzazione di semplici
programmi scritti in un linguaggio di programmazione convenzionale. In
particolare lo studente acquisirà conoscenze approfondite sugli strumenti
di programmazione messi a disposizione dal sottoinsieme del linguaggio
C++ relativo alla programmazione imperativa.
Il corso mira anche a fornire allo studente la capacità di applicare le
tecniche di analisi dei problemi e le conoscenze sugli strumenti di
programmazione acquisite, per risolvere in modo algoritmico semplici
problemi pratici (quali, ad esempio, problemi di calcolo matematico, di
ordinamento di dati, di gestione di archivi) e quindi tradurre tali soluzioni
in programmi eseguibili tramite calcolatore.
Infine il corso mira a sviluppare nello studente, più generali capacità di
analisi, di astrazione (intesa principalmente come capacità di descrivere
e comprendere un'entità in termini delle funzioni offerte piuttosto che dei
dettagli della sua implementazione), di scomposizione di problemi in
sottoproblemi, e di sviluppo di soluzioni “dall'alto al basso” (“top.down”)
e per raffinamenti successivi.

Prerequisiti

Nozioni di base su funzioni e insiemi e su connettivi ed espressioni
logiche.
Nozioni di base su organizzazione fisica di un calcolatore e sulla
rappresentazione dell'informazione.

Contenuti dell'insegnamento

Il corso introduce i fondamenti della programmazione imperativa,
utilizzando come linguaggio di programmazione di riferimento il
frammento imperativo del C++.
In particolare, nella prima parte del corso vengono introdotte nozioni
fondamentali per la programmazione quali quelle di algoritmo,
diagramma di flusso, variabili, tipi di dato semplici e strutturati,
espressioni e statement per il controllo di sequenza.
Nella seconda parte del corso si affronta lo sviluppo di programmi più
complessi, introducendo, da una parte, la nozione di sottoprogramma e
altre nozioni a questa collegate, come funzioni ricorsive e regole di
scope, dall'altra altre forme di gestione dei dati, come l'input/output da
file e la manipolazione di strutture dati dinamiche con puntatori.
Per entrambe le parti viene mostrata la realizz

Programma esteso

- - -

Bibliografia

- L.J. Aguilar. Fondamenti di programmazione in C++ , McGraw-Hill, 2008.
- R. Miller, D. Clark, B. White, e W. Knottenbel: An Introduction to the
Imperative Part of C++, 1999, disponibile su WEB all'indirizzo http:
//www.doc.ic.ac.uk/~wjk/C++Intro/CourseStructure.html#S
- Dispense del corso, disponibili su WEB all'indirizzo http://people.math.
unipr.it/gianfranco.rossi/Teaching/FondProgr/index.html
- Programmi C++ mostrati a lezione e in laboratorio, disponibili su Web
agli indirizzi http://people.math.unipr.it/gianfranco.
rossi/Teaching/FondProgr/EsempiLezione/index.html e http://lea.unipr.
it/course/view.php?id=324

Metodi didattici

Il corso prevede una sua pagina Web per tutte le informazioni generali,
gestita direttamente dal docente (http://people.math.unipr.it/gianfranco.
rossi/Teaching/FondProgr/index.html) e una pagina sul sistema dii Web
Learning dell'Ateneo per la gestione delle esercitazioni (http://lea.unipr.
it/course/view.php?id=324)

Modalità verifica apprendimento

L'esame finale del corso e' costituito da una prova scritta ed una prova
orale.
La prova scritta consiste nella soluzione (su carta) di alcuni esercizi di
programmazione, utilizzando il frammento imperativo del linguaggio C++
presentato nel corso.
La prove orale consiste in alcune domande (di norma tre) sugli aspetti più
di base e generali trattati nell'intero corso.
Per gli studenti del Corso di Laurea in Informatica la prova d'esame è
integrata con quella del corso di Fondamenti di Programmazione B, che
prevede una prova pratica ed una prova orale. La prova pratica consiste
nella soluzione (su PC, nell'Aula Informatica del Dipartimento di
Matematica e Informatica) di alcuni esercizi di programmazione,
utilizzando le possibilità "Object-Oriented" del C++ presentate nel corso
di Fondamenti di Programmazione B.
Ad ognuna delle prove (scritta, pratica e orali) è assegnato un voto in
trentesimi. Le prove sono ritenute superate se il voto è maggiore od
uguale a 15/30. L'esame è superato se sono superate tutte le prove da
cui è costituito e il voto finale è maggiore od uguale a 18/30. Il voto finale
è ottenuto come media pesata dei voti riportati nelle singole prove. La
prova scritta "pesa" il doppio delle altre prove. 

Altre informazioni

Il corso prevede una sua pagina Web per tutte le informazioni generali,
gestita direttamente dal docente (http://people.math.unipr.it/gianfranco.
rossi/Teaching/FondProgr/index.html) e una pagina sul sistema dii Web
Learning dell'Ateneo per la gestione delle esercitazioni (http://lea.unipr.
it/course/view.php?id=324)