CS5412 Spring 2014 Project Ideas


How CS5412 Projects Work:

Below we have a list of projects broken into three categories: GridCloud, Mica and "other". 

  1. The GridCloud projects are opportunities to contribute towards our research program to create a platform for monitoring electric power grids (the "smart grid" needs a place for the smart stuff to live... GridCloud is intended to be that place).  These projects are for teams, and will create open source solutions that Cornell will distribute for free under a 3-clause BSD open source license.  Most of them involve working with the Isis2 platform and hence will require learning C# or C++ and some other fairly complex technologies.  We'll help as much as we can, but these are all projects for serious, skilled hackers. This also includes the Zookeeper project, which uses Isis2 to create a new version of the Zookeeper system.  This is a medium hard project and suitable for a team of two, if those two people are talented software engineers and know C# and .NET.
  2. The Mica projects build on a Java infrastructure called the Microprotocol Composition Architecture.  These require a bit less background and are for individuals or very small teams of just two people.
  3. The other projects can be done using other kinds of technologies and are of varying levels of difficulty.  You can also propose a project fully defined by you, but it should be similar to the ones shown in the sense that all of the ones shown here have a clear cloud computing aspect and are challenging, yet feasible in one semester.  All projects must use things we learn about in the course.

You do not need to use Isis2, Mica or other Cornell-developed cloud technologies, but we do want you to push outside of your normal knowledge and experience and try new things.  Experiment with a cloud technology you've never tried previously.  We'll ask what you knew coming into the course and what cloud technologies you learned about and used by the end of the course, and the grade for your project will reflect that delta!

What are the different project stages and what do we need in each one of them:

Team Formation and Project Idea (due February 3)

  1. The full list of project participants (either just yourself, or if you work as  a multi-person team, full names and netids for all team members).  But please note the comments below about how big a team can be!
  2. The project title and difficulty level (either from the list below or, if you propose a new project, similar in style).
  3. A brief description of the project (either from the list below or, if you propose a new project, similar in style).
  4. If you will use your project for MEng credit, a sentence saying " This project will be used for CS MEng credit, approved by (Ken/Theo/Stavros) ".  Please note the rules given below!  You must respect them or we can't approve the CS MEng credit request.  The name to list can be Professor Birman or one of the TAs and that person must meet with you, discuss your plan for MEng project credit and approve your plan.

Project Proposal (due February 10)

  1. A paragraph (or bullet points) on what you will do to carry out the project:  "We will download the Isis2 and Live Distributed Objects system, build them under Windows, implement our own architecture for monitoring electric-power" phasor management unit" devices (PMUs), place simulated PMUs on the NSF GENI testbed...." etc.  You should also accompany these actions with an estimated date of completion (time schedule for the project). You can evolve this plan later if needed; the one you file is an initial concept.
  2. A paragraph (or bullet points again) explaining how you will demonstrate the project (on completion, we will have a visual demo and a poster.  The demo will show....)  This can evolve over time too.
  3. If team of two or more, who will do what?  How often will you meet?  How many hours per week will you work on the effort?  How many credits are you taking: can you really spend that number of hours per week?  We allow teams of two for any project.  There are two large GridCloud project opportunities.  These can be tackled by a team of at most five people, but if you do plan to have a team larger than two, we want to know exactly who will play what role, and also who will be in overall charge of the effort.  Larger teams demand a higher level of organization right from the start.

Intermediate Report I (due March 13)

    Old and current (if they are different) proposals, along with information about what has been achieved and how (green status), what is in progress and how it is going (yellow status) and what is not done at all (red status). You should also justify any changes made to the previous proposal.

Peer Reviews (due March 26)

    Peer review of 3 projects on all the phases so far. More details will be announced later.

Intermediate Report II (due April 14)

    Same as Intermediate Report I.

Final Report (due May 6)

    Same as Intermediate Reports. We expect to see everything that is reported here as completed (green status) in the demo/poster day mentioned below.

Demo/Poster Day (May 7-9)

    A poster explaining the architecture of your system and how it works and a live demo that demonstrates the full capabilities of the system. We'll also have the original plan with us and will want you to explain how you departed from the plan if the thing you actually do isn't quite what you originally had in mind.

All the documents excluding the poster need to be commited to CMS (http://cms.csuglab.cornell.edu). The posters can also be used in BOOM (see Extra credit below).


On the following link we provide the slides of the presentation that we did on 2/6/2014 for the project proposal as well as the rest of the deliverables above. It can be used as a reference guide for determining what we expect you to include in your proposal and other deliverables.

MEng Project Credit:

As you know, Cornell MEng students must do an MEng project.  You can use your CS5412 project to satisfy this requirement.  If you wish to use CS5412 for MEng project credit, just sign up for 3 credits, graded, of CS5999 with Professor Birman's code.  We will use the CS5412 grade as the CS5999 grade.  Note that this means your quiz scores in CS5412 actually count towards you CS5999 grade too.  We must explicitly agree to your MEng project plan before you can consider yourself to be approved to do this.  So please meet with Professor Birman, Theo or Stavros within the first days of classes to get their approval for this plan.

Due Date:  CS5412 projects are due on the last day of the course, which is set aside as a project demo day.  On request, short extensions of at most 10 days may be granted, but you must request the extension, explain precisely why you need extra time, and get actual permission from Professor Birman or a TA, in writing.  Otherwise, late projects will be reviewed during the same 10 day period but if you didn't get permission to finish late, a penalty to your grade may apply (e.g. A+ work might get an A grade if you finished a week late and didn't have permission to work a week longer).

Grading:  Your MEng project will be graded by doing a demo and also presenting a poster that shows what you did to the grading team composed of Professor Birman and the TA.   We grade in the range B to A+ for most projects.  Sometimes a very weak effort may receive a B- or lower.  Our aim is to have the median grade be on the B+/A- border: half above and half below.

To get an A+ in CS5412 you must be one of the very best projects that the team saw.  We award very few A+ grades.  Sometimes we don't award any; more often, four or five students in the entire class might receive an A+.  The quiz scores also count towards your CS5412 grade. 

Extra credit:  An MEng project shown at the BOOM projects fair will recieve extra credit (e.g. B work might receive a B+ grade).  However, extra credit will not boost your grade from A to A+.

Projects not on our List:  You can definitely suggest a project of your own but it should be similar in spirit to the ones on the list and you should tell us which chapters of the textbook you hope to draw on in developing your solution.  We do not allow CS5412 projects to come from completely different courses or areas.  Thus while you might manage to find a project that overlaps between the security class and the cloud computing class (in which case we would probably let you do the one project for both courses), more often it would be hard to pull that off because the coursex cover different material.  A CS5412 project, in short, must be based on what we learn in the CS5412 class.  But you can definitely bring ideas from other settings into CS5412 and combine those with things we do in CS5412 to end up with a cool project that would explore issues in our setting and yet be useful in some other situation.

  1. [GridCloud, Large effort for a team of up to 5/6.]   This group will develop an "operator's console" solution for the smart electric power grid.  Visualize a very large tablet computer (in practice you'll probably develop this on a normal workstation, but the idea would be to think of it as a "table-top" display running a solution like the Microsoft Surface infrastructure.  The operator would see a graphical rendering of the electric power system, and in fact creating this is one part of the job.  The power buses and generators and loads would be shown on the rendering and would have live, dynamically updated values on them.  This you can base on an existing project done in the fall.  Then you'll support a way of "dragging and dropping" various computational tools onto the system: apps for the power grid operator.  Those apps would perform useful tasks, like evaluating the state of the grid if such and such a line were taken out of service.  There will need to be a kind of a visual folder to contain these apps, and your team will need to create at least a couple of examples.  We hope to use the best solutions as part of our research project.
  2. [GridCloud, Large effort for a team of up to 3.]   This group will develop a security solution for GridCloud, based on an idea Professor Birman can explain.  Basically, we want to support multiple organizations that would all use the GridCloud platform, but would have individual ownership and control of their individual data.  Then we want to allow explicit portals to be opened between organizations, if both authorize them. The solution would need a visualization tool for understanding who is authorized to do what, a representation of the security rules and policies, and mechanisms for using AES-256 keys to implement these rules.
  3. [GridCloud, Medium effort for an individual or a team of 2.]  We also need to create a good data archiving system for GridCloud, focused on PMU data (from synchrophasor measurement units) and SCADA data (other kinds of sensors, topology information, etc).  This team will decide which cloud storage options to use, build and demonstrate a solution, and show how to create applications that access and compute on the historical power systems data in various ways.
  4. [GridCloud, Medium effort for an individual or a team of 2.]  Cornell's TCP-R technology protects TCP connections, including SSL/TLS connections, so that you can move the endpoint around or even restart a failed endpoint server.  Using TCP-R this team will demonstrate a kind of bulletproof service that maintains highly responsive connectivity even if service instances come under DDoS attack.  The service itself would run on a cloud platform.
  5. [GridCloud, Medium effort for an individual or a team of 2.]  Cornell's Mica platform is very useful for building monitoring infrastructures.  This group will build a system to track the state of a large, complex system and visualize it in various ways so that the developer can tune performance, identify hot-spots, etc.
  6. [Zookeeper, Medium effort for a team of 2 or 3.]  Zookeeper is a distributed file system that was created at Yahoo and is available as an open-source platform.  Your job will be to keep the Zookeeper API but replace the stuffing with a layer that you'll design, and that uses Isis2.  This new implementation should then support the same functionality as Zookeeper even though it would be build in a new way.  Then you'll compare performance and ask what the most performance critical paths are, and do what you can to optimize.  Zookeeper is a pretty mature and stable system, so it may not be easy to beat the Zookeeper numbers... but you'll try!  If successful, we'll release this to the Isis2 user community, under the same 3-clause BSD open source license used for GridCloud.
  7. [Mobile Mica.  Smallish project for an indidual or a group of 2.]  Mica has never been used in a mobile environment.  You'll port Mica to run on a mobile platform of some kind and then will develop all sorts of amazing stuff for mobile collaboration and sharing.  You'll invent some applications to demo this great new solution.
  8. [Mobile Other. Group size would depend on the nature of the appliction.Many groups will want to develop some form of mobile application for Android or iPhone or Microsoft Surface that uses an app on the device and talks to a server that would be hosted on the cloud.  You might consider doing a game, some sort of application useful for college students, smart building applications that optimize power use, air conditioning, lighting, door locking/unlocking, finding people, etc; health apps for people who aren't in a doctor's office but want technology help in training, eating properly, managing chronic health conditions, etc; smart power grid kinds of applications aimed at optimizing power use in the home to match power pricing, etc.
  9. [Maurader's Map.  Medium project for an individual or a group of 2 or 3.]  This for gamers.  Build the ultimate gaming tool for use in applications like Humans v. Zombies or Splat!, aimed at iPhone and Android platforms, and able to superimpose live data about locations and other kinds of resources (safety zones, wands of ultimate power, pits of cosmic cleansing energy...) with dynamic updates as players move about and conditions change.  You can use Isis2. Mica, other cloud solutions or invent one of your own.  Real-time performance is key here!
  10. [Distributed Robot Knowledge Base.  Medium project for an individual or a group of 2 or 3.]  Your goal here will be to use technologies from CS5412 to show how one could create a kind of operating system for robots that are collaborating to solve a shared task, like searching a damaged area after a major accident to look for survivors.  The focus would be on the shared knowledge base and how to use distributed communication protocols to create and update it.  Ideally you will need to find a way to demonstrate this solution, perhaps using a robot simulation of some form.
  11. [Smart Cars Knowledge Base.  Medium project for an individual or a group of 2 or 3.]  Everyone is talking about smart vehicles and how the cloud enables them.  Well, your job will be to contribute to the technology in this emerging space.  This is a bit like task 9 but at a different scale.  Build a cloud-based infrastructure to track where vehicles and other objects are located, and to support high rates of queries of the form "what objects should I be aware of in the next 150 meters as I drive down Bryant Avenue from location (x,y) to location (x'y')?" 
  12. [Next Generation Internet.  A hard project for a small team with excellent networking skills.]  You'll propose and prototype some form of technology to assist cloud computing companies in making better use of the Internet.  You'll need an idea about how to make the Internet a better place for these kinds of customers (think of Amazon, Google, Facebook...) and you'll use cutting edge technologies to demonstrate that your idea can really work.  You can demonstrate the solution on PlanetLab or, if accounts are available, on the new NSF GENI platform.
  13. [Cloud hosted devices.  Group size should map the kind of task you have in mind.]  This spring we have a LOT of ECE students in the course.  We would be very receptive to applications that might look at smart vehicles or aircraft and how they can draw on cloud resources to do a smarter job of steering themselves, parking, fetching their owner, etc.  We're especially interested in how smart cars and similar technologies can be defended against mishap or outright attack.  You could also look at other kinds of devices for the cloud and the systems issues raised by them: 3D fab devices, locks for smart doors in smart buildings, smart appliances for the home, intelligent cloud sensors that could be used to monitor a city while protecting privacy, traffic sensing and control technologies, etc.  Just make sure that you and your team can solve the whole problem.  We do expect that these projects will do a reasonably thorough job on whatever topic they tackle.

More than one person or team can independently undertake the same project.