01 Projects PDF
01 Projects PDF
01 Projects PDF
Our overall agenda is to study the influence of language on cognitive overload: if the mind
has finite resources, how much does language take up under what circumstances? In
order to do this, we are designing car-simulator experiments in which subjects must
"drive" using a game console while performing a language- related task (automatic flight
booking using a dialogue system, listening to emails, and so on).
While the task is being performed, we will collect a variety of performance metrics,
including physiological ones such as pupil dilation measurement and skin conductance.
Our need: we require the composition of this data into a single time- synchronized
resource that is easy to analyze statistically, visualize, and distribute. This has a number of
software challenges including data format design, UI design, and data stream
composition.
We would like to have a CISPA and Saarland University iPhone and Android app that
provides guidance on campus and presents all information required by visitors, students,
and employees. In particular, the app should
• show the menus of mensa and other campus restaurant (also as widget),
• have an interactive campus map showing the current position and providing
• additional information on all facilities (e.g. parking),
• have a campus event calendar providing schedules for current events,
• have a news section on hot topics about CISPA and Saarland University.
Privacy
Software Engineering Project
Donnerstag, 19. April 12
The CISPA / Saarland University Android App
Core functionality:
- shows menus of mensa and other campus restaurant (also as
widget),
- interactive campus map showing the current position and providing
additional information on all facilities (e.g. parking),
- campus event calendar providing schedules for current events,
- news section on hot topics about CISPA and Saarland University.
Core functionality:
- shows menus of mensa and other campus restaurant (also as
widget),
- interactive campus map showing the current position and providing
additional information on all facilities (e.g. parking),
- campus event calendar providing schedules for current events,
- news section on hot topics about CISPA and Saarland University.
APex is a prototype build on top of Pex, a tool for automated unit testing, developed by
Microsoft Research, Redmond. Pex leverages Dynamic Symbolic Execution (DSA) to
automatically and efficiently generate unit test suite achieving near-100% coverage of
tested code.
The goal of the project will be to provide a rich format/visualization of the dumped data.
Some ideas: dumping directly into compilable LaTeX tables, outputting gnuplot charts,
outputting as XML and then transforming into HTML with XSLT, etc.
Your job, if you accept it, is to transform the functionality of DiffCat into a Java library that
can be easily integrated into non Eclipse applications---more precise we want to integrate
DiffCat's functionlality in our Chair's mining framework called Moskito. A solution might be
to transform DiffCat into some kind of service providing API interfaces to use this service.
You are free to reuse the DiffCat tool as it is. DiffCat and their underlying frameworks are
open source and can be adapted. So, this job is more about finding a clever solution to
integrate an Eclipse product into a non-Eclipse application.
3 public class C {
4 public C() {
5 List<String> list = new List<String>();
...
8 if(list.size() < 1){
if(list.isEmty()){
...
20 } Program semantics unchanged!
21 }
Analyzing source code changes and their dependencies requires accurate type
information about object instances involved in the applied source code changes. This task
is easy only if the source code is compilable.
Your task is to implement a partial program analysis tool for C/C++ using the LLVM
framework and it's C/C++ specific font-end: clang. The tool most be usable from Java
and should allow our mining framework written in Java to analyze C/C++ source code
changes by identifying full qualified C/C++ class, method, and functions definitions and
calls changed by each individual source code change.
www.sable.mcgill.ca/ppa/
What type is A of?
A.foo(
- int A.foo(int)
File 1 + int A.foo(int)
+ float A.foo(float)
-x = B.bar(5)
File 3 + x = B.bar(5)
+x = A.foo(5f)
Change Set (CS1) Change Set (CS2) Change Set (CS3) Change Set (CS4) Change Set (CS5)
moskito
mining | mapping | more
BugEx is an approach that aims at helping developers understand a failure. Starting from
a failing test case, many more test cases are
generated to narrow down important runtime aspects of the failure
(see http://www.st.cs.uni-saarland.de/bugex ).
To bring the approach as close to the developer as possible, BugEx should be available in
the form of an Eclipse Plugin. Some of the features include a progress monitor, a
configuration panel, and jumping to the appropriate code locations upon clicking.
TODO
• Progress Monitor
• Configuration Panel
• View for different types of Explanations
• Behavior on code change
BugEx
http://www.st.cs.uni-saarland.de/bugex/
BugEx is an approach that aims at helping developers understand a failure. Starting from
a failing test case, many more test cases are
generated to narrow down important runtime aspects of the failure
(see http://www.st.cs.uni-saarland.de/bugex ).
To allow for an easy online evaluation of the approach, we would need a WebApp/
WebGUI. Special challanges in that context are the time BugEx needs to produce a result
(up to one hour) as well as the size of the input: BugEx has a failing test case and a
program as input. That program can be of arbitrary size which is a challenge for
uploading.
• Upload-Size
• Analysis duration
• Displaying Results
This project designs and implements an approach for automatically integrating ("lifting") a
generated service plan in OWL-S into a service-oriented business process workflow in
BPMN. The service plan should be refinable by a business process modeller with the tool
according to given business requirements. The resulting new or modified process
including the semantic annotation shall be exported in a format which allows business
process modeling tools like Oryx/ SemOryx or, in particular, ARIS to import it. In other
words, the envisioned tool shall enable process modeller to efficiently reuse generated
service plans in OWL-S for process modeling in BPMN.
SComp
Service-oriented realisation of model
through planning of semantic
services with OWLS-Xplan 2.0.
Query Lifting
?
Semantic service plan
! “Lifting” of generated service plan
to business process level for
Query formulation: Specify initial and goal state for the planner
Export format of service plan for different BPMN tools (ARIS, Oryx)
By using pre- and postconditions, developers can specify the intended behavior of their
code in place. Having proper constraints on your inputs and output of a method makes
debugging a much easier task.
We developed a Java library called kanuni that comes with a large set of annotations for
parameters, variables and return values with predefined constraints (e.g. @NotNull or
even more complex things like @MinSize(min = 5) or @Directory(perm = { ACCESS,
READ, WRITE }) that can be used in Java source code.
Your task is to design and implement an Eclipse plugin that keeps track of the constraints
and comes with two features: Your plugin should warn if the use of a variable is potentially
invalid (e.g. due to a missing not-null constraint) and offer a quick-fix (like "Add @NotNull
to the parameter 'p'.). It will be sufficient if your plugin successfully achieves this task for
the @NotNull annotation and is designed in a flexible way to be extended to support
further checks (like array indexes).
@NotNull @Ascii
@MinSize(min = 5) @Positive
@ContainsKey(key = “foo”)
@WritableDirectory
Donnerstag, 19. April 12
08
09 /**
10 * @throws NullPointerException if parameter <code>a</code> is <code>null</code>.
11 *
12 */ specifications
13 public final @NotNull @Positive Integer bar(final @NotNull String a, final String b) { annotations
14 String s = a; assertions
exceptions
15
16 if (foo(a)) {
17 s = b;
18 }
19
20 return s.length();
21 } Potential null pointer access: the variable 's' may be null at this location.
22
08
09 /**
10 * @throws NullPointerException if parameter <code>a</code> is <code>null</code>.
11 *
12 */
13 public final @NotNull @Positive Integer bar(final @NotNull String a, final String b) {
14 String s = a;
15
16 if (foo(a)) {
missing checks.
21 }
22 @ Add @NotNull to parameter 'b'.
23 @ Add @NotNull to local variable 's'.
J!
@ Surround with null pointer check.
@
Add @SuppressWarnings 'null' to 'bar()'
08 /**
09 * @throws NullPointerException if parameter <code>a</code> is <code>null</code>
10 * or if parameter <code>b</code> is <code>null</code>.
11 *
12 */
13 public final @NotNull @Positive Integer bar(final @NotNull String a, final @NotNull String b) {
14 String s = a;
15
16 if (foo(a)) {
17 s = b;
18
19
20
}
return s.length();
Document Pre-/
Postconditions.
21 }
22
23
A flexible and extensible framework that would allow us to tag videos with meta data,
provide a search interface, and a way to automate as many of the preprocessing steps as
possible would greatly improve the productivity of the entire Vision, Video & Graphics
group at the MPI Informatik.
An app (running on Android of course :) ) which creates 3D meshes from videos you take
during a walk through the city. A user first makes a video of a short walk through the city.
This video is then analyzed with structure-from-motion algorithms in order to detect and
track feature points. Afterwards the textures are extracted from the video streams and
projected back to those planes, making the 3D approximation of the city environment
complete.
One important point here, is that the processing power of a phone might be not enough.
Students might think about (or better they should do this) to port the processing part of
the work to a server. Hence the phone just uploads the video to the server, which is then
processed there.
Possible Applications
• Research interests
• Just to answer the question if and how well this is doable
• Augmented Reality
• Wear Google-Glasses and project ads directly onto
building facades
Requirements:
• The App must deal with limited hardware resources: cheap Android-Device or comparable
embedded hardware (max 1GHz 32bit CPU, 512MB RAM, limited network bandwidth)
• The resulting geometry must be delivered with at least GPS accuracy (better if you can improve the
accuracy to several centimeters)
• Try to be as robust as possible, to avoid clutter introduced by people, cars, trees, obstacles, …
• Implement a library layer with a nice API, so that the main algorithm is usable without the app
• Try to make it as real-time as possible
• Implement in C/C++ (Android-NDK) or Java (Android-SDK)
For speeding up our research in advanced video processing, we would like to develop an
user interface for performing common operations in video.
In our projects, we often make use of different tools for various image and video
processing tasks, but these tools are unaware of each other and we often spend a lot of
time connecting outputs to inputs and providing configuration parameters. We would like
to have an interface where we can draw a graph representing the work flow of a video
processing pipeline, where the nodes represent operations, and the edges represent
connections between inputs and outputs. The project would involve developing the user
interface for editing the graph, an specification for storing the graph, and an programming
interface specification for defining the interface between the external tools and the user
interface, and for defining the format of the inputs and outputs.
An intuitive user interface will allow us to explain the annotations to the non-experts, while
a careful design of the data storage scheme will keep the necessary linguistic details.
Several existing pieces of software can already achieve bits and pieces of the
functionalities we want, and can serve as the starting points for this project. But an
integrated redesign of the editor architecture is desirable.
But . . .
I It no longer compiles out-of-box due to dependency on
deprecated libraries
I Software documentation is incomplete
I Maintainance and support have long stopped
Yi Zhang <yzhang@coli.uni-sb.de>
We currently have access to a database of registered full human body scans. We are
interested in a graphical user interface that allows us to explore the shape and posture
variations present in the database. More specifically, the shape and posture variations
should be decoupled by modeling the transformation of each triangle as a transformation
related to shape followed by a transformation related to posture.
The shape and posture transformations can then be analyzed separately using principal
component analysis (we have C++ code available for this). Once these computations are
completed, we would like to be able to interactively explore the main components of the
shape and posture variations in a graphical user interface. Ideally, the code should be
written in C++ and compile using Microsoft Visual Studio 2010.
OpenStreetMap has used CrowdSourcing to create some of the best 2D-maps of our
planet. We now plan to extend OSM into a 3D model that can easily be updated and
improved by anyone.
Challenge: Is it possible to combine the distributed, ad-hoc nature of P2P with the low-
latency, high-throughput capabilities of CDNs and the independence of mirrors, while
providing unique URLs, all in the spirit of CrowdSourcing?
OSM OSM-3D
Challenge:
Develop a storage system that combines:
‣ The simplicity and ease of use of mirrors
‣ The ad-hoc nature of P2P networks
‣ With the speed of CDNs
Donnerstag, 19. April 12
Type-checks to enforce resource-aware policies on
cryptographic protocols
Organization: Cryptography Chair
Contact: Fabienne Eigner
Most online services rely on the use of cryptographic protocols: we all want to be assured
that credit card information sent to Amazon is 'safe' and that the card is only charged if
we actually buy something. We also want to be sure that if we buy a DVD, Amazon
charges our card only once.
These kind of security properties can be expressed using 'authorization policies'. Proving
that a protocol adheres to a specific policy by hand is a mess! Type systems (known from
programming languages) have been discovered to be useful tools to enforce authorization
policies.
The last of the previous examples ('buy one, pay one') has been out of the scope of
existing type systems. We have developed a new type system for this class of security
properties, and are looking for your help to implement the system as an automated type-
checker.
Find us at http://www.lbs.cs.uni-saarland.de
anguage-based security group
Donnerstag, 19. April 12
Buy one, pay one: A type-checker to enforce
resource-aware policies on cryptographic protocols
Most online services rely on the use of cryptographic protocols:
imagine you want to buy a CD from Amazon
the cryptographic protocol should ensure that:
My credit card is charged
i t c a rd only when I buy something!
c r e d
My a fe '!
i s' s
in fo If I buy one cd, Amazon
charges my card only once!
How many students in Programming 1 got an 'A' in their midterm? How many people in
Germany suffer from diabetes, and how many of them are members of your insurance?
Such statistical information about data collected in databases is often released to the
public. On the one hand, disclosing this kind of information is often desirable for analyzing
trends, performing marketing studies, or conducting research. On the other hand, this
information leakage may also seriously compromise the privacy of the entries in the
databases. For instance, releasing information about whether or not Peter got an 'A' in
the midterm would clearly not be considered as a 'safe' query.
The notion of differential privacy is a well-established concept to define the safety of such
statistical queries.
We have developed a type system that can be used to prove that a query is differentially
private and are now looking for a team that helps us implement the system as an
automated type-checker.
Current databases such as the Human Metabolome database or Lipid Maps do provide
detailed information on target compounds such as molecular structure, exact mass,
PubChem or the Independent Chemical Identifier (InChI) etc. No information, however, is
available on the nature of the experimental determination of the compounds from
biological samples. A thorough literature search is essential for scientists in these cases –
a task that can be very challenging, additionally complicated by the rapidly growing
number of publications.
This challenge is easier accomplished for new scientific fields because of the limited
number of relevant papers. Imaging mass spectrometry is a relatively young discipline,
being an ideal test ground for a new database, which does not yet exist but is urgently
needed. This new field allows us to exhaustively cover the entire available literature and
develop a state-of-the-art database.
It is vital to implement an interface for automated searching and importation of citation
data based on the DOI (digital object identifier) system. The database should be rolled out
at first as an intranet version but should offer the flexibility to be adapted for web-based
use in the future.
PI(20:2/18:3)
Structure identifiers,
systematic and common
names, exact mass,
category/main class/
sub class, …
Imaging mass spectrometry (IMS) is a young discipline, being an ideal test ground for
a new database.
Milestones:
• Discussion of reasonable relations of data and overall design aspects.
In our project NIFTi (www.nifti.eu), we use a robot to maneuver through Urban Search and
Rescue (USAR) environments to help firefighters find and rescue victims. We would like
the information to be gathered by the robot to be integrated with real-time geo-spatial
information from Google map services to get a better understanding of the rescue
scenario. We have a basic system that can be used to convert geo-referenced data from
the robot in ROS (a robot middleware), into the KLM format and Google Fusion tables
that can be displayed on Google Maps and Google Earth respectively.
We would like
1. To convert more data structures from ROS into either/both KLM data or/and Google
Fusion Tables.
2. To have a simple GUI that can display and modify this data.
3. To bring more autonomy in the system by considering problems in connection/data
loss etc.
4. If time permits, to make this into an android application. Perhaps even start by making
it an android application.
Mapping data
data
Google Maps/
ROS Google Earth /
Robot ROS Server
Maps component Open street maps
application
Mapping data Convert more
ROS messages
/ data structures
Improved
communication
Read and convert more ROS messages
• Read geographical messages in ROS and visualize them appropriately
• Example: Waypoints, Specific areas, Markers etc.
● Warning: These APIs may be in other languages (not C++), which means they may not be easily
The media gallery of the Academy of Fine Arts Saar offers artists and researchers a
unique opportunity to explore the cultural constitution of (public) space. Designed as a
media facade as well as an interactive audio-visual environment, the screen serves as an
experimental site of projection as well as reflection, an instrument both to create and
conceptually explore new forms of aesthetic communication.
On a regular basis, artists and researchers are invited to create their own iteration of the
general curatorial perspective.
The goal of this project is to create a management software for scheduling what videos
are displayed on what video screens at what time.
Our group is doing research on distributed database systems. For this, we need to run
experiments on a cluster of servers. Since we have only one cluster but multiple people
who want to run experiments for different projects, we need a way to schedule and
coordinate the usage of the cluster.
Additionally, setting up and configuring the cluster for experiments is currently very painful,
because one typically needs to write a certain number of scripts and edit many XML
configuration files for each node. We want a nice GUI that allows us to control and
configure the cluster.
The focus here is on Hadoop, but it should be generic enough to be extendable for other
distributed systems. In contrast to existing solutions, the tool you create should allow
multiple users to reserve nodes for a certain time slot and to see who currently holds a
reservation on a node.
Jorge’s Cluster
Future
Jens’ Cluster
Free Nodes Configure
Stop Jorge’s conf
Reserve
Default conf
Add
Our group is doing research on distributed database systems. For this, we need to run
experiments on a cluster of servers. Since we have only one cluster but multiple people
who want to run experiments for different projects, we need a way to schedule and
coordinate the usage of the cluster.
Additionally, setting up and configuring the cluster for experiments is currently very painful,
because one typically needs to write a certain number of scripts and edit many XML
configuration files for each node. We want a nice GUI that allows us to control and
configure the cluster.
The focus here is on Hadoop, but it should be generic enough to be extendable for other
distributed systems. In contrast to existing solutions, the tool you create should allow
multiple users to reserve nodes for a certain time slot and to see who currently holds a
reservation on a node.
Future
2500
Hadoop Hadoop++(256MB)
HadoopDB Hadoop++(1GB)
2000
runtime [seconds]
1500
1000
500
0
10 nodes 50 nodes 100 nodes
benchmarks
Hadoop Hadoop++(256MB)
140 HadoopDB Hadoop++(1GB)
HadoopDB Chunks
120
systems
runtime [seconds]
100
80
60
schedule experiments 40
20
0
10 nodes 50 nodes 100 nodes
BenchFramework
Information System Group
Donnerstag, 19. April 12
Part 2 from Thursday, 18 April 2012
Tag your environment (real world) with some text snippets or url links. This should be
implemented as an app running on Android. A user, who would like place a tag, starts the
app and aims with his phone on anything in his environment.
A second user, who would like to find such a tag, just need to go to the stored GPS
coordinates and use his phone to look around for the tags. The phone app should be
able in realtime to compare the feature points coming from the phone's camera with
those found in the online database. Whenever the match is found, the tag is displayed.
Your Job: develop an Android App, which takes a picture and put
all information required to describe that picture together with
uncertain localization information to a database. Another person
can point around with the phone in order to find the object taken
with the picture again.
You tag It - They look for It !
Requirements:
• The app must deal with limited hardware resources: cheap Android-Device phones
• The app must be as robust as possible, i.e., almost no false-positives !!!
• Try to make it as real-time as possible
• Implement in C/C++ (Android-NDK) or Java (Android-SDK)
We want to develop a road sing which enables the vehicles to compute their position and
orientation relative to it. The Vehicle then transmits this information to the road sign, so
that they both can reconstruct the road situation in real time.
Camera
3D reconstruction!
"I, Librarian" is an application to build an annotated library of PDFs. Its roots are in
bioinformations and we would like to have some extensions to make it more suitable for
us. One important feature is to hand it a PDF and have its meta-information extracted
automatically. There is some support to determine the DOI of a PDF, but I currently cannot
handle cases, which are important to us.
For example, it should detect that a PDF was published at ACM and make a query there
to determine its DOI and other meta-information to fill in information for its database. The
same should be done for IEEE, Springerlink and other sources.
Redmine is a flexible project management web application using the Ruby on Rails
framework. It is cross-platform and cross-database. The Intel Visual Computing Institute
uses Redmine to keep track of its various software and documentation projects.
After creation of a new project Redmine can automatically create a version controlled
repository out of the box. However this automatic creation is rather inflexible. The type of
the repository (Subversion / Git / Mercurial / ...) is fixed by the system administrator
beforehand. Users cannot choose their desired flavor of version control. Your job is to
extend Redmine's functionality to enable users to choose their desired brand of version
control, as well as enable the backend scripts to create repositories according to the
user's choice.
Enable
Redmine
to
retrieve
the
user‘s
desired
SCM
flavor
to
create
a
corresponding
repository
This
includes:
Update
graphical
user
interface
Extend
backend
database
schema
Extend
repository
crea-on
scripts
Enable
the
administrator
to
configure
certain
aspects
of
repository
crea-on
...
Requirements include:
• Web frontend where pupils can upload their code, receive funny and motivating results,
see a high score and can compete with each other
• Backend which enables the tutor team to create challenges and change the text of the
test results in a way that the automatically generated feedback is funny and motivating
at the same time
• To adopt open source software system (Praktomat?) which receives source code for
different assignments and tests the code automatically on functionality and software
engineering criteria
YOUR CODE
6 Evaluatio
From the stude
success. In th
judge whether
ity of their pro
57.7% confi
(and an addi
61.5% confi
ing program
confirmed th
63.5% confi
grams read
Donnerstag, 19. April 12 Figure 2: Mutual reviewing in Praktomat
Programming)for)pupils)
We would like to create a community-oriented programming system. Pupils
get programming challenges over the web, can submit their programs, have
them automatically tested and get skill points for it or can review each
other‘s programs.
Organization:
• Computer Science Department
• Cluster of Excellence
Contact:
• Karim Rezeg – responsible for MMCI Special Missions
<krezeg@mmci.uni-saarland.de>
Your task will be to design and implement a user interface for the calculation of the
parameter sets. It will comprise plausibility and eligibility checking of the input (which is
the channel state information), validity of the output and visualization of the output for
different channel states. The visualization (graphically or in tables) should include a sorting
so that similar inputs and or similar outputs can be grouped and potential correlations can
be detected.
Predictably Reliable
Manuel Gorius
gorius@nt.uni- Protocol ... Pt Pres
saarland.de
‣
Reliability Model
... meets delay constraint (Dt) ...
Thorsten Herfet
herfet@nt.uni-
saarland.de
‣ ... and reliability constraint
(Pt) ...
Pe Channel
Model
‣
www.nt.uni-
saarland.de ... with minimum redundancy
information (RI) and residual
erasure rate (Pres)
87
Donnerstag, 19. April 12
Predictably Reliable Real-time
Parameter
Calculation NACK
Data Data
Source Sink
Manuel Gorius
gorius@nt.uni-
saarland.de k k
Thorsten Herfet
herfet@nt.uni-
saarland.de Packet-level Packet-level
Packet Loss
FEC Encoder FEC Decoder
Telecommunicati
ons Lab
Dtarget
www.nt.uni-
saarland.de
88
Donnerstag, 19. April 12
Visualization of Open Street Map Routing Services
Organization: MPI Informatics
Contact: Adrian Neumann
Your job will be to use (and criticize!) this API to write a graphical
front-end that supports requests a la Google Maps. How exactly you
realize this, with a website, a desktop application or even something
for mobile devices, is mostly up to you. We believe the hard part will
be the coordination with the students from the Algorithm Engineering course.