Computer Laboratory

CST Part IB group projects

Project briefs for 2013

We have 14 student teams for 2013. The projects were selected by the students from 20 different project/client combinations.


Project Briefs for 2013

1. Laser cutting round boxes from square sheets


Client: Dr Laura James LBJ@cantab.net Cambridge MakeSpace


Kerf bending is a cute method for making round boxes with a laser cutter, but it requires quite a bit of planning. The goal of this project is to build a system that can be used by customers to design their own wooden boxes in arbitrary shapes (e.g. letters of the alphabet), with the templates for the round sides automatically produced using kerf bending. The resulting pieces should be suitable for posting in a flat-pack format, in as few pieces as possible, with tongue and slot assembly. Examples of the resulting designs will be fabricated using the Computer Laboratory laser cutter.
Background on kerf bending: http://hackaday.com/2012/06/12/bending-laser-cut-wood-without-steam-or-forms/    
Special resource - interfacing details and access to laser cutter will need to be arranged with Brian Jones bdj23@cam.ac.uk

2. Reliable cycle-aware traffic light


Client: Nigel Day, ENEA Nigel.Day@enea.com


Most central Cambridge junctions snarl up at critical moments between lectures, with accidents, broken limbs and worse as students jump red lights after realising they are running late. Your task is to create a fault-tolerant traffic light controller (using a pair of Raspberry Pis with a hardware fail-over), that builds a traffic model based on weather data, university building management systems, bus timetables, and any other data sources that you can discover to accurately predict cycle volumes. This database should be combined with traffic sensor data to invent a new cycle-aware junction control model.


3. Scrobble Exchange: A massively multiplayer game


Client: Sunil Shah, Last.fm - sunil@last.fm


Last.fm is the world's most popular music recommendations website with tens of millions of users. Users scrobble http://www.last.fm/help/faq/  category= Scrobbling tracks that they listen to, which we collate into charts which show the most popular artists and tracks and can be filtered by geography and genre. Using our extensive API<http://www.last.fm/api>, this project's goal is to create an online multiplayer game where users can invest in a portfolio of artists and gain returns based on the performance of their portfolio. The mechanics of the game are up to you but you should take steps to prevent cheating, and implement market dynamics so users' behaviour has a visible effect on the market price of an artist. A successful project would likely see implementation on Last.fm and be made available to our large userbase, so scability is a key design goal, as is portability to the Last.fm operating environment (Python or PHP against a Postgres database under Debian Linux).

4. Safer social media


Client:David Kynaston E.Kynaston@btinternet.com

Young people with learning disabilities such as Down's Syndrome, ADHD or dyslexia are increasingly excluded from social media opportunities. Your goal in this project is to create a new front end for Facebook (using the Facebook API) to provide a straightforward set of social functions optimised for users who have very limited ability to use text in any form. Rather than the single-user mode of typical Facebook usage, it is also likely that a parent or carer may need to assist or review interactions. Your design should take account of this in a sensitive manner, including considerations of privacy and vulnerability

5. Personal/national mood tracker


Client: Tomas Cervenka, VisualDNA tomas@visualdna.com

National wellbeing is the aggregate of the population mood, but it's difficult to know whether mood estimates are accurate or not. In fact, even individuals find it difficult to estimate how their mood has changed over time. The goal of this project is to automatically estimate a number of factors that effect national mood - news, weather, economic indicators - and aggregate these with personal mood estimates measured via your mobile phone's sensors. These could include movement or orientation data (facing into the wind?), feeds from a Facebook profile, or other data. If users are unsure what mood they are in, they can check their phone. And a longitudinal graph might help to review the year, or forecast important mood transitions - like when the end of term is approaching.

6. Race the wild


Client: Craig Mills, United Nations Environment Programme World Conservation Monitoring Centre Craig.Mills@unep-wcmc.org

The UNEP-World Conservation Monitoring Centre wants to improve public engagement with wildlife conservation. One very successful approach is to help those interested in wild animals to learn more about their daily activities, and to imagine the environments that the animals have to survive in. The goal of this project is to create a game that runs on a mobile phone platform, allowing players to compare their own movements to those of wild animals that are fitted with satellite tracking devices. You are free to design a game scenario in any genre that makes use of play location data and animal tracking information.

7. Password and privacy protection with Pi


Client: Luke Morgan, IBM  MORGANLU@uk.ibm.com

Few children (or even adults) really understand what makes a password secure, or how to keep their online information safe. Your task is to create a simple set of password cracking and message encryption/decryption tools that children can run on the Raspberry Pi, together with a scripting language or GUI for them to run simple statistical experiments to understand what factors make their messages more secure. Children love code-breaking, so it should be easy to make this into an entertaining Raspberry Pi game, not just boring school work.


8. From Hogwarts to hackers


Client: Jeff Patmore, Engineering Design Centre  jjp43@cam.ac.uk

Many children are more interested in imaginative stories than tinkering with circuit boards. But they need not be excluded from Raspberry Pi. The goal of this project is to create a multiplayer online game, where each room of a castle runs on a different Raspberry Pi. The owner of that Pi should be able to define surroundings, objects, characters and scripted interactions (e.g. to learn spells or solve challenges) as well as visiting other player's rooms. Players get to learn about network topologies, scripting languages and command lines - but all while having sociable fun. A text adventure game might be the best choice - for example, of the kind that can be created with plot scripting language Inform7, or LambdaMOO, but you are free to attempt simple graphics or other presentation styles.

9. A platform for live online modding


Client: Matt Johnson, Frontier  mjohnson@frontier.co.uk

In sandbox games like Minecraft, the only way to define more interesting game scenarios is to write and install Java mods. It is possible to make automatic behaviours in the Minecraft world, but only using the cumbersome "redstone" logic blocks. The goal of this project is to make a new multi-player sandbox game, based on a 2D grid, where users can define more complex behaviours by clicking on a grid element to embed pieces of code written in a scripting language like Lua. You are welcome to use a commercial or open source rendering engine, but maintaining a shared persistent world will still involve solving problems of persistence, networking, live world management and session control.

10. #followthemarket


Client: David Rubin, Bloomberg  drubin19@bloomberg.net

Sentiment analysis of social media is now fairly routine, but it's still relatively new in the world of finance. Coupling popular sentiment with market data could provide a very useful tool for financial decision makers. Your task is to derive sentiment data from Twitter and present its relationship to market data in a tool for traders to test their knowledge of the market. The user selects a date range and a stock, and is then asked to sketch a graph of how they believe popular sentiment and stock price trends behaved over that time. The system gives visual feedback, and awards a competition score based on comparison to the actual data. This system might be used simply for practice and training, or as a game for would-be traders. But in the long term, statistical data showing the ways in which the judgments of real traders predict (or lag) Twitter trends might provide an extremely valuable product!

11. Rule-tris introduction to programming


Client: Luke Tunmer, Qualcomm ltunmer@qti.qualcomm.com

All kids love Tetris, so why not help them learn programming by making a Tetris-playing robot? You need to start with a simple Tetris port on the Raspberry Pi (code your own, or use an open source version), then add facilities allowing kids to "play" it automatically with the assistance of an interpreted rule language. This language can be applied by users to define piece rotations and movements based on queries of the current game state and simple algebraic expressions. The rule condition queries and actions must be sufficiently constrained that it would take significant coding effort to make an optimal player, but should also be simple enough to provide incremental feedback for students, so that each new rule (if correctly specified) produces satisfying improvements.

12. Terabyte threat analysis


Client: Paul Reid, BT  paul.reid@bt.com

Large networks such as the BT phone network generate terabytes of routing metadata, but the size of the dataset makes it difficult to interact with that data in realtime. This means that threats to the network - whether natural disasters or intentional attacks - may not be recognised until it is too late. Your task is to create a threat visualisation and rapid response tool that uses the Hadoop distributed data framework to identify network vulnerabilities from data traffic analysis, and helps to plan and prioritise technical responses.

13. Friend meeting/tracking application for the Elderly


Client: Austin Donnelly, Microsoft Research  Austin.Donnelly@microsoft.com

Elderly people sometimes need help to remain active and social. This project explores how a smartphone can arrange social gatherings/ meetings for them. This might include encouraging people to meet up by locating their friends, perhaps notifying them that a friend is nearby, and maybe even suggesting a location to meet. It may also be useful as a monitoring device for patients who make a habit of wandering off, distressing their family and carers. The user interface is important, since it must be accessible to those with less good eyesight and hand coordination. There will be little credit for boilerplate features such as user registration, account maintenance and database design, rather we expect to see innovative technical solutions to the user interface, messaging, security (privacy) and identity. The final goal is a Windows Phone 7 application that has been accepted into the Marketplace for general availability. Phones will be provided for testing.
Note that Windows Phone 7 development requires .NET tools, so the development language for this project will either be C#, F# or VB.

14. Cycle path mapping with a custom hardware platform


Client: Steven Johnston, Microsoft Research  v-stejo@microsoft.com

The aim of this project is to produce a highly accurate map of the Cambridge cycle network including information about inclines, one way roads, restricted access. Since this will require more data than can be gathered using a simple GPS device or smartphone this project will have a custom hardware element based around the .NET Gadgeteer platform. The first part of the project will build a device to capture data such as GPS, accelerometer, compass, cadence, wheel rotation, heart rate etc, to produce a sample dataset representative of the Cambridge cycle network, as well as providing the cyclist with relevant data.
The second part of the project will process and visualise the sample dataset. This will include removing erroneous data, fusing data streams and maps to improve accuracy and inferring cycle features from the data whilst keeping an emphasis on data accuracy. This information could be used to recommend cycle routes or diversions in real time, assist with finding a bike rack, or perhaps the addition of new cycle lanes. The resulting dataset should be open and accessible.
Note that Gadgeteer development requires .NET tools, so the development language for this project will either be C# or VB.