1 Progetti

1.1 Note:

Si ricordano i principali aspetti relativi ai progetti da svolgere per l'esame:

  • Il progetto è comunque facoltativo, e può essere rimpiazzato da una prova orale sul programma del corso (la cui preparazione richiede tuttavia un tempo analogo, e può essere svolta in un qualunque periodo dell'anno, concordato col docente con 2-3 settimane di anticipo)
  • Il progetto è scelto dallo studente in accordo col docente, può essere eseguito da un gruppo di 1, 2 o 3 persone (dipendentemente dall'impegno richiesto), e deve comportare un impegno temporale di circa 80-90 ore a testa (ogni studente è tenuto a tenere traccia delle ore impiegate per svolgere il progetto)
  • Una volta assegnato il progetto, questo deve essere terminato nel giro di 30-40 giorni circa (ossia deve essere eseguito almeno a half-time). Eventuali proroghe dovranno essere contrattate col docente.
  • Qui sotto si elencano proposte del docente per i progetti. Si rammenta che altre possibilità possono essere relative a progetti suggeriti da altri docenti, o possono anche venire dagli studenti stessi. Nel caso in cui un progetto sia a carattere pratico piuttosto che scientifico (ossia sia relativo allo sviluppo di un software), si ricorda che sarà necessario portare tale software a completamento, in modo che sia ad esempio pubblicabile su SourceForge.
  • Per qualunque delucidazione o maggiori informazioni non si esiti a chiedere.
  • Questa lista verrà estesa via via durante lo svolgimento del corso, o durante l'anno accademico.

1.1 Consegna del Progetto:

  • Il progetto si consegna dopo aver svolto con esito positivo il compito. La consegna è in anticipo (solitamente per e-mail) al docente, che dopo aver fatto alcune verifiche di completezza/adeguatezza fissa una data per l'esame di comune accordo (solitamente nel giro di 1-2 settimane)
  • La documentazione del progetto deve essere correlata (ove possibile dipendentemente dalla tipologia di progetto) di: relazione in formato PDF completa di bibliografia, software prodotto (incapsulato in un JAR o JNLP per facilitarne il deployment), documento di installazione/uso README.txt, codice sorgente, manuale d'uso, documentazione javadoc della libreria
  • Per l'esame ci si deve preparare una presentazione di 15 minuti a cui seguirà una discussione (è possibile ma non necessario prepararsi delle slides). Si noti che nel caso di gruppi l'esame è svolto singolarmente, e ogni studente sarà responsabile della parte del progetto da lui stesso dichiarata (anche eventualmente/parzialmente sovrapposta a quella degli altri studenti)

1.1 Proposte di Progetto

Questa lista è fortemente dinamica. Progetti vengono tolti quando assegnati, e aggiunti quando concepiti. Al momento attuale mancano ovviamente indicazioni su progetti relativi alla parte finale del corso.

  • *2p-ide - Assigned to DiGiacomo*: Consolidate current tuprolog IDE, and develop new features related to debugging and checking the correctness of a theory
  • *2p-p@j - Assigned to Zoffoli*: Design a suitable inclusion of P@J into tuProlog release, possibly also re-designing current alice.tuprolog APIs
  • *2p-libs*: (this is actually a project template) porting existing libraries of other Prologs (SWI, GNU, SICSTUS) into tuProlog; generally, even libraries for Java couldbe used
  • *semantics-lib - (no longer assigned, it is available!)*: a notable example of lib for tuprolog is based on encapsulating a reasoner for description logic (many exist in the Web), to be used by Prolog, possibly in the form of a semantic unification mechanism
  • *advanced-dcg*: creating a new DCG library, with advanced features such as EBNF support, AST flexible generation, LOOKAHEAD, tokenization
  • *pj-tokens*: develop a Java-Prolog solution for fast and flexible tokenization in Prolog, parhaps using JavaCC of Jlex
  • *2p-dcgxml - Assigned to Bruschi*: in the spirit of DCGs, develop a library for parsing XML documents that works using a grammar-based approach, featuring automatic Tree generation, and possibly re-assessing an XML document after modifications
  • *2p-metacut*: Design a Prolog metainterpreter that also supports the cut predicate
  • *imp-opsem  - Assigned to Gramellini and Magnani*: using the operational semantics meta-interpreter, develop and implement an interpreter for a complete imperative language
  • *fj-opsem*: using the operational semantics meta-interpreter, develop and implement an interpreter for featherweight java
  • *javac-dcg - Assigned to Dusi, Amaducci and Garattoni*: building a declarative parser for Java Compiler, using Prolog
  • *speed-2p*: profile the performance of tuProlog engine, and evaluate improvements
  • *2p-maude*: Prolog and Maude can interact with each other, e.g. by sockets; this project should develop flexible libraries for both sides of the integration
  • *fast-match*: Study and possibly develop faster matching mechanisms for Prolog, considering e.g. the red-black tree implementation of Maude
  • *petri-maude*: Build in Maude an engine and property checker for some advanced Petri net model (e.g. colored Nets)
  • *rt-maude*: Analyse the RealTime Maude system, and experiment on its use to model and check Stochastic Petri Nets
  • *pmaude - Assigned to Grandi*: Analyse the Probabilistic Maude system (PMaude), and experiment on its use to model and check Stochastic Petri Nets
  • *meta-maude*: Maude is a reflective language, in that it can be used to parse and meta-execute other Maude specifications: this can be used to define slight extensions of Maude language for various purposes. This project analyse this feature and creates toy examples.
  • *biosim - Assigned to Moretti*: Consolidate an existing simulator for biochemical networks using a Prolog interpreter for chemical laws and a C++ engine implementing Gillespie algorithm
  • *alg-net*: Realise in Prolog algorithms for the creation and growth of topological networks, to be used for simulation of morphogenesis processes
  • *art-chem*: Using a chemical simulator, and starting from the Oregonator chemical system, design patterns of artificial chemical systems with usefulness for various problems in computer science
  • *prism-stopetri - Assigned to Domeniconi and Fabbri* : Build a Java/Prolog tool for specifying stochastic Petri Nets, and for verification/simulation through translation in PRISM.
  • *prism-net - Assigned to Maggiulli and Vichi* : Define an extension of PRISM in which a network of modules can be defined, with goal of modelling and simulating self-organisation of spatial systems: this is to be supported by a translation to standard PRISM.
  • *prism-dynanet* : Use PRISM to simulate and verify properties of dynamic topological networks.

Note: some projects based on Sara Montagna's and Matteo Casadei's work will be added before Christmas vacations

Tags:

Course

— a.y.

2009/2010

— credits

9

— cycle

2nd cycle

— language

wit.gif

Teachers

— professor

Mirko Viroli

— other professors

Matteo Casadei

Context

— university

Alma Mater Studiorum-Università di Bologna

— campus

Cesena

— department / faculty / school

Ingegneria CE (0031)

— 2nd cycle

8200 Ingegneria informatica

URLs & IDs

AMS Page
Course Timetable

— course ID

49778

Partita IVA: 01131710376 - Copyright © 2008-2022 APICe@DISI Research Group - PRIVACY