PROGRAMMAZIONE AVANZATA

Informatica PROGRAMMAZIONE AVANZATA

0512100047
DIPARTIMENTO DI INFORMATICA
CORSO DI LAUREA
INFORMATICA
2020/2021

ANNO CORSO 3
ANNO ORDINAMENTO 2017
PRIMO SEMESTRE
CFUOREATTIVITÀ
648LEZIONE
Obiettivi
CONOSCENZA E CAPACITÀ DI COMPRENSIONE
LO STUDENTE ACQUISIRÀ LA CONOSCENZA E LA CAPACITÀ DI APPLICARE I PRINCIPALI MODELLI E STRUMENTI PER PROGETTARE E IMPLEMENTARE PROGRAMMI COMPLESSI, CON PARTICOLARE RIFERIMENTO AI PARADIGMI DI OOP E DI PROGRAMMAZIONE FUNZIONALE E ALL'UTILIZZO DEI PRINCIPALI DESIGN PATTERN.
NELLA FASE INIZIALE DEL CORSO, L'OBIETTIVO SARÀ DI FAR COMPRENDERE ALLO STUDENTE LE TECNICHE (AGGIORNATE ALLO STATO DELL'ARTE) NECESSARIE A PROGETTARE UN PROGRAMMA COMPLESSO. NEL PROSIEGUO DEL CORSO LO STUDENTE SARÀ STIMOLATO AD APPLICARE LE CONOSCENZE ACQUISITE ALLA PROGETTAZIONE ED ALLO SVILUPPO DI APPLICAZIONI CON CARATTERISTICHE DI ROBUSTEZZA ED EFFICIENZA.

CAPACITÀ DI APPLICARE CONOSCENZA E COMPRENSIONE
LO STUDENTE ACQUISIRÀ UNA COMPRENSIONE GENERALE DEI COSTRUTTI PIÙ IMPORTANTI DELLA PROGRAMMAZIONE ORIENTATA AGLI OGGETTI E DELLA PROGRAMMAZIONE FUNZIONALE, NONCHÉ DI ALTRI ASPETTI AVANZATI DEL LINGUAGGIO PYTHON, QUALI LA PROGRAMMAZIONE CONCORRENTE E IL NETWORKING. LO STUDENTE IMPARERÀ INOLTRE A INDIVIDUARE NEI DESIGN PATTERN STUDIATI GLI SCHEMI RISOLUTIVI UTILI ALLA SOLUZIONE DI SPECIFICI PROBLEMI LEGATI ALLO SVILUPPO DEL CODICE. LO STUDENTE SARÀ CAPACE DI PROGETTARE E SVILUPPARE PROGRAMMI COMPLESSI CON FUNZIONALITÀ AGGIORNATE ALLO STATO DELL'ARTE E DI VERIFICARNE LA CORRETTEZZA, PORTABILITÀ E MANUTENIBILITÀ.
Prerequisiti
CONOSCENZE DI BASE DI UN LINGUAGGIO DI PROGRAMMAZIONE IMPERATIVO E DI UN LINGUAGGIO ORIENTATO AGLI OGGETTI.
Contenuti
CONCETTI DI BASE DI PYTHON (4 ORE)
PROGRAMMAZIONE ORIENTATA AGLI OGGETTI IN PYTHON (3 ORE)
ECCEZIONI E ASSERZIONI (2 ORE)
PROGRAMMAZIONE FUNZIONALE (5 ORE)
CREATIONAL DESIGN PATTERN (3 ORE)
STRUCTURAL DESIGN PATTERN (4 ORE)
BEHAVIORAL DESIGN PATTERN (6 ORE)
INTROSPECTION (4 ORE)
GENERATORI, COROUTINE (3 ORE)
GESTIONE DELLA MEMORIA, GARBAGE COLLECTION (2 ORE)
INPUT-OUTPUT, SERIALIZZAZIONE (2 ORE)
MULTIPROCESSING (3 ORE)
MULTITHREADING (3 ORE)
NETWORKING (4 ORE)
Metodi Didattici
L'INSEGNAMENTO PREVEDE 48 ORE DI LEZIONI FRONTALI IN CUI SARANNO ESPOSTI CONCETTI DI PROGRAMMAZIONE AVANZATA ANCHE ATTRAVERSO NUMEROSI ESEMPI DI FRAMMENTI DI PROGRAMMI. GLI STUDENTI SARANNO INCORAGGIATI A RISOLVERE ESERCIZI DI PROGRAMMAZIONE UTILIZZANDO LE TECNICHE ILLUSTRATE VIA VIA NEL CORSO SELLE LEZIONI.

Verifica dell'apprendimento
L'ESAME CONSISTE IN UNA PROVA DI PROGRAMMAZIONE E DI UNA DISCUSSIONE ORALE. L'ESAME È FINALIZZATO A VALUTARE IL LIVELLO DI CONOSCENZA E DI COMPRENSIONE DELLE METODOLOGIE DI PROGRAMMAZIONE AFFRONTATE DURANTE IL CORSO. IL VOTO FINALE È DATO DALLA MEDIA DEI VOTI OTTENUTI ALLA PROVA DI PROGRAMMAZIONE E ALLA DISCUSSIONE ORALE.
Testi
MARK LUTZ, "LEARNING PYTHON", O'REILLY, 5TH EDITION.

MARK SUMMERFIELD, “PYTHON IN PRACTICE: CREATE BETTER PROGRAMS USING CONCURRENCY, LIBRARIES, AND PATTERNS ”, ADDISON-WESLEY PROFESSIONAL.

MATERIALE DELLE LEZIONI FORNITO DALLA DOCENTE E MATERIALE TRATTO DA TESTI CHE VERRANNO VIA VIA INDICATI DURANTE LE LEZIONI.
  BETA VERSION Fonte dati ESSE3 [Ultima Sincronizzazione: 2020-11-20]