ADVANCED PROGRAMMING

Computer science ADVANCED PROGRAMMING

0512100047
COMPUTER SCIENCE
EQF6
COMPUTER SCIENCE
2022/2023

YEAR OF COURSE 3
YEAR OF DIDACTIC SYSTEM 2017
AUTUMN SEMESTER
CFUHOURSACTIVITY
648LESSONS
Objectives
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À.
Prerequisites
CONOSCENZE DI BASE DI UN LINGUAGGIO DI PROGRAMMAZIONE IMPERATIVO E DI UN LINGUAGGIO ORIENTATO AGLI OGGETTI.
Contents
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)
Teaching Methods
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.

Verification of learning
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.
Texts
MARK LUTZ, "LEARNING PYTHON", O'REILLY, 5TH EDITION.

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

ULTERIORE MATERIALE PER APPROFONDIRE GLI ARGOMENTI DEL CORSO E SUPPORTI NECESSARI PER LA PREPARAZIONE ALLA PROVA DI VERIFICA POTRANNO ESSERE FORNITI TRAMITE LE PAGINA WEB DELLA DOCENTE.
  BETA VERSION Data source ESSE3 [Ultima Sincronizzazione: 2022-09-16]