Projects
If
you are taking the course for 4 credit, an extra team assignment is required
from you (in teams of 2-3 people).
The Assignment:
1.
Develop deep expertise on an applied operating systems topic.
2.
Develop a 40 minute presentation on your topic (by middle of semester).
3.
Best presentations are selected to share with whole class (online students will
need to use Skype or equivalent to present or to record their presentation).
4.
Develop and demonstrate a piece of software that builds on your expertise with
the topic.
The Topics:
The
topics below were voted on in class. Multiple groups are allowed per topic (at
the discretion of the instructor). If a topic is very popular, the different
groups will specialize in different aspects. Next to each topic, a suggested
software project is mention to satisfy requirement #4 of the assignment (as
described above).
1.
Android OS (Project may include a
novel Android application or an Android-based service. One example is GreenGPS.)
2.
Operating system drivers (project
may include low-level OS development, including embedded
operating systems, sensor
networks, wearable computing, or communication)
3.
Networking protocol stack implementation
in Linux (project may include novel networking components or services such as NDN)
4.
Exploits (project may include
privacy or security issues such as attack detection and prevention)
5.
Errors, process races, diagnostics and
recovery (project may include self-diagnostic or self-healing services)
6.
Understanding the boot sequence on Linux
(project may include Linux modifications)
7.
The single system image (project may
include distributed operating systems and middlware)
8.
Energy (project may include green computing, energy
efficiency, or power management)
Note:
Other requested topics that are closely related to the current areas of the
syllabus will be presented by the instructor when those areas are covered (see
schedule).
Timeline
By
Sept 5th: Sign up for topics on Piazza
By
Sept 10th: Team finalized
By
Sept 17th: Project abstract (1 page) due to instructor. Must
propose: (i) A tutorial component to share with
class, and (ii) a project to build a piece of software
Week
of Sept 24th: First project meeting with instructor (and schedule
future meeting times)
October
22nd: Draft (slides) of tutorial to share with class and midterm
check on software progress.
November
16th: Final (slides) of tutorial to share with instructor.
Week
of Nov 26th and week of Dec 3rd: Presentations.
Week
of Dec 10th: Software demo (by appointment)
December
12th: Documented software delivered (with brief description).