DIPARTIMENTO   DI   INFORMATICA
Università di Torino

Corso di Programmazione in Rete e Laboratorio

Laurea in Informatica - percorso STISI

Anno accademico: 2004-2005

Docenti: prof. Alberto Martelli, dr. Matteo Baldoni

Numero di ore: 54 (in aula) + 36 (in laboratorio)
Numero di CFU (Crediti Formativi Universitari): 6 (in aula) + 3 (in laboratorio)
Moduli: Nel primo trimestre è tenuto il "MODULO 1 (lezioni in aula), nel secondo trimestre è tenuto il MODULO 2 (lezioni in laboratorio)".


INDICE

  1. Obiettivi del corso
  2. Competenze attese e propedeuticità
  3. Come si svolgono le lezioni (supporti alla didattica in uso alla docenza)
  4. Programma/contenuti
  5. Materiale didattico di supporto (a cura del docente)
  6. Bibliografia (libri, articoli, documenti on-line,...)
  7. Controllo dell'appprendimento (durante il corso)
  8. Verifica (modalità d'esame)


1. Obiettivi del corso

Presentare le tematiche principali dei linguaggi di programmazione ad oggetti attraverso il linguaggio Java. Mostrare come questo linguaggio consenta di realizzare in modo semplice applicazioni distribuite in rete.

2. Competenze attese e propedeuticità

  • Competenze attese in ingresso (richieste all'inizio del corso). Il modulo presuppone un buona conoscenza delle tecniche fornite da corsi di base di programmazione. È inoltre richiesta una buona conoscenza dei meccanismi di base della programmazione concorrente, come quella comunemente fornita da un corso di sistemi operativi. In particolare, è richiesta la conoscenza delle competenze fornite dai corsi di:
    • Programmazione I e Laboratorio
    • Programmazione II e Laboratorio
    • Algoritmi e Laboratorio o Algoritmi e Sperimentazioni
    • Sistemi Operativi e Laboratorio o Sistemi Operativi e Sperimentazioni
  • Competenze attese in uscita (acquisite durante il corso). Al termine del corso ci si aspetta che lo studente sappia realizzare applicazioni distribuite usando le primitive di comunicazione e le classi predefinite nelle librerie di Java.

3. Come si svolgono le lezioni (supporti alla didattica in uso alla docenza)

Le lezioni in aula sono svolte sia con l'usilio di lavagna e gesso che con l'ausilio del calcolatore (proiezione di lucidi animati) per il modulo I, mentre le lezioni per il modulo II sono svolte in laboratorio.
Verrà utilizzato l'ambiente JDK per sviluppo ed esecuzione di programmi Java. Grazie all'indipendenza dalla piattaforma di Java, saranno utilizzati computer dotati di sistema operativo sia UNIX che Windows, suddividendo gli studenti in piccoli gruppi di lavoro.

4. Programma/contenuti

Introduzione alla programmazione ad oggetti. Il linguaggio Java. Oggetti, classi, metodi. Gestione dinamica degli oggetti. Ereditarietà: polimorfismo e binding dinamico. Trattamento delle eccezioni. Interfacce grafiche in Java. Input/output di dati ed in particolare di oggetti. Programmazione multithread. Programmazione in rete; uso di socket. Invocazione remota di metodi (RMI).
Programma di Laboratorio: realizzazione di una applicazione distribuita da parte di studenti riuniti in piccoli gruppi di lavoro.

5. Materiale didattico di supporto (a cura del docente)


6. Bibliografia (libri, articoli, documenti on-line,...)

  1. Cay S. Horstmann e Gary Cornell. Java 2: i fondamenti. McGraw-Hill, 2001. ISBN 88-386-4181-1.
  2. Cay S. Horstmann e Gary Cornell. Java 2: tecniche avanzate. McGraw-Hill, 2000. ISBN 88-386-4071-8.
  3. M. Baldoni. Un'introduzione alla programmazione orientata agli oggetti attraverso lo schema ``Kernel-Modulo'' Mokabyte, (66), September, (67), October e (68), November 2002. È anche disponibile una versione di tutte e tre le parti pubblicate su MokaByte: Matteo Baldoni. Un'introduzione al paradigma ad oggetti attraverso lo schema "Kernel-Modulo". Rapporto Tecnico RT 67/02 del Dipartimento di Informatica, Università di Torino. (PDF)

7. Controllo dell'apprendimento (durante il corso)

Il controllo sull'apprendimento avverrà assegnando agli studenti il progetto da realizzare suddiviso in più fasi, con controlli periodici del livello di avanzamento. Verrà anche svolto un test a metà corso per accertare il livello di apprendimento degli argomenti presentati a lezione.

8. Verifica (modalità d'esame)

L'esame è suddiviso in una prova scritta e nella discussione del laboratorio proposto durante il secondo trimestre.
L'esame scritto ha l'obiettivo di verificare che il candidato abbia assimilato le caratteristiche di Java e, più in generale, dei linguaggi di programmazione ad oggetti, mentre la seconda parte dell'esame riguarderà la presentazione del progetto accompagnata da una discussione approfondita sulle scelte progettuali.
La discussione del laboratorio può essere sostenuta solo dopo aver superato la prova scritta. La registrazione del voto avverrà quindi dopo aver superato entrambe le prove.
Il laboratorio può essere svolto in gruppi di al massimo due persone. La discussione del laboratorio è comunque individuale.
Per sostenere sia le prove scritte che le discussioni del laboratorio è necessario prenotarsi on-line. Il materiale da consegnare all'esame è descritto alla pagina del laboratorio.
La prova scritta ha validità sino all'inizio del corso di Programmazione in Rete e Laboratorio (Modulo I) dell'anno accademico 2005/2006.
Il testo del laboratorio proposto vale solo fino all'inizio del corso (Modulo II) dell'anno accademico successivo (2005/2006).
Il voto per lo scritto e per il laboratorio sarà espresso in trentesimi. Il voto finale sarà formato dalla media pesata del voto della prova scritta e del laboratorio, secondo il loro contributo in CFU, e cioè voto finale = (voto dello scritto * 2 + voto del laboratorio) / 3.
È fortemente consigliato svolgere il laboratorio durante il corso e quindi sostenerne la relativa discussione nella prima sessione d'esame dopo il corso stesso (ci saranno due appelli in tale sessione). Il laboratorio potrà essere modificato e/o personalizzato per chi deciderà di sostenere l'esame nelle sessioni successive. Per modifiche si intende anche l'aggiunta di nuove parti da svolgere.
Durante le ore di lezione in laboratorio sarà garantita l'assistenza da parte di un docente e/o di uno studente collaboratore. Dopo il termine del corso l'assistenza non sarà più garantita dalla studente collaboratore e sarà garantita da parte del docente solo durante il suo orario di ricevimento.



[Corso di Studi di Informatica]

Last update: Jan 20, 2005