FONDAMENTI DI INFORMATICA + LABORATORIO DI PROGRAMMAZIONE (1° MODULO)
cod. 1004157

Anno accademico 2018/19
1° anno di corso - Primo semestre
Docente
Michele TOMAIUOLO
Settore scientifico disciplinare
Sistemi di elaborazione delle informazioni (ING-INF/05)
Ambito
A scelta dello studente
Tipologia attività formativa
A scelta dello studente
48 ore
di attività frontali
6 crediti
sede:
insegnamento
in ITALIANO

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

1. Introduzione alla programmazione
1.1. Programmazione strutturata
1.2. Collezioni e flussi di dati
1.3. Funzioni e ricorsione
1.4. Oggetti e astrazioni
1.5. Interfacce grafiche

Programma esteso

1. Introduzione alla programmazione (24 ore, in aula + 24 ore, in lab)
1.1. Programmazione strutturata
1.1.1. Struttura di un programma
1.1.2. Variabili e tipi, espressioni
1.1.3. Condizioni
1.1.4. Cicli
1.1.5. Annidamento
1.2. Collezioni e flussi di dati
1.2.1. Vettori
1.2.2. Matrici
1.2.3. Mappe
1.2.4. Operazioni di I/O su console e file
1.3. Funzioni e ricorsione
1.3.1. Passaggio dei parametri
1.3.2. Ambito delle variabili
1.3.3. Stack e record di attivazione
1.3.4. Ricorsione
1.4. Oggetti e astrazione
1.4.1. Incapsulamento
1.4.2. Composizione
1.4.3. Allocazione dinamica
1.4.4. Ereditarietà e polimorfismo
1.4.5. Principio di sostituibilità
1.5. Interfacce grafiche
1.5.1. Elementi di base
1.5.2. Disposizione degli elementi
1.5.3. Segnali ed eventi
1.5.4. Animazioni

Bibliografia

- Fondamenti di informatica e lab. (A.A. 2014-2015). McGraw-Hill custom publishing. ISBN 978-13-082-4813-4 (25€, nelle librerie universitarie )
- A.B. Downey et al.: How to Think Like a Computer Scientist: Learning with Python 3, 3rd Edition - http://openbookproject.net/thinkcs/
- M. Beri: Python, Apogeo Pocket, 2010, 978-8850329151 (~8€)
- C. S. Horstmann: Fondamenti di C++, McGraw-Hill Education, 2003, 978-8838661051 (~43€, 768pp.)

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 mezz'ora), una prova di programmazione (un programma ad oggetti, da sviluppare in laboratorio in 3 ore) e un colloquio. La partecipazione continua e particolarmente proficua alle esercitazioni potrebbe esonerare dalla prova di programmazione finale.

Altre informazioni

Testi alternativi
- M. Dawson: Python Programming for the Absolute Beginner, Course Technology, 2010, 978-1435455009 (~21€, 450pp.)
- K. A. Lambert: Programmazione in Python, Apogeo, 2012, 978-8838786990 (~29€, 384pp.)
- MIT: Introduction to CS and Programming - Video delle lezioni, Pyhton 2 - http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/
- M. Dawson: Beginning C++ Through Game Programming, Course Technology, 2010, 978-1435457423 (~25€, 430pp.)
- A. Lorenzi, V. Moriggia: Programmazione ad oggetti e linguaggio C++, Atlas, 2004, 978-8826811956 - Testo per le superiori (~12€, 380pp.)
- S.B. Lippman, J. Lajoie, B.E. Moo: C++ Primer, Addison Wesley, 2012, 978-0321714114 (~36€, 940pp.)

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: 
Lucia Orlandini
T.+39 0521 906542
E. servizio disti.didattica@unipr.it
E. del manager lucia.orlandini@unipr.it

 

Presidente del corso di studio

Francesco Zammori
E. francesco.zammori@unipr.it

Delegato orientamento in ingresso

Giovanni Romagnoli
E. giovanni.romagnoli@unipr.it

Delegato orientamento in uscita

Giovanni Romagnoli
E. giovanni.romagnoli@unipr.it

Docenti tutor

Giovanni Romagnoli
E. giovanni.romagnoli@unipr.it

Delegati Erasmus

Roberto Montanari
E. roberto.montanari@unipr.it
Fabrizio Moroni
E. fabrizio.moroni@unipr.it
Adrian Hugh Alexander Lutey
E. adrianhughalexander.lutey@unipr.it

Responsabile assicurazione qualità

Francesco Zammori
E. francesco.zammori@unipr.it

Studenti tutor