Remember to check this regularly
This new course, organized as a CS 395/495 seminar/project, will focus on new ideas and developments that address one of the greatest challenges faced by the computing community: the design of large-scale systems whose operation requires no human intervention other than to add/replace hardware or to change the system's service contract. As systems become more interconnected and diverse, architects find it increasingly difficult to design interactions among components and anticipate their consequences - "The growing complexity of the I.T. infrastructure threatens to undermine the very benefits information technology aims to provide". The only option remaining is autonomic computing - computing systems that can manage themselves given high-level objectives from administrators.
Throughout the quarters you will read, present, and discuss papers on this topic, from autonomic middleware, to distributed systems, to monitoring and self-healing. You will get to explore some of these ideas as part of a quarter-long research project leading to a conference-style paper that will be presented at a mini-symposium and potentially extended into a conference publication.
In compliance with Section 504 of the 1973 Rehabilitation Act and the Americans with Disabilities Act, Northwestern University is committed to providing equal access to all programming. Students with disabilities seeking accommodations are encouraged to contact the office of Services for Students with Disabilities (SSD) at +1 847 467-5530 or firstname.lastname@example.org. SSD is located in the basement of Scott Hall. Additionally, I am available to discuss disability-related needs during office hours or by appointment.
The purpose behind these prerequisites is to assure that you get the most out of the course. Nevertheless, if you do not meet some of these requirements, but feel you are prepared to take the course, please contact me.
We will use the course web site to post homework assignments, projects, course-related announcements, etc. You should check this regularly.
The course is organized as a series of in-class presentations based on research papers (in charge of the students and instructor), a major quarter-long project, and a open-book, final exam covering the readings.
Research projects are a critical component of this course. Your goal is to design, construct and evaluate an interesting software system. The system should explore the issues, solve problems and exploit techniques from classroom discussions and readings. Projects must be written up in a term paper (due last day of classes) and teams will present their results at the end of the course in a systems class mini-conference. Projects ideas will be suggested by the instructor, but you are encouraged to come up with your own ideas.
This is the schedule of deliverables (this is mainly to ensure steady
There will be one final, open-book exam covering the reading material. A sample exam will be available along with sample solutions.
Unless otherwise indicated, homework assignments and projects are due by midnight on their due date. If you hand in an assignment late, we will take off 10% for each day (or portion thereof) it is late. Projects cannot be handed in more than two days late.
Collaboration is a really good thing and we encourage it. On the other hand, cheating is considered a very serious offense. When in doubt, remember that it's OK to meet with colleagues, study exams together, and discuss assignments with them. However, what you turn in must be your own (or for group projects, your group's own) work. Copying code, solution sets, etc. from other people or any other sources is strictly prohibited.