Vinaora Nivo Slider 3.x

Programmazione

SSD: ING-INF/05
CFU: 9

Insegnamenti propedeutici (se previsti dall'Ordinamento del CdS)

Fondamenti di Informatica

Eventuali prerequisiti

Nessuno

Obiettivi formativi

L'insegnamento si propone di fornire agli studenti le competenze metodologiche, teoriche e pratiche di programmazione procedurale e di programmazione orientata agli oggetti necessarie al corretto sviluppo di progetti software di piccole e medie dimensioni.

Risultati di apprendimento attesi

Conoscenza e capacità di comprensione

Lo studente deve dimostrare di conoscere e saper elaborare i concetti alla base della programmazione modulare e della programmazione orientata agli oggetti. Il percorso formativo intende fornire le conoscenze e gli strumenti che consentiranno agli studenti di sviluppare capacità autonome e sviluppo di semplici applicazioni secondo i paradigmi di programmazione procedurale orientata agli oggetti.

Capacità di applicare conoscenza e comprensione

Lo studente deve dimostrare di saper applicare le competenze acquisite progettando e implementando semplici applicazioni software, utilizzando il linguaggio di programmazione di riferimento (C++) e il linguaggio UML. In particolare deve saper riconoscere e realizzare le relazioni tra classi ed oggetti nel dominio e nel contesto proposto e saper implementare le strutture dati di base (lista, pila, coda).

Programma - Syllabus

  • Aspetti avanzati di programmazione procedurale: Ricorsione; Allocazione dinamica della memoria; Gestione delle eccezioni; Sovraccarico delle funzioni; Funzioni inline.
  • Programmazione modulare: astrazione sui dati e sul controllo, il concetto di modulo, relazioni tra moduli, accoppiamento, information hiding, tecniche e strumenti per la modularizzazione, compilazione separata, l’utility make.
  • Strutture dati, Tipi di dato astratto: Liste, Pile, Code, Algoritmi di ricerca e ordinamento; ADT: Tipi di dato astratto.
  • Programmazione orientata agli oggetti: Il paradigma OO; Classi e Oggetti; Ereditarietà; Polimorfismo.
  • La programmazione orientata agli oggetti e la programmazione generica in C++: Classi, oggetti, costruttori e distruttori; Operatori e sovraccarico degli operatori; Conversioni di Tipo; Ereditarietà ed ereditarietà multipla; La gerarchia per le operazioni di ’I/O e uso delle librerie standard; Polimorfismo, classi Astratte; altri meccanismi di incapsulamento (namespace).
  • Programmazione generica: Template, funzioni e classi modello, presentazione della Standard Template Library
  • Progettazione e linguaggio UML: Progettazione del software (cenni); Fasi della Progettazione Orientata agli Oggetti; Il linguaggio UML nella progettazione O.O.; da UML a C++.

Materiale didattici

Si veda sito web del docente della materia

Modalità di svolgimento dell'insegnamento

Lezioni frontali (50%), esercitazioni (25%) e attività di laboratorio (25%).

Verifica di apprendimento e criteri di valutazione

Modalità di esame

L'esame si articola in prova scritta e orale. I quesiti sono esercizi di programmazione

 

Utilizziamo i cookie sul nostro sito Web. Alcuni di essi sono essenziali per il funzionamento del sito, mentre altri ci aiutano a migliorare questo sito e l'esperienza dell'utente (cookie di tracciamento). Puoi decidere tu stesso se consentire o meno i cookie. Ti preghiamo di notare che se li rifiuti, potresti non essere in grado di utilizzare tutte le funzionalità del sito.