Here are some of my school projects that I found interesting.

Ulm (Ens):

Graduate year, 1st semester:

estolus

Estolus is a Racket #lang which takes code written in the synchronous signal-based Esterel programming language and outputs equivalent code written in the synchronous dataflow Lustre programming language. It first uses the Racket parser tools to transform Esterel code to Racket syntax and then uses macros to progressively transform the code to a sequence of display expressions which output the corresponding Lustre code.

Prof: M. Pouzet and J. Vuillemin.
sources

Undergrad year, 2nd semester:

University of Amsterdam

Abstract: SAC is a purely functional array-based programming language with a strong focus on implicit parallelization. Our goal is to enable C programmers to take advantage of SAC implicit parallelization through SAC C interface. The difficulty however is that the SAC parallelization mecanism is not designed to be called from already parallelized programs. We aim at solving this problem by redesigning the SAC C interface, but with minimal changes to SAC's efficient implicit parallelization mecanism. To this end we extend the SAC compiler to introduce the concept of XT functions and virtual runtime environments. XT functions allow the implicit parallelization to take place in an already parallel context.

Research internship in the Computer Science Architecture group at the University of Amsterdam.
Advisor: C. Grelck.
reportslides

Undergrad year, 1st semester:

Compiling Monads

Presentation of a research paper by Olivier Danvy, Jürgen Koslowski and Karoline Malmkjær entitled Compiling Monads.

Prof: P.-A. Melliès.
slides

GenoM3

Presentation of a research paper by Anthony Mallet, Cédric Pasteur, Matthieu Herrb, Séverin Lemaignan, Félix Ingrand entitled GenoM3: Building middleware-independent robotic components.

Prof: J.-P. Laumond.
report (french) – slides

Racketris

Racketris is a multiplayer peer-to-peer tetris game developped in Racket as part of a "network programming" course.

Prof: T. Chatain and H. Benzina.
sourcesreport

Junior year, 2nd semester:

Verimag

Abstract: Our goal is to enable preemptive multitasking in critical embedded systems programmed with the formally defined Lustre programming language, in order to get rid of the constraints imposed by static scheduling, which is still in use at this day. We aim to do so by introducing a tiny system layer between the hardware and the software, which would also be written as much as possible in Lustre to allow global validation of the system using formal verification methods.

Research internship in the Synchrone team at the Verimag lab.
Advisors: C. Rippert, K. Altisen, K. Marquet.
reportslides

Pastis

Pastis is a Scheme toolkit which produces, from a given program (also in Scheme), a new program which behaves exactly the same as the original one but which also rewrite itself differently at each execution.

In collaboration with Antoine Amarilli.
Prof: D. Naccache.
sourcesreport

MapReduce

Presentation given about MapReduce frameworks for massively distributed computing on large data sets with good fault tolerance.

In collaboration with Malo Jaffré.
Prof: S. Abiteboul.
slides (french)

Syn

Syn is a discrete-events simulation tool which attempt to study the efficiency of some self-learning algorithms which try to make personnalised websites recommendations to a surfer without any previous knowledge of his tastes (à la StumbleUpon).

In collaboration with Floriane Dardard.
Prof: F. Baccelli and A. Chaintreau.
sourcesslides (french)

Sqwarea

Sqwarea is an in-browser massively multiplayer strategy game, taking place on an infinite board. It was developed using the .NET stack on the Windows Azure cloud platform, together with a team of 10 students using agile method such as a continuous integration server.

Prof: J. Vermorel.
sqwarea.com

Junior year, 1st semester:

scifi,
simpa,
asciifee,
& sasc

scifi is a circuit simulator written in C. Circuit are given in a handy prefix netlist syntax.

simpa is a 8 bits microprocessor with only one "magic" instruction. It is implemented in scifi's netlist language.

asciifee is a simple ASCII-art seven-segment displayer written in C with the ncurses library.

sasc is a watch written in simpasm, the simpa microprocessor assembly language.

In collaboration with Antoine Amarilli.
Prof: J. Vuillemin and J-B. Note.
sourcesslides

λ-calcul

Writing work about lambda-calculus. The goal is to prove that lambda-calculus is a valid calculability model, it's done by showing the equivalence between lambda-calculus and Turing machines.

Prof: O. Carton.
report (french) - slides (french)

mimo

A compiler for a subset of OCaml (focusing on modules and functors) that translate OCaml code to MIPS assembly. It is written in OCaml.

Prof: J-C. Filliâtre and J. Bertrane.
sourcesreport (french)

Luminy (univ.):

Sophomore year:

Railgo

A tools written in C that compute various stuff about railway networks (shortest routes, average time between two stations, clusters of nearby stations...). Usable in command line or with its graphical interface (GTK+).

Prof: Y. Vaxès.
sourcesreport (french)

Portraits

Graphical (GTK+) application to make facial composite, it is written in C.

Prof: R. Barbanchon and E. Thiel.
sources

Klondike

Graphical (MyX) klondike game written in C.

Prof: R. Barbanchon and E. Thiel.
sources

Freshman year:

MEjac

MEjac is a tool to simulate and visualize 1 dimension and two states cellular automaton.

Prof: L. Bédou.
I still need to get the code back from my previous laptop, it will be available some day in a relatively near future.