CS5412 Spring 2015 Homework and Projects


Prior offerings of CS5412 had a large semester-long project that could be done in teams.  However, we found that some students were unprepared to tackle a completely open-ended effort and weren't really ready to define their own project.  This lead to too many delays and confusion and people didn't get started early enough in the semester.

Accordingly, we've decided that in spring 2015 we will experiment with a slightly more directed approach.  This semester, only students who are enrolling for MEng project credit will do larger semester-long projects.  Everyone else will do a series of assignments we'll pin down fairly concretely, to make sure that you get hands on experience with the key cloud computing technologies.  And we'll run an evening recitation section on Wednesdays to answer questions about how to approach those.  But CS5412 is a graduate course and we won't hold your hand.  This is because as a MEng student you need to become very independent and can't count on people to tell you step by step what to do.

With this in mind, in the spring 2015 semester every CS5412 student will be expected to undertake a series of individual homeworks aimed at building up a technical skill set using real cloud computing technologies, and then demonstrating those skills in an integrated cloud application for the final assignment. 

How about MEng project credit?  Here it gets complicated.  In the past we used to let you count your CS5412 project for MEng credit, but now we don't have a project.  So instead, if you want MEng project credit in association with CS5412, you'll need to enroll for 3 credits of MEng 5999.  Then you will do the basic requirements for CS5412 like everyone else, but will also do an additional personalized project.  

We should probably warn you that we use a surprisingly effective software system to check for cheating of any kind.  You are welcome to use open-source code from (only): Amazon cloud computing (AWS) itself, Oracle's Java.com, or Microsoft's .NET.  Include comments if you cut and paste code from one of those sites and make sure to indicate the source.  Do not hand in code developed by other students, or purchased from "we'll do your homework" web sites, and please do not share your code with other students.  We expect each and every student to do his or her own work!

If you fall behind, talk to a TA or to Professor Birman.  We can usually work something out, and that is way better than borrowing a solution from someone else and then having both of you get into trouble,

In assigning these homeworks, we're assuming you have satisfied the prerequisites for this class.  To be in CS5412 you need either CS4410 or an equivalent background.  The homework assignments will also require programming skills in Java or C# or C++.  If you are not skilled in one of those languages, or have never taken an operating systems course, or do not know how to open and read and write a file, you are not yet prepared for CS5412.  You should also be familiar with multithreaded programming and locking; again, if this is something unfamiliar, you are not yet ready for this course and should take a more basic course. 

Homework assignments:

CS5412 will have a series of homework assignments, with 2 or 3 weeks to work on each.  All are required and will be graded.  They are aimed at building up your skill set for cloud computing and some draw heavily on material covered in class.  We do have a weekly recitation planned, but it will be for trouble-shooting, not to teach any topics beyond those covered in the main lectures.

Projects are for MEng Project Credit only.

As noted earlier, CS5412 no longer has a required large project.  The series of homework assignments has replaced it.  In spring 2015, only students seeking to get independent project credit under CS5999 (or for undergraduates, CS4999 or a similar course code) would undertake a large independent project.

If you plan to sign up with Professor Birman for CS5999 credits, please arrange to meet with him for approval first.  He'll want to make sure you have the prerequisites for these projects.  For example, you do need experience using the kind of software platform the project requires.  You'll work pretty hard for your 3 credits, so he'll also want to be sure you actually have time for what you are proposing to do.

We have placed a number of project suggestions on Isis2.codeplex.com, and we recommend that students who wish to get MEng project credit in connection with CS5412 look at that list and consider doing one of those projects.  You can then take 3 credits of CS5999 for your project.  This semester, due to a lack of TA resources, we do not expect to supervise any projects outside of this basic set, but there are ways to adapt some of the Isis2 projects to look a bit different.  For example, you could get access to a radar track and flight plans database and do a fault-tolerant air traffic control system.  This would resulting in a project rather similar to one of the existing isis2.codeplex.com suggestions, although you would develop a different display (GUI) and obtain data from a different source.  So that would be an example of how one can customize the existing suggestions.