====== Esame LCS 2006/07 ====== ===== Informazioni generali ===== L'esame di quest'anno prevede la realizzazione di due esercizi e di un progetto finale. Maggiori informazioni sulle modalita' di consegna, sulla prova orale e sul calcolo del voto dell'esame sono contenute nei lucidi introduttivi della prima lezione del corso. Per la realizzazione sia i due esercizi che il progetto e' necessario scaricare il kit corrispondente da questa pagina e seguire accuratamente le istruzioni contenute nel file di README di ciascun kit. ===== Materiale primo frammento (scadenza 19/03/2007) ===== Primo kit disponibile: {{lcssearchtrees_kitf1.tar}} Scaricatelo, salvatelo in un file con lo stesso nome in una directory nuova e s-taratelo con il comando bash:~$ tar xvf lcssearchtrees_kitf1.tar questo crea una directory //searchtrees//, all'interno della quale si trova il file //README-1// che contiene tutte le informazioni su come procedere per la realizzazione del codice dell'esercizio, su come effettuare i test richiesti prima della consegna e su come effettuare la consegna stessa. Questo primo frammento, realizzabile in C sequenziale, prevede l'implementazione di una libreria di alberi di ricerca 'generici' ((per informazioni aggiuntive sugli alberi di ricerca si rimanda al corso di algoritmica ed al README-1 del kit)) In particolare la chiave di ogni nodo e la sua informazione (payload) potranno essere di tipo qualsiasi. Attenzione: l'utility mpack necessaria per la consegna e' installata solo nelle macchine dei laboratori H, I ed M. Se volete effettuare la consegna del frammento da un'altra macchina o da casa potete: * scaricare il binario((ATTENZIONE! e' un file binario quindi non ha senso visualizzarlo, salvatelo su file con il tasto destro del mouse!)) da [[http://www.di.unipi.it/~susanna/LCS/mpack|mpack]], salvarlo con questo nome ad esempio in //~/bin// e aggiungere la directory al PATH (vedi [[faq|FAQ]]). * piu' semplicemente collegarvi con ssh a trudy o una macchina dei laboratori H, I o M, i cui nomi sono fujihXX, fujiiXX, fujiXX, ad esempio ssh logindelcli@trudy ssh logindelcli@fujim1 ed eseguire lo script di consegna((E' necessario che la macchina sia sotto Linux, per questo conviene connettersi a trudy; eventualmente, se ssh non si collega o restituisce connection refused, provate a connettervi a un'altra macchina.)). ===== Materiale secondo frammento (**NUOVA** scadenza 07/05/2007) ===== Secondo kit disponibile: {{lcsfram2_kitf2.tar}} Scaricatelo, salvatelo in un file con lo stesso nome in una directory nuova e s-taratelo con il comando bash:~$ tar xvf lcsfram2_kitf2.tar questo crea una directory //fram2//, all'interno della quale si trova il file //README-2// che contiene le informazioni su come procedere per la realizzazione del frammento. In particolare, il secondo frammento consta di due esercizi: MYMAKE (uno script bash -- solo studenti LCS) e MANDELBROT (un programma multithreaded che visualizza [[http://en.wikipedia.org/wiki/Mandelbrot_set|l'insieme di Mandelbrot]] -- studenti sia LCS che LPS). Il materiale per ogni esercizio si trova in una directory con lo stesso nome, nella directory corrispondente troverete un file di README che spiega come procedere, come effettuare i test richiesti prima della consegna e come effettuare la consegna stessa. E' diponibile anche un {{lcs:lcs07:wxwidgets.tar|kit}} per la visualizzazione (opzionale) di Mandelbrot con WXwidgets. Per le due consegne valgono le stesse avvertenze del primo frammento. ==== ATTENZIONE ==== A causa degli errori di approssimazione e' possibile che l'output intero di Mandelbrot differisca in 2/3 punti da quello atteso nel file di check. Se questo e' il caso effettuate lo stesso la consegna avvertendo i docenti con una mail separata (per effettuare la consegna basta commentare la linea "make test" del target consegna). ===== Materiale progetto finale (scadenza per bonus 20/07/2007) ===== Terzo kit disponibile: {{lcs:lcs07:lcs_kitf3.tar.gz|lcs_kitf3.tar.gz}} Scaricatelo, salvatelo in un file con lo stesso nome in una directory nuova e s-taratelo con il comando bash:~$ tar xzvf lcs_kitf3.tar.gz questo crea una directory, all'interno della quale si trova il file //README// che contiene le informazioni su come procedere per la realizzazione del progetto. In particolare, il progetto prevede lo sviluppo di //sfat//, un file server multithreaded basato su una versione semplificata di FAT32. Per la consegna valgono le stesse avvertenze del primo frammento. ===== Altre informazioni ===== Ricordate che tutti gli elaborati consegnati verranno confrontati fra di loro automaticamente. I frammenti simili verranno annullati. Inoltre, leggete bene le [[faq|FAQ]].