FONDAMENTI DI INFORMATICA + LABORATORIO DI PROGRAMMAZIONE (2° MODULO)
cod. 1004158

Anno accademico 2014/15
1° anno di corso - Primo semestre
Docente
Michele TOMAIUOLO
Settore scientifico disciplinare
Sistemi di elaborazione delle informazioni (ING-INF/05)
Ambito
Abilità informatiche e telematiche
Tipologia attività formativa
Altro
21 ore
di attività frontali
3 crediti
sede: PARMA
insegnamento
in - - -

Modulo dell'insegnamento integrato: FONDAMENTI DI INFORMATICA + LABORATORIO DI PROGRAMMAZIONE

Obiettivi formativi

L’obiettivo del corso è fornire allo studente la capacità di comprendere i principi dell'informatica e della programmazione:
* Rappresentazione dei dati
* Computazione, linguaggi e macchine astratte
* Architettura dei sistemi di elaborazione
* Paradigma di programmazione ad oggetti
* Introduzione all'ingegneria del software

Le capacità di applicare le conoscenze elencate riguardano lo sviluppo del cosiddetto "pensiero computazionale":
* Scomposizione di problemi complessi
* Soluzione di problemi tramite ricorsione
* Composizione di oggetti in sistemi complessi
* Modellazione con diversi livelli di astrazione

Prerequisiti

Nessuna propedeuticità. Si suppone comunque che lo studente conosca le basi dell'uso del computer e di Internet - l'equivalente dei moduli 1, 2, 3 e 7 del Syllabus ECDL (European Computer Driving Licence).

Contenuti dell'insegnamento

2. Introduzione all'informatica
2.1. Rappresentazione dei dati
2.2. Concetto di computazione
2.3. Sistemi di elaborazione
2.4. Sviluppo del software

Programma esteso

2. Introduzione all'informatica (24 ore, in aula)
2.1. Rappresentazione dei dati
2.1.1. Numeri in complemento a due ed in virgola mobile, algebra booleana
2.1.2. Rappresentazione del testo, codifica ASCII ed Unicode
2.1.3. Documenti strutturati ed HTML
2.1.4. Rappresentazione di immagini e suoni
2.2. Concetto di computazione
2.2.1. Automi a stati finiti
2.2.2. Espressioni regolari
2.2.3. Macchina di Touring, architettura di von Neumann
2.2.4. Linguaggi e paradigmi di programmazione
2.2.5. Complessità computazionale, algoritmi di ricerca e di ordinamento
2.3. Sistemi di elaborazione
2.3.1. Architettura dei calcolatori
2.3.2. Sistemi operativi
2.3.3. Sistemi informativi e basi di dati
2.3.4. Reti di calcolatori e World Wide Web
2.4. Sviluppo del software
2.4.1. Metodologie di sviluppo e qualità del software
2.4.2. Contratti
2.4.3. Collaudo
2.4.4. Gestione delle versioni

Bibliografia

* P. Wentworth, J. Elkner, A.B. Downey, C. Meyers. How to Think Like a Computer Scientist. http://openbookproject.net/thinkcs/
* B. Stroustrup. Programming: Principles and Practice Using C++. Addison-Wesley (2009). 978-0321543721
* B. Eckel. Thinking in C++. Prentice-Hall (2000)
* D. Mandrioli, S. Ceri et al. Informatica arte e mestiere. McGraw-Hill (2008)

Metodi didattici

Lezioni in aula, con l'ausilio di slide rese disponibili in anticipo agli studenti. Soluzione guidata di esercizi in aula. Esercizi di programmazione in laboratorio.

Le esercitazioni in laboratorio sono centrali per il corso. Gli esercizi proposti vertono sugli stessi argomenti generali delle lezioni in aula. L'obiettivo è di introdurre i principi della programmazione orientata agli oggetti, guidando lo studente alla soluzione di problemi con un livello di complessità crescente.

Modalità verifica apprendimento

L'esame consiste di una prova sui fondamenti dell'informatica (brevi esercizi e quiz, a cui rispondere in circa mezz'ora), una prova di programmazione (un programma ad oggetti, da sviluppare in laboratorio in circa 3 ore) e un colloquio. La partecipazione continua e particolarmente proficua alle esercitazioni potrebbe esonerare dalla prova di programmazione finale.

Altre informazioni

Testi alternativi
* J.C. Lusth. The Art and Craft of Programming. http://beastie.cs.ua.edu/cs150/book/
* A. Koenig, B.E. Moo. Accelerated C++: Practical Programming by Example. Addison-Wesley (2000)
* E. Clementini. Fondamenti di Informatica – Programmazione strutturata in C++. Carocci (2006)
* H. Schildt. C++: A Beginner's Guide. McGraw-Hill (2003)
* S. Prata. C++ Primer Plus. Addison-Wesley (2011)
* L.J. Aguilar. Fondamenti di programmazione in C++. McGraw-Hill (2008)
* B. Eckel. Thinking in C++, vol. 2. Prentice-Hall (2003). 978-0131225527
* M. Dawson. Beginning C++ Through Game Programming. Course Technology (3rd ed., 2010). 978-1435457423
* M. Dawson. Python Programming for the Absolute Beginner. Course Technology (3rd ed., 2010). 978-1435455009
* J. Blanchette, M. Summerfield. C++ GUI Programming with Qt 4. Prentice Hall (2nd ed., 2008). 978-0132354165
* A. Lorenzi, V. Moriggia. Programmazione ad oggetti e linguaggio C++. Atlas (2004). 978-8826811956. (Testo per le scuole medie superiori)
* J.G. Brookshear. Informatica. Una panoramica generale. Pearson (2012)
* U. Avalle, L. Console, M. Ribaudo. Introduzione all'informatica. UTET (2010)

Obiettivi agenda 2030 per lo sviluppo sostenibile

- - -

Referenti e contatti

Numero verde

800 904 084

Segreteria studenti

E. segreteria.ingarc@unipr.it

Servizio per la qualità della didattica

Manager della didattica:
Elena Roncai
T. +39 0521033663
E. servizio dia.didattica@unipr.it 
E. del manager elena.roncai@unipr.it

Presidente del corso di studio

Gianluigi Ferrari
E. gianluigi.ferrari@unipr.it

Delegato orientamento in ingresso

Giovanna Sozzi
E. giovanna.sozzi@unipr.it

Delegato orientamento in uscita

Guido Matrella
E. guido.matrella@unipr.it

Docenti tutor

Boni Andrea
E. andrea.boni@unipr.it
Caselli Stefano
E. stefano.caselli@unipr.it
Cucinotta Annamaria
E. annamaria.cucinotta@unipr.it
Nicola Delmonte
E. nicola.delmonte@unipr.it
Mucci Domenico
E. domenico.mucci@unipr.it
Saracco Alberto
E. alberto.saracco@unipr.it
Ugolini Alessandro
E. alessandro.ugolini@unipr.it
Vannucci Armando
E. armando.vannucci@unipr.it

Delegati Erasmus

Paolo Cova
E. paolo.cova@unipr.it
Corrado Guarino
E. corrado.guarinolobianco@unipr.it
Walter Belardi
E. walter.belardi@unipr.it

Referente assicurazione qualità

Massimo Bertozzi
E. massimo.bertozzi@unipr.it

Studenti tutor

SPAGGIARI Davide E. davide.spaggiari@unipr.it
MUSETTI Alex E. alex.musetti@unipr.it
BERNUZZI Vittorio E. vittorio.bernuzzi1@studenti.unipr.it
NKEMBI Armel Asongu E. armelasongu.nkembi@unipr.it
BASSANI Marco E. marco.bassani@unipr.it
ZANIBONI Thomas E. thomas.zaniboni@unipr.it
BOCCACCINI Riccardo E. riccardo.boccaccini@unipr.it
MORINI Marco E. marco.morini@unipr.it
SHOZIB Md Sazzadul Islam E. mdsazzadulislam.shozib@studenti.unipr.it