Università degli Studi di Napoli "Parthenope"

Scheda dell'insegnamento

Anno accademico: 
2020/2021
Tipologia di insegnamento: 
Caratterizzante
Tipo di attività: 
Obbligatorio
Corso di afferenza: 
Corso di Laurea triennale (DM 270) in INGEGNERIA INFORMATICA, BIOMEDICA E DELLE TELECOMUNICAZIONI
Sede: 
Napoli
Settore disciplinare: 
SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI (ING-INF/05)
Lingua: 
Italiano
Crediti: 
15
Anno di corso: 
1
Docenti: 
MAZZEO GIOVANNI
Ciclo: 
Annualita' Singola
Ore di attivita' frontale: 
120

Obiettivi

Fornire agli allievi le conoscenze di metodologie di progetto software orientate agli oggetti e di tecniche di programmazione necessarie alla realizzazione di semplici applicazioni C++ in ambiente Linux.
Conoscenza e Capacità di comprensione: Elementi di programmazione orientata agli oggetti
Capacità Applicative: capacità di sviluppare programmi in linguaggio C/C++
Autonomia di Giudizio: Valutazione della efficienza ed efficacia di una metodologia o di un algoritmo
Abilità nella Comunicazione: capacità di esprimere chiaramente concetti tecnici.
Capacità di Apprendere: saper integrare le conoscenze da varie fonti al fine di un approfondimento della conoscenza degli argomenti di interesse.

Prerequisiti

E’ utile una buona dimestichezza con i principali Sistemi Operativi (Windows, Linux)

Contenuti

Gli argomenti trattati possono essere raggruppati come segue:
1- Fondamenti di Informatica [2 CFU – ore 16]: Organizzazione di un calcolatore; codifica dell'informazione; il sistema operativo: introduzione a linux; algoritmi, programmi e processi.
2 - Concetti di base della programmazione procedurale [4 CFU – ore 32]: Ciclo di sviluppo del codice; i costrutti base del C/C++; le funzioni; algoritmi di ordinamento e ricerca; la complessità computazionale.
3 - Concetti di base della programmazione ad oggetti [4 CFU – ore 32]: Classi; Oggetti; Costruttori e Distruttori; Ereditarietà.
4 – Funzioni avanzate della programmazione ad oggetti e gestione di grandi progetti [5 CFU – ore 40]: Classi astratte; Polimorfismo; Template; Versioning; IDE.

Metodi didattici

Lezioni frontali, esercitazioni guidate in laboratorio, homework assegnati dal docente e da sviluppare in gruppo.

Il corso può essere seguito in presenza o in teledidattica mediante il canale Teams codice 6ldje1z

Verifica dell'apprendimento

Sono previste due prove di esonero intermedie e una discussione finale. Le prove intermedie consisteranno in un test di programmazione rispettivamente su: programmazione funzionale e programmazione ad oggetti.

Le prove di esonero intermedie sono organizzate su circa 9-10 domande. Di queste domande due/tre sono domande sulla parte teorica riferite del periodo del corso analizzato, le rimanenti sono domande di programmazione. Durante la prova non sarà possibile utilizzare materiale da consultare né sarà possibile utilizzare compilatori ed ambienti diversi da quelli resi disponibili tra le risorse della prova. Le risorse rese disponibili saranno: accesso al sito www.cplusplus.com (per la documentazione del linguaggio), accesso ad un ambiente web di compilazione (per testare le risposte che prevedono l'uso di codice). Rispondere ad alcune domande potrebbe richiedere la scrittura di piccoli programmi, per questo motivo è indispensabile l'esercizio pratico della programmazione prima di procedere a sostenere le prove di esonero.

La prova finale consisterà in una prova pratica, opzionale per chi ha sostenuto le prove intermedie, e nella discussione di un progetto sviluppato in autonomia dal candidato e concordato con il docente.

La prova pratica consta di circa 15 domande di cui una a risposta aperta (consistente nello sviluppo e/o completamento di un piccolo programma in C++) e le rimanenti a risposta multipla simili a quelle delle prove intermedie.

Tutte le prove pratiche sono mirate a verificare l'acquisizione dei concetti base della programmazione strutturata e ad oggetti e la capacità di mettere in pratica tali conoscenze. La dimostrazione di tali competenze è indispensabile per il superamento dell'esame. La prova orale sarà invece mirata a comprendere la capacità di esprimere in maniera adeguata e con la dovuta chiarezza, le conoscenze inerenti la programmazione.

Testi

Bjarne Stroustrup, “The C++ Programming Language” - Third Edition, AddisonWesley, 1997, ISBN: 0201889544 (o equivalente edizione in lingua italiana).
Suggeriti:
J. Dent, T. Gaddis, “Guida a Unix con Linux”, Apogeo, 2001, ISBN: 88-7303-694-5
Thinking in C++ ed. 2, vol. 1 e vol. 2, Bruce Eckel, disponibile online per download

Altre informazioni

Le lezioni sono tenute in italiano. Il libro di testo è disponibile sia in inglese che in italiano, così come la gran parte del material didattico di supporto. Il docente è disponibile ad interagire con gli studenti in inglese e anche a consentire loro di sostenere l’esame in inglese. Il ricevimento studenti è il Venerdì mattina dalle 12:00 alle 14:00 presso lo studio del docente o sul canale teams del corso. Ulteriori occasioni di incontro potranno essere richieste ai docenti a mezzo mail.

Il corso può essere seguito in presenza o in teledidattica mediante il canale Teams codice ngaounn

Il materiale didattico, la registrazione delle lezioni, esercizi supplementari, test di autovalutazione e altro, è disponibile sul sito del corso accedendo dalla piattaforma di elearning di Ateneo (elearning.uniparthenope.it )