Programmazione avanzata

A.A. 2022/2023
6
Crediti massimi
48
Ore totali
SSD
INF/01
Lingua
Italiano
Learning objectives
L'insegnamento ha l'obiettivo di esporre gli studenti ad alcune tecniche e costrutti avanzati di programmazione, di dimostrarne l'applicazione nella soluzione di specifici problemi e di stimolare e migliorare il proprio pensiero critico quando applicato nella risoluzione di problemi anche complessi.
Expected learning outcomes
Lo studente dovrà essere in grado di applicare le tecniche e i concetti presentati nell'insegnamento nella risoluzione di problemi complessi. Lo studente inoltre dovrà essere in grado di scegliere la soluzione e la tecnica migliore da applicare tra quelle studiate, dovrà essere in grado di realizzare la soluzione individuata e di argomentare le scelte fatte.
Corso singolo

Questo insegnamento non può essere seguito come corso singolo. Puoi trovare gli insegnamenti disponibili consultando il catalogo corsi singoli.

Course syllabus and organization

Edizione unica

Responsabile
Periodo
Primo semestre

Programma
Comprehensions, Map/Filter and Reduce
Closures, Continuations and Lazy Evaluation (Generators)
Type Inference and Type Systems
Dynamic e Duck Typing
Object-Based vs Object Oriented Language
Late binding versus Duck typing
Iterators
Test Driven Development
Generative programming
Decorators e Metaclasses
Prerequisiti
Saper scrivere e debuggare programmi che usano i costrutti base di programmazione. Avere conoscenze di problem solving. Conoscere e sapere usare con profitto almeno un linguaggio di programmazione.

È consigliabile avere conseguito almeno un insegnamento di programmazione nella laurea triennale ed uno su algoritmi e strutture dati.
Metodi didattici
Lezioni Frontali ed alcune esercitazioni in preparazione dell'esame.
Materiale di riferimento
Web site:
- https://cazzola.di.unimi.it/pa.html
- http://wcazzolapa.ariel.ctu.unimi.it

Libri suggeriti
- Jennifer Campbell, Paul Gries, Jason Montojo, and Greg Wilson. Practical Programming: An Introduction to Computer Science Using Python. The Pragmatic
Bookshelf, second edition, 2009.
- Mark Lutz. Learning Python. O'Reilly, third edition, November 2007.
- Mark Pilgrim. Dive into Python 3. Apress*, 2009.
I primi due per gli studenti che necessitano imparare Python o rafforzare le proprie conoscienze di programmazione di base. L'ultimo è il testo di riferimento dell'insegnamento.
Modalità di verifica dell’apprendimento e criteri di valutazione
L'esame è scritto (al calcolatore) e durerà quattro ore. Ogni appello propone due esercizi che testeranno le capacità di programmazione e problem solving acquisite dagli studenti durante l'insegnamento.
INF/01 - INFORMATICA - CFU: 6
Lezioni: 48 ore
Docente: Cazzola Walter
Professor(s)