Seleziona l'Anno Accademico:     2015/2016 2016/2017 2017/2018 2018/2019 2019/2020 2020/2021
Docente
AMBRA DEMONTIS (Tit.)
Periodo
Secondo Semestre 
Modalità d'Erogazione
Convenzionale 
Lingua Insegnamento
ITALIANO 



Informazioni aggiuntive

Corso Percorso CFU Durata(h)
[70/89]  INGEGNERIA ELETTRICA, ELETTRONICA E INFORMATICA [89/30 - Ord. 2016]  INFORMATICA 5 50
[70/89]  INGEGNERIA ELETTRICA, ELETTRONICA E INFORMATICA [89/66 - Ord. 2016]  INFORMATICA ON LINE E IN PRESENZA (BLENDED) 5 50

Obiettivi

II corso ha due principali obbiettivi. Il primo è quello di fornire all'allievo la conoscenza dei concetti riguardanti la programmazione orientata agli oggetti. Il secondo, è quello di rendere l’allievo in grado di sfruttare i vantaggi di questo paradigma di programmazione nella progettazione e implementazione di programmi in linguaggio Python.

Descrittori di Dublino

Conoscenza e capacità di comprensione: lo studente avrà una buona conoscenza e comprensione dei concetti riguardanti la programmazione orientati agli oggetti.

Capacità di applicare la conoscenza e capacità di comprensione: lo studente sarà in grado di applicare le conoscenze riguardo ai linguaggi di programmazione orientati agli oggetti apprese per prototipare e implementare programmi utilizzando il linguaggio di programmazione Python. Lo studente sarà in oltre in grado di comprendere prototipi e programmi realizzati da terzi.

Autonomia di giudizio: grazie alle conoscenze apprese, lo studente sarà in grado di valutare i pro e i contro di un prototipo o di una implementazione nel linguaggio Python di un programma facente uso di tecniche di programmazione orientate agli oggetti.

Abilità comunicative: lo studente sarà in grado di dialogare con interlocutori con adeguate conoscenze tecniche riguardo i contenuti del corso e di trasmettere gli stessi anche ad interlocutori non tecnicamente competenti.

Capacità di apprendere autonomamente: lo studente sarà in grado di apprendere nuovi linguaggi di programmazione orientati agli oggetti, applicando con flessibilità i concetti illustrati nel corso.

Prerequisiti

La conoscenza di almeno un linguaggio di programmazione procedurale-imperativo (C, Pascal o altri).

Contenuti

1. Generalità sulla programmazione ad oggetti:
Definizione di oggetto, classe, attributo e metodo. Concetti base: incapsulamento, composizione, ereditarietà.
Metodi di rappresentazione degli oggetti: diagrammi di classe redatti nel linguaggio di modellizzazione unificato (UML).

2. Panoramica del linguaggio Python:
Introduzione del linguaggio, tipi di dato, operatori booleani, strutture condizionali, cicli, funzioni, strutture dati.

3. Gli oggetti in Python:
Creazione di classi e inizializzazione degli oggetti.

4. I moduli:
Utilizzare moduli predefiniti e organizzare il codice mediante la creazione di nuovi moduli.

5. Ereditarietà:
Utilizzo dell’ereditarietà singola in Python. Concetti avanzati: ereditarietà multipla, polimorfismo.

6. Gestione delle eccezioni:
Sollevamento e gestione di eccezioni. Definire nuove eccezioni estendendo la classe eccezione.

7. Le strutture dati Python:
Le caratteristiche degli oggetti di tipo tupla, lista, dizionario.

8. Funzioni:
Le caratteristiche di alcuni oggetti predefiniti di tipo funzione.

8. Input/output:
Le caratteristiche degli oggetti di tipo file.

9. Stringhe e serializzazione:
Le caratteristiche degli oggetti di tipo stringa, le espressioni regolari e la serializzazione degli oggetti utilizzando il modulo pickle.

10. Iteratori:
Le caratteristiche degli oggetti di tipo iteratore.

11. Librerie per la visualizzazione scientifica:
La libreria matplotlib.

Metodi Didattici

Il corso prevede sia lezioni frontali che esercitazioni su tutti gli argomenti del programma (esercizi illustrati dal docente in aula e esercitazioni interattive proposte dal tutor del corso).

A causa della situazione epidemiologica, le lezioni potrebbero essere offerte in diretta streaming o registrate e le esercitazioni potrebbero essere svolte mediante forme di interazione a distanza con i supporti informatici disponibili.

Il corso è organizzato in:
35 ore di lezioni frontali
15 ore di esercizi
17 ore di tutorato

Verifica dell'apprendimento

La verifica di apprendimento viene effettuata tramite una prova scritta, comprendente quesiti di teoria riguardanti la programmazione orientata agli oggetti ed esercizi da svolgere utilizzando il linguaggio di programmazione Python.
Ove la situazione epidemiologica lo richiedesse, la verifica di apprendimento potrebbe essere svolta online, mediante una prova fiduciaria e un successivo orale conclusivo.
Il voto finale è in trentesimi e dipende dalla qualità dell'elaborato prodotto dallo studente.
Per consentire di ottenere la lode il punteggio complessivo della prova scritta è 33. La lode viene conseguita con un punteggio uguale o superiore a 32. In caso di punteggio uguale a 31, viene assegnato il punteggio di 30/30.
Il numero di appelli è definito in accordo con il regolamento di Facoltà.

Testi

D. Phillips, Python 3 Object-Oriented Programming: Build robust and maintainable software with object-oriented design patterns in Python 3.8, Packt, 2018 (III edizione).

Altre Informazioni

Tutto il materiale, comprendente le dispense del corso ed esercizi svolti, verrà reso disponibile sul sito web del corso: https://unica-lpo.github.io.

Questionario e social

Condividi su: