Computer Science

A list of several past and on-going computer science projects

An operating system based on the L4 microkernel for Cisco/Linksys NSLU2 "Slug"

Graded semester project · Operating system · L4 kernel
DevelopersBram Scheidegger, Claude Barthels
DateSep. - Dec. 2011
TechnologiesC, ARM assembly, L4 microkernel
DescriptionNSLU2, short for Network Storage Link for USB 2.0 Disk Drives, is a network attached storage device developed by Linksys in 2004. The device has an Intel XScale processor running at 133Mhz, offers 32MiB of memory and runs by default a Linux operating system, which forced Linksys to release their specifications and source code as per the terms of the GNU General Public License, which fostered the development of custom firmwares.
During the course "Advanced Operating Systems" at ETH, students get a thorough understanding of design and implementation issues of modern operating systems and are required to build an operating system on top of the L4 microkernel for the NSLU2, casually called "Slug".
The system requires students to implement a memory manager, a pager (including on demand paging), a system call interface, a simple filesystem based on NFS, a timer driver, process manager and an ELF loader.

A webservice mashup for music data aggregation & news service

Graded semester project · Enterprise Application Integration · Webservice
DevelopersClaude Barthels, Bram Scheidegger, Elena Teunissen, Antti Aalto
DateNov. - Dec. 2011
TechnologiesJava, Axis2, Tomcat, PHP
DescriptionEAI Music News Service is a webservice that integrates diverse data related to bands and musicians from various sources.
Last.fm provides basic information about the band/musician, e.g a short description/biography and some sort of categorization (tags). Additionally it offers a service for suggesting similar bands that might be of interest for the user as well. Product information and customer reviews about the band's albums are pulled from Amazon through the use of the Amazon Product Advertising API and get integrated within our service with the data from Last.fm. In order to stay up-to-date and get the latest news (tweets and pictures) about a musician, the service also automatically fetches the necessary feeds from Twitter and Flickr.
The project was developed in the context of the "Enterprise Application Integration" course at ETH Zurich and also included the creation of a client program, which in this case was a webinterface written in PHP through which the user can interact with the service.

Distributed and Outsourced Software Engineering

Graded semester project · Distributed project management
DevelopersNatalia Korotkova, Mihail Kuricyn, Alexander Leushkin (Nizhny Novgorod, Russia)
Antti Aalto, Christopher Dentel, Claude Barthels (Zurich, Switzerland)
Luís Felipe Bento, Nicola Cinefra, Ho Thi Thao Nguyen, Xu Binbin (Milano, Italy)
DateSep. - Dec. 2011
TechnologiesEiffel, Eiffel Studio, Eiffel Vision 2
DescriptionThe course "Distributed and Outsourced Software Engineering" taught by Peter Kolb, Bertrand Meyer, Martin Nordio and Christian Estler exposes students to the challenges that come with the increasing number of distributed projects i.e. projects that are developed by different groups collaborating across companies, countries and timezones.
Students from Switzerland, Vietnam, Russia, Denmark, Italy, Argentina, Hungary, Spain and Ukraine work together in groups of three teams on a project (usually a multiplayer game). A team is made up of two to four students. Our group was composed of one team located in Nizhny Novgorod, Russia (responsible for the logic part), one in Milano, Italy (implementing the artificial intelligence) and our team, located in Zurich (responsible for the graphical user interface and the network component).
Together we implemented a clone of Puerto Rico, a German board game for three to five players in which the player assumes the role of colonial governor on the island of Puerto Rico during the age of Caribbean ascendancy.
The main challenge of this project was to deal with the problems that arise from the distributed environment, especially with the additional overhead in communication, coordination and project management.

AutoWoT - A toolkit for the rapid integration of smart devices into the web of things

Bachelor project & thesis · Web of Things · Automated webserver generation
DeveloperClaude Barthels
SupervisorSimon Mayer
DateFeb. - Aug. 2011
TechnologiesJava, Restlet, Jersey
DescriptionAutoWoT is a tool for the rapid integration of Java-enabled smart devices into the Web of Things. AutoWoT’s drag & drop interface allows the creation of a resource-oriented description of the targeted device. Based on the description, the tool is able to automatically generate a web server software to integrate the device into the world wide web.
The project was initially created by Simon Mayer, Dominique Guinard, and Vlad Trifa from the Distributed Systems Group at the Institute for Pervasive Computing at ETH Zurich and was developed further within my bachelor thesis with the ultimate goal of providing the community with an open-source version of the toolkit.

A Mille Bornes clone for the Android platform

Graded semester project · Android development
DevelopersSeverin Heiniger, Raphael Fuchs, Claude Barthels
Elena Teunissen, Roland Bärtschi, Bram Scheidegger
DateNov. - Dec. 2010
TechnologiesJava, Android
DescriptionMille Bornes is a French card game that was created more than half a century ago. The premise of the game is that the players are in a road race, where the objective for each player is to reach a distance of 1000 miles before the other.
The project was developed as part of the "Distributed Systems" lecture at ETH Zurich. The purpose of this assignment was to implement a real-world distributed application and to gain further knowledge of various aspects of the Android development platform.

Compiler for the Javali programming language

Graded semester project · Compiler design
DevelopersClaude Barthels, Pascal Studerus
DateSep. - Dec. 2010
TechnologiesJava, Javali, x86, ANTLR
DescriptionJavali is a Java-like object oriented programming language. The project of writing a compiler is an integrated and graded part of the course on compiler design at ETH Zurich. From the Javali source code, the compiler produces assembly instructions for x86 machines.
The compiler uses several optimization techniques, like constant propagation, precomputation, instruction rearrangement or death code elimination in order to optimize the produced instructions. Furthermore it gives feedback to the user in order to help debugging the program, for example it provides warnings in case of uninitialized variables.

ccdHTMLlib - An HTML library for Eiffel programs

Graded semester project · Software achitecture
DevelopersCedric Staub, Claude Barthels, Damian Pfammatter
DateFeb. - Jun. 2010
TechnologiesEiffel
DescriptionThe purpose of this project is to enable Eiffel developers to efficiently generate output in static HTML format without embedding HTML code inside their project's source code. By default the generated code is compliant with the W3C XHTML 1.0 Strict specifications. The design also ensures that the output can be easily changed to other formats. For demonstration purposes a LaTeX module has been included in the release version.
This project has been done in the context of the "Software Architecture" course at ETH Zurich and did not only include developing the software, but also involved requirements documentation, API design, implementation, validation and verification.