Do you own a digital camera? How many times did you look for half an hour at your own collection of digital photos and videos to find one photo or few seconds of video. This project aims at automating the search for personal images on your local hard disk. Google, Microsoft among other companies are working on solving this problem at large for an infinity of images on the web. We will solve a smaller problem and we will define it in an easier way to provide a better answer. At the end of this project, we will pick a cute name for our software and sell the product to one of the big guys. The team needs to have good programming skills and a passion on building software.
Testing GUI is a nightmare. Most current techniques use record and play to record a sequence of GUI events, save golden output at selected breakpoints, and then play the recorded event and compare the results. These techniques are very sensitive to any change to code, functionality, and even hardware such as resolution and color settings since the saved golden output highly depends on these factors. In this project, we will build a GUI automation tool that will allow specifiying properties of GUI formally so that we can automatically check whether the properties hold for the GUI with modern techniques such as shape analysis technqiues.
When do you know that you tested your code enough? The answer to this question is the coverage metrics. For example, statement coverage computes how many statements the test suite executed regardless of the conditions under which these statements were executed. Branch coverage techniques consider the branches the tests executed and keeps track of which value the branch condition has. Unfortunately, easy bugs escape from both and other more sophisticated coverage techniques. With the rise of lightweight formal methods for software, we see more properties embedded in code these days. In this project, we will build a tool that computes the property based coverage metrics. Property based coverage checks how much our test suite covers in terms of the properties we claim for our code. Early research shows that property based coverage can uncover bugs that escape most existing coverage techniques.
Last years witnessed the emergence of robot trading, aka algorithmic trading. The Trading Robot studies the market data at a macro and a micro level, and uses statistical analysis and a rule base to buy and sell shares and stocks. In this project, we will build a Trading Robot that uses statistical analysis as well as decision theory for consistency checks. Working on this project enables you to work for companies like Goldman Sacks and S&P in computational finance.
Top secret. For details see Fadi Zaraket!