Programmazione a Oggetti

dott. Ivano Salvo
anno accademico 2007/08

Object Subject
Luca Cardelli, 1995

Ultima modifica: 13 dicembre 2007


Introduzione

Il corso di Programmazione ad Oggetti vengono introdotti i concetti chiave della programmazione ad oggetti,
poi applicati a specifici linguaggi di programmazione (Smalltalk, Java, C++).
Sarà dato ampio spazio alle nozioni di classe, oggetto, ereditarietà, incapsulamento, scambio messaggi, polimorfismo e
come queste nozioni possano aiutare a produrre software elegante, estensibile, riusabile.

Scopo del corso è quello di analizzare i principi base della programmazione ad oggetti,
inseriti nel contesto dell'evoluzione dei linguaggi di programmazione,
e quindi analizzare quali obiettivi persegue e come li raggiunge.
Si cercherà di stimolare non solo l'apprendimento di linguaggi e concetti,
ma di stimolare la concettualizzazione dei problemi seguendo la metodologia Object-Oriented.


Programma del corso


Materiale e testi di consultazione


Homework

Quest'anno saranno assegnati 6-8 homework, ciascuno studiato per stimolare la riflessione su uno o più argomenti visti a lezione.
E' preferita la consegna in forma cartacea durante la lezione che si svolge in corrispondenza della data di consegna. Chi fosse impossibilitato, può inviarlo via mail al docente, indicando [PROGOGG] nel subject della mail.

Esame Scritto

Ecco finalmente i risultati dello scritto.

Letture consigliate:


Compilatori e tool software

Un buon compilatore Smalltalk da scaricare può essere la versione non commerciale di Visual Works, reperibile sul sito della Cincom . Basta scaricare la virtual machine per la vostra architettura e il pacchetto base di classi.
Se siete utenti Linux o Windows, potete anche scaricare il compilatore exept .

Esonero

C'è stata una prova intermedia, giovedì 15 novembre 2007
La prova ha attribuito i seguenti bonus riportati nella tabella dei risultati.
Come sempre, interessante la distribuzione distribuzione spaziale dei voti.

Nota: Alcuni si troveranno con un risultato che differisce di 1 punto rispetto a quello calcolato in aula: ciò è dovuto a un'errata valutazione della domanda 23, la cui risposta esatta è la (c) e non la (a) come detto in aula.

Spero che ognuno di voi, aldilà dei bonus, abbia fatto una serena autovalutazione della propria preparazione.
A breve la pubblicazione delle soluzioni commentate

Ecco i test degli anni precedenti: i curiosi potranno concedersi un piacevole detour nel mondo dei Reality TV, o in quello dei Fumetti.

Abbastanza istruttive, a mio modo di vedere, le soluzioni commentate, che vi sveleranno i segreti di Pupe e Secchioni e di Paperi e Xman.

Progetto

Ecco finalmente il testo del progetto: Scacchi in Java

La discussione avverrà in concomitanza con l'orale, e la consegna sarà entro tre giorni prima della data stabilita per l'orale.
Per facilitare la discussione, chi è in possesso di un portatile, può portarlo all'esame. Altrimenti verificate che il vostro progetto sia compilabile da riga di comando con l'istruzione javac.
(qualche IDE organizza i package in modo particolare).

Orario


Modalità d'esame

Quest'anno per superare l'esame sarà necessario consegnare gli homework e un progetto e sostenere l'orale.
Chi non consegna almeno 3 homework durante il corso, dovrà sostenere una prova scritta.
La prova orale, consisterà nella discussione del progetto.
Nel corso del colloquio saranno poste domande sui contenuti del corso (quindi studiate!)

Consegna Progetti

I progetti andranno consegnati qualche giorno prima della data dell'esame.
Per la consegna spedire un file (in formato tar.gz o .zip, non rar!) al docente (salvo[_at_]di.uniroma1.it).
La consegna del progetto funge automaticamente da prenotazione.