CORSO DI LAUREA IN INFORMATICA
Facoltà di Scienze MFN, Sede di Alessandria
Università del Piemonte Orientale

Esercitazione di Linguaggi Speciali di Programmazione AA 1996-97

Gli studenti devono suddividersi in gruppi di lavoro formati da 3-5 componenti e sviluppare una esercitazione a scelta su uno dei seguenti temi:

1) definizione e realizzazione di un sistema per la costruzione semiautomatica dell'orario delle lezioni di un corso di laurea

2) definizione e realizzazione di un sistema per la generazione e l'utilizzo di alberi di decisione

3) definizione e realizzazione di un sistema per l'interfacciamento con un archivio locale o remoto in formato compresso (zip, arj, lzh, gz, tar, etc.)

4) (in via di definizione) esercitazione congiunta con il corso di Documentazione Automatica: progettazione di una banca dati e definizione e realizzazione di interfaccia alla banca dati da browser WWW

L'esercitazione consiste nello sviluppo del sistema seguendo un modello del processo di sviluppo a cascata (waterfall model) e nella produzione della relativa documentazione: documento dei requisiti di sistema, documento di progetto, codice, documento dei test eseguiti. La fase di progettazione deve essere sviluppata tenendo conto che l'implementazione va fatta in un linguaggio object-oriented (Java o C++). In particolare, il linguaggio JAVA deve essere usato per la realizzazione dei temi 3 e 4.

I temi corispondono a esercitazioni di diverso livello di difficolta` che daranno luogo a valutazioni differenti: esercizi piu` difficili permetteranno di ottenere una valutazione piu` alta all'esame.

I livelli di difficolta` delle esercitazioni in ordine dalla piu` semplice alla piu` complessa sono i seguenti: 3, 2, 1, 4. Questi livelli corrispondono a voti di partenza all'esame orale che potranno essere aumentati fino a 6 punti a seconda dell'andamento dell'esame (NB: qualunque sia il voto di partenza, e` sempre possibile non superare l'esame orale e venire repsinti) : 3 --- 20:22, 2 --- 22:25, 1 --- 24:27, 4 --- 24:27.

L'esercitazione 1 puo` essere sviluppata in piu` livelli di difficolta`: orario per un unico corso di laurea, orario per tutti i corsi di una facolta`, orario completo per tutti i corsi dell'universita`.

Tema 1

Un sistema per la costruzione semiautomatica dell'orario settimanale delle lezioni di un corso di laurea deve considerare i seguenti fattori:

  • il numero di ore settimanali di ciascun corso;
  • l'anno in cui e` tenuto il corso (primo, secondo, etc.) in modo da evitare sovrapposizioni tra corsi che si tengono nello stesso semestre;
  • la capienza delle aule;
  • il numero di studenti previsto per ogni corso;
  • nonche` preferenze/impedimenti dei docenti;

Non e` richiesto che l'algoritmo implementato per la costruzione dell'orario sia efficiente e/o ottimale. Il sistema e` semiautomatico nel senso che deve fornire un orario parziale con una lista di impedimenti, corsi che non sono stati inseriti nell'orario a causa di conflitti nelle esigenze del corso (mancanze di aule sufficientemente capienti, insoddisfacibilita` di preferenze del docente, etc.)

Tema 2

Un albero di decisione e` una struttura dati che permette di prendere delle decisioni analizzando in modo guidato i valori di un insieme di caratteristiche. I problemi che si possono affrontare sono molteplici e sono generalmente conosciuti come problemi di classificazione. Un problema di classificazione puo` essere definito nel seguente modo:

dato un oggetto descritto per mezzo di un insieme di caratteristiche, associarlo ad una categoria (classe) scelta in un insieme di categorie predefinito.

Un albero di decisione e` il meccanismo che permette di effettuare la scelta di una categoria sulla base dei valori delle caratteristiche descrittive. Piu` formalmente, un albero di decisione e` una struttura dati ad albero in cui i nodi foglia rappresentano una classe, mentre i nodi interni rappresentano delle decisioni. Le decisioni sono dei test sui valori di una caratteristica: questi possono essere binari (dando cosi` luogo ad alberi di decisione binari, in cui ogni nodo interno ha esattamente due figli) oppure a molti valori (generando alberi generici, in cui ogni nodo interno puo` avere piu` figli). La costruzione di un albero di decisione avviene analizzando un insieme di coppie oggetto/classe (detti esempi di apprendimento) e identificando ad ogni passo un test che permetta di suddividere nel miglior modo possibile l'insieme di apprendimento in sottoinsieme che contengono solo oggetto di una unica classe.

Tema 3

L'idea e` quella di realizzare un sistema che presenti in modo user-friendly il contenuto di un archivio (alla maniera di Winzip, per esempio) e permetta l'estrazione e la visualizzazione di un elemento dell'archivio. Il formato degli archivi e` compresso per mezzo di algoritmi di larga diffusione, quali zip, tar, gzip, etc. Non e` richiesta l'implementazione di questi algoritmi, in quanto e` sufficiente interfacciarsi con programmi esistenti per tutte le operazioni necessarie. La possibilita` di accedere e visualizzare il contenuto di archivi remoti, tramite browser WWW, per intenderci, permetterebbe di verificare il contenuto di un archivio senza doverlo scaricare localmente (cosa che richiede tempo per archivi di grosse dimensioni), e di scaricare localmente solo gli elementi dell'archivio di interesse. Si pensi, per esempio, al file di descrizione di un pacchetto applicativo distribuito in un file compresso di grosse dimensioni: leggendo la descrizione, generalmente ridotta, si puo` stabilire il reale interesse per il pacchetto applicativo, e decidere quindi in un secondo tempo il trasferimento dell'archivio.

Tema 4

La banca dati da progettare e` descritta in Testo Esercitazione Documentazione Automatica. L'interfaccia grafica verso la banca dati deve permettere l'esecuzione di interrogazioni predefinite e di interrogazioni definibili dall'utente. Inoltre, puo` essere prevista una interfaccia per la modifica delle informazioni memorizzate nella banca dati.



Home page Dipartimento
[Dipartimento] [Facoltà di Scienze] [Università del Piemonte Orientale]

Administrator: wwwadm@di.unito.it Ultima modifica: Dec 01, 1999