Scopo di questa tesina è scrivere la documentazione necessaria per l'utilizzo al pieno dei servizi dell'aula informatizzata della Facoltà di Economia: come ottenere un account, come effetuare il login ai computer, come cambiare la propria password, etc... La documentazione verrà realizzata in DocBook, che è un linguaggio di markup XML per la stesura di documentazione tecnica.
Scopo di questa tesina è scrivere la documentazione necessaria per l'utilizzo al pieno dei servizi dell'aula informatizzata della Facoltà di Economia: come ottenere un account, come effetuare il login ai computer, come scegliere tra Linux e Windows, etc... La documentazione verrà realizzata in LaTeX, che è un linguaggio per la scrittura di documenti molto utilizzato in ambito scientifico.
Durante il corso di Laboratorio di Sistemi Informativi si è visto come realizzare applicazioni web tramite l'uso del linguaggio PHP. Una possibile alternativa, particolarmente adatta per applicazioni di grosse dimensioni è JavaServer Pages (JSP), che riprende dal PHP l'idea di mescolare codice HTML e linguaggio di programmazione, utilizzando Java per ques'ultimo.
Scopo della tesina è studiare il funziona di JavaServer Pages e di alcune tecnologie correlate (Java Servlets e JDBC). Come completamento della tesina, occorre anche sviluppare una applicazione web in JSP che può essere, ad esempio, la traduzione in JSP del progetto finale del corso di Laboratorio di Sistemi Informativi.
Prerequisiti: conoscenza di Java e dei fondamenti della programmazione web.
Un linguaggio di programmazione molto particolare, sviluppato prevalentemente per fini didattici, è il Logo. La caratteristica più conosciuta di questo linguaggio è la gestione della grafica tramite la tartaruga: una tartaruga virtuale dotata di una penna sotto il corpo si sposta, a seconda dei comandi impartiti dal programmatore, lasciando nel contempo sullo schermo il segno del suo passaggio. Il Logo, comunque, è un linguaggio di programmazione a tutti gli effetti, anche molto potente. Questa tesina consiste nello studiare i fondamenti del linguaggio, e i principi ispiratori in ambito didattico che hanno portato alla sua realizzazione.
La Wii è una console per videogiochi sviluppata dalla Nintendo. Sebbene inizialmente la Wii potesse eseguire solo programmi certificati dalla Nintendo, alcuni hacker sono riusciti a superare questa limitazione e hanno dato origine ad una florida comunità di sviluppari di applicazioni homebrew (fatte in casa). Il tool principale per lo sviluppo di applicazioni con la Wii è DevKit PPC. Scopo di questa tesina è imparare i rudimenti della programmazione per la Wii con DevKit PPC e scrivere un semplice programma di esempio.
Prerequisiti: conoscere i rudimenti del linguaggio C, e saper lavorare con la linea di comando.
Secondo la definizione di Wikipedia, OpenGL è una specifica che definisce una API multilinguaggio e multipiattaforma per scrivere applicazioni che producono computer grafica 2D e 3D. OpenGL è ampiamente usato per sviluppare videogiochi, programmi di realtà virtiale, CAD, etc.. Scopo della tesina è apprendere i rudimenti di OpenGL e sviluppare (con Java o con altro linguaggio di programmazione a scelta che lo supporti) delle piccole applicazione esemplificative.
Prerequisiti: ricordare qualcosa (basta veramente poco) del corso di algebra lineare.
A differenza di quanto accade in Windows, nei sistemi Linux il software non è distribuito sotto forma di programma da eseguire per lanciare l'installazione, ma sotto forma di pacchetto. Esistono vari formati per i pacchetti, tra cui il formato .deb
, utilizzato dalla distribuzione Debian e dai suoi derivati, come la Ubuntu.
Scopo di questa tesina è capire come sono fatti i pacchetti .deb
e imparare a crearne di nuovi. Obiettivo finale è quello di prendere un software per Linux, attualmente non presente nella distribuzione Ubuntu, e realizzare il pacchetto corrispondente.
Prerequisiti: dimestichezza con i programmi a linea di comando su sistemi Linux.
Facebook è un sito che fa parte della categoria dei Social Network, ovvero che consente a gruppi di persone di conscersi, scambiarsi informazioni e interagire in vario. Chiunque può crearsi gratuitamente un account su Facebook, inserire un proprio profilo, tenere traccia di una lista di amici, inserire proprio foto, etc... e queste informazioni sono condivise (a vario livello di dettaglio) con gli altri utenti del sito.
Dal punto di vista informatico, una peculiarità di Facebook è che consente di scrivere delle estensioni di Facebook, che girano su un server web di nostra scelta, ma che hanno accesso a tutte le informazioni presenti nel sito principale e alle quali si accede direttamente tramite il sito principale di Facebook.
Questa tesina consiste in un piccolo studio di Facebook e del fenomeno delle social networks, per poi concentrarsi sullo sviluppo di una semplice estensione del sito.
Dynamic HTML o DHTML è un termina che indica un insieme di tecniche per lo sviluppo di pagine web dinamiche e interattive. Si basa sull'utilizzo di HTML, CSS, JavaScript e DOM (Document Object Model).
Scopo della tesina è studiare le tecnologie collegate a DHTML (DOM in particolare), per poi sviluppare una applicazione web interattiva. Questa può essere, ad esempio, una versione modificata del progetto per il corso di Laboratorio di Sistemi Informativi.
Prerequisiti: conoscenza di HTML e JavaScript
AJAX è l'acronimo di Asynchronous JavaScript and XML, ed indica una tecnica di sviluppo del software per il web che ha lo scopo di creare applicazioni interattive, con la stessa fluidità che mostrano applicazioni che vengono eseguite in locale. L'idea principale di questa tecnica è che gli eventi che si verificano non causano il ricaricarsi di una intera pagina, ma solo lo scambio di piccoli pacchetti di dati necessari ad aggiornare la pagina corrente; il tutto avviene sotto il controllo di JavaScript. Per facilitare lo sviluppo di applicazioni AJAX sono disponibili vari framewoks, più o meno complessi, e più o meno legati ad una particolare architettura software.
Scopo della tesina è studiare i principi di AJAX e di uno (a piacere) dei framework più comuni (quale ad esempio script.aculo.us). Infine, occorre sviluppare una applicazione web all'interno del framework che può essere, ad esempio, la versione "ajaxificata" del progetto per il corso di Laboratorio di Sistemi Informativi.
Prerequisiti: un buona conoscenza di HTML e JavaScript e i rudimenti di DHTML
Virtualizzazione è un termine generico che indica una qualunque tecnica il cui scopo è astrarre una risorsa nascondendone i dettagli fisici agli utilizzatori. In particolare, è possibile virtualizzare un singolo computer fisico (o un singolo sistema operativo), in modo che esso appaia come un insieme di computer logici. Ognuno dei computer logici creato in questo modo è detto macchina virtuale.
Sotto Linux sono stati sviluppati vari sistemi di virtualizzazione, che coprono tutte le tecniche ad oggi note. Un esame di alcune soluzioni è disponibile in questo articolo. Scopo della tesina, dopo una introduzione generale al problema della virtualizzazione, è confrontare alcuni dei sistemi freeware o open source disponibili sotto Linux, mettendone in luce vantaggi, svantaggi e prestazioni. Ciò verrà fatto sia basandosi su materiale già disponibile on-line, che provando in prima persona i vari prodotti.
Prerequisiti: dimestichezza col sistema operativo Linux.
Sviluppare una applicazione web in PHP richiede, ogni volta, la (ri)scrittura di una grossa quantità di codice dalla struttura sempre uguale. Si tratta del codice necessario alla implementazione delle funzionalità di inserimento, modifica, cancellazione e interrogazione della base di dati. La parte veramente peculiare di una applicazione web è spesso una percentuale molto piccola del codice prodotto.
Per ovviare a questo problema, si stanno diffondendo recentemente una serie di framework per lo sviluppo di applicazioni in PHP, che hanno lo scopo di velocizzare il processo di sviluppo. Tra gli altri, abbiamo CakePHP, PHP on Trax e Symfony.
Scopo della tesina è scegliere uno di questi framework, e studiarne sia i principi teorici che ne stanno alla base, (tipicamente l'architettura model-view-controller e i template) che la loro effettiva realizzazione. Infine, occorre sviluppare una applicazione web all'interno del framework che può essere, ad esempio, la traduzione del progetto finale del corso di Laboratorio di Sistemi Informativi.
Prerequisiti: conoscenza del PHP.
Scopo di questa tesi è fare una ricerca sui software CRM (Customer Relationship Management) disponibili in versione libera/open source. I software CRM si occupano della automazione del front-office di una azienda, e sono pensati per essere utilizzati dalle divisioni marketing, vendite, distribuzioni e supporto al cliente. L'idea è che tutto quello che riguarda il cliente venga gestito in maniera integrata, consentendo di scambiare dati tra le divisioni coinvolte e quindi, almeno in linea di principio, migliorare la soddisfazione del cliente.
Il termine, tuttavia, è molto vago, e software CRM diversi svolgono le loro funzioni in maniera molto dissimile l'uno dall'altro. La tesi consiste nel:
Scopo di questa tesi è fare una ricerca sui software ERP (Enterprise Resource Planning) disponibili in versione libera/open source. I software ERP si occupano della automazione integrata di tutti gli aspetti di una azienda.
Il termine, tuttavia, è molto vago, e software ERP diversi svolgono le loro funzioni in maniera molto dissimile l'uno dall'altro. La tesi consiste nel:
La tesi si divide essenzialmente nei seguenti punti:
La tesi è oggettivamente complessa, adatta principalmente a chi voglia proseguire la carriera in ambito prettamente informatico, eventualmente anche attraverso un dottorato di ricerca.
Magic, l'adunanza è probabilmente il primo e più famoso gioco di carte collezionabili. Nel corso della sua lunga storia, le regole del gioco (ormai giunto alla decima edizione) sono state più volte modificate e ampliate. Il sito della Wizard of the Coast, produttore del gioco, riporta sia le regole di base per giocare, sia le regole complete con tutti i dettagli del gioco (Comprehensive Rules).
Queste ultime dovrebbero servire a fugare ogni possibile dubbio sull'effetto delle azioni dei giocatori. Sebbene in linea di massima questo sia vero, il fatto che il manuale sia scritto in "linguaggio naturale", e la notevole varietà di interazioni possibili tra carte diverse, rende alcune parti delle istruzioni ambigue.
Scopo di questa tesi è provare a modellare Magic tramite un formalismo a oggetti (in prima approssimazione, usando un linguaggio di programmazione ad oggetti standard come Java o, meglio, Ruby). I vantaggi di una descrizione formale del gioco sono da una parte quello di eliminare ogni possibile ambiguità nelle regole, dall'altra aprire la strada alla possibilità di effettuare simulazioni, in maniera automatica, alla ricerca della strategie più efficienti, o delle migliori combinazioni di carte.
In questo momento, il primo passo è realizzare un semplice ambiente software per giocare (in maniera virtuale) a Magic. Il software svolge solo il ruolo di arbitro ed esecutore delle azioni indicate da due giocatori umani.
Prerequisiti: conoscenza abbastanza approfondita del gioco.
Recentemente si sente molto parlare di linguaggio XML come evoluzione di HTML. In realtà, i due hanno scopi completamente diversi: HTML è un linguaggio per descrivere documenti ipertestuali (le pagine web), mentre XML è un linguaggio generico per descrivere qualunque tipo di dato. Quello che hanno in comune è che entrambi sono linguaggi basati su markup, e che hanno un progenitore unico chiamato SGML.
XML può essere utilizzato efficacemente per memorizzare basi di dati semi-strutturate. Scopo della tesina è studiare il linguaggio XML ed alcune tecnologie per basi di dati ad esso collegate, quali le DTD (Document Type Definition) e i fondamenti di XPath e/o XQuery. Risultato finale deve essere lo sviluppo di una semplice applicazione web che utilizzi XML per memorizzare ed interrogare i dati. Come punto di partenza per tale applicazione si può utilizzare il software realizzato per il progetto finale del corso di Laboratorio di Sistemi Informativi.
Recentemente si sente molto parlare di linguaggio XML come evoluzione di HTML. In realtà, i due hanno scopi completamente diversi: HTML è un linguaggio per descrivere documenti ipertestuali (le pagine web), mentre XML è un linguaggio generico per descrivere qualunque tipo di dato. Quello che hanno in comune è che entrambi sono linguaggi basati su markup, e che hanno un progenitore unico chiamato SGML.
XML può essere utilizzato efficacemente per memorizzare basi di dati semi-strutturate. Scopo della tesina è studiare il linguaggio XML ed alcune tecnologie per basi di dati ad esso collegate, quali le DTD (Document Type Definition) e i fondamenti di XPath e/o XQuery. Risultato finale deve essere lo sviluppo di una semplice applicazione web che utilizzi XML per memorizzare ed interrogare i dati. Come punto di partenza per tale applicazione si può utilizzare il software realizzato per il progetto finale del corso di Laboratorio di Sistemi Informativi.
Prerequisiti: conoscenza di HTML.
I giochi di avventura sono programmi per computer che simulano un ambiente nel quale i giocatori usano comandi (tramite tastiera o mouse) per istruire il personaggio della storia ad interagire con l'ambiente in cui si trova.
Lo scopo della tesina è realizzare una semplice avventura testuale, priva cioè di immagini e in cui il personaggio viene controllato con dei comandi testuali. Nel realizzare l'avventura si utilizzerà il linguaggio di programmazione Inform, realizzato specificatamente a questo scopo.
Prerequisiti: aver giocato almeno una volta ad un gioco di avventura.
Come sopra, ma si approfondirà l'architettura e il linguaggio macchina dei ARM, attualmente dominanti nel mercato dei tablet, cellulari e dispositivi embedded
GCompris è un software didattico per bambini, una sorta di collezione di vari giochi educativi. Alcuni di questi giochi sono stati adattati alla realtà italiana, ma altri no. Tra questi ultimi c'è un gioco che consente di imparare le regioni di varie nazioni (Francia, Germania, etc..) tra le quali manca però l'Italia.
Scopo della tesina è estendere GCompris con il supporto per le regioni italiane. Le modifiche apportate verranno poi inviate all'autore di GCompris per l'inclusione nelle successive versioni del software.