Please note: This syllabus is regularly updated. The subject material and assignment due dates are correct, but the readings may change over the course of the semester. Please check the course web site for the most current list.
Last modified 9/4/05– PR
Contact Info
Course objectives
Coursework
Policy
Grades
Schedule
Self-assessment: preparation and
pre-requisites
Placing out if you know the material already
Office hours: Mondays 4-5 pm, 3246C SI North. Tuesdays 12-1, lunch outings near West hall. Sign up on the Wiki at http://icd.si.umich.edu/twiki/bin/view/Main/PROfficeHours
If you’d like to schedule a time, send email: presnick@umich.edu
Section: Friday 9-10 and 10:30-11:30, 412 West Hall
Office hours: Thursday noon-1 pm, Espresso Royale (E. University & S.
University) and by appointment
email:
natb@umich.edu
This syllabus:
http://www.si.umich.edu/Classes/540/
CTools (for assignments):
https://ctools.umich.edu/portal
Twiki (for class discussion):
http://icd.si.umich.edu/twiki/bin/view/TWiki/TWikiRegistration (register
using the WikiName you wrote on the class sheet, or email your WikiName to
me after you register.) After you've registered:
http://www.socialcomputingresearch.net/twiki/bin/viewauth/SI540/WebHome
The networking of computers has transformed them from devices for computation and individual productivity into devices for communication and coordination. We are beginning to see profound effects of this transformation in organizations and in the public life of our society, most visibly in the amazing growth of the Internet. An understanding of networked computing will equip you to participate in and help guide society's transformation.
After mastering the material in SI540, you should be able to:
· quickly understand the opportunities created by networked application software you haven't seen before and explain them to people who have less technical background than you;
· participate with engineers in design discussions about new networked application software or variants of existing ones;
· read the information technology trade press and recognize application opportunities and strategic business implications;
· contribute a technologically informed voice to information policy discussions.
Although the course surveys a wide range of content, there are several recurring themes in networked, distributed computing. We will illustrate these themes with examples from the Internet; where applicable, eBay will serve as our running example throughout the semester. The following goals have motivated many of the innovations in computing over the last 20 years and will continue to motivate future innovations:
· Modularity/independence. It is difficult for people to keep track of systems involving lots of parts, and especially how the parts interact with each other. Hence, one goal of system design is to minimize dependencies between parts, and to document clearly those dependencies that exist.
· Reuse. Because it is expensive to design, implement and especially maintain software systems, designers strive to reuse software rather than creating each new application from scratch.
· Compatibility. People use different software and maintain different collections of data. Often, they'd like their software and data to work together, despite any differences.
· Scalability. A service should be able to serve an increasing population of users or tasks merely by adding more resources (an extra CPU, more disk space, or another employee). Ideally, the service should serve twice the population without using twice the resources, and certainly not using more than twice the resources.
· Reliability. A service should rarely malfunction and when it does, it should do so in a graceful way.
· Security. In a distributed environment, some of the actors may not behave as you'd like them to. Authentication and access restrictions can limit the availability of services to only designated people or systems, and restricted execution environments can limit the damage that untrusted software can inflict.
In order to achieve these goals, a few fundamental techniques have been developed.
· Abstraction. Abstraction hides details, focusing attention on the aspects of a system that are most important for a particular purpose.
· Representation. Data or information in one format can be transformed into another format that is more easily manipulated, stored, or transmitted, or is less easily understood or modified by adversaries.
· Standards. A standard specifies some feature that will be present in all implementations that conform to the standard. In networked computing, typically a standard specifies how two things work together, allowing independence among the implementations of things but preserving compatibility between them.
· Indirection and local namespaces. When referring to things, indirection can isolate the referrer from irrelevant and changeable features of those things, such as their current location. Local namespaces allow for independent reuse of convenient names for things, without creating a danger of confusion about which things are being referred to.
· Caching. It is useful to keep copies of frequently used data in a place where it can be accessed quickly.
· Notification. When important events occur at unpredictable times, it useful to notify relevant entities about these events rather than expecting the entities to continually check for the occurrence of such events.
· Concurrency control. Consider the case of two people co-authoring a paper. If on Tuesday, they each edit their own copy, on Wednesday they may have a problem merging their changes. This is an instance of a much more general problem that plagues any system that distributes work among multiple components, including distributed databases, file systems (ever wish you hadn't left a particular document at home?), and real-time cooperative work applications. Some of the techniques for dealing with concurrency include locking, timestamps, and merge algorithms.
· Incentive engineering. Economic and legal mechanisms can help individual interests to align with overall system goals.
· Load balancing. Assign work so that no one component is overloaded while others are idle.
· Access control. Allow some people but not others to do certain operations, based on some method of authenticating the entity that requests the operation.
There is a required course pack, which is available at Dollar Bill (665-9200) and costs approximately $28. It only contains readings that are not available online.
Optional textbook (recommended): David Messerschmitt, Understanding Networked Applications: A First Course. A copy of this text is available at the reserve desk in the undergraduate library (checkout desk on first floor, not room 2002), call number TK5105.5 .M461 2000.
Other readings will be handed out in class or available online. Please check the online syllabus each week. You will notice that there are many optional readings. These readings often address the concepts used in the problem sets in greater detail.
If you want to know more about a particular subject, HowStuffWorks.com (http://www.howstuffworks.com) is a reasonably good online reference. Bear in mind, however, that this is a for-profit content provider. References to or recommendation for specific brands or technologies may be advertising, and should viewed skeptically. PC Lube and Tune also offers a number of articles that you may find useful (http://pclt.cis.yale.edu/pclt/). In past years, students have also used Wikipedia.com and WhatIs.com, though these sites tend to offer less detail and are sometimes inaccurate.
You are also encouraged to scan the technology press (e.g., HotWired, InformationWeek, Network Computing, MIT’s Technology Review) for stories related to the course.
Attending section is optional, but strongly encouraged. Discussion section provides an informal, highly interactive environment for exploring the topics covered during lecture and on the homework. Some weeks, the instructor will have material prepared, other weeks he will respond to your questions and interests. If you choose to attend, please be prepared to contribute to the discussion.
Most weeks, homework will be assigned. It may involve one or more of the following activities:
· Answer questions posed as exercises (the most common activity).
· Use an application to get a feel for it.
· Configure an application or a server.
· Write or modify very simple computer programs.
The main purpose of the homework is to serve as a learning tool, not an assessment tool. To that end, we will provide you with solution sets and an opportunity to fix your own errors before we comment on your work. In order to provide some motivation to keep up with the work throughout the semester, we will grade the homework. However, the grading system is designed to reward effort and learning rather than performance – we fully expect that most students will score 100% of the available points for homework assignments.
Each assignment is worth a maximum of 2 points. You get 1 point for answering every question on your own and submitting these answers via CourseTools by the due date. You will receive a 0 on the homework if you fail to do either of these. You get the second point for turning in a printed and revised copy of your homework in class the following week. In the revision, you must identify all your errors and demonstrate that you have exerted reasonable effort to understand and correct them to get the additional point.
How to get full credit for the problem setsYou are to submit each homework assignment via CourseTools by the date listed on the syllabus. We will post the solution set to the class web site the following day. You then have approximately one week to review and comment on your initial work, identifying, explaining, and attempting to correct all errors. There may be more than one correct answer to some questions, so it is perfectly acceptable to write a comment on your original work arguing why it was correct, even though it is different from the solution set. When correcting your assignment, do not just copy answers from the solution set; instead, try to understand how you can correct the answer you gave. To get credit for the revision, you should do the following: 1. Leave your original answer. Indicate errors by crossing out or circling the mistake. 2. Describe the problem with the original answer 3. Provide your best attempt at correcting the answer, and indicate how this resolves the problem identified. If you can’t figure out how to fix the problem, explain where you are stuck. Submit a printed copy of the original assignment with your additional comments in class the following week. One of the instructors will read and write comments on this printed copy before returning it to you. |
There will be 13 assignments, and we will drop the two lowest scores. Thus, even if you get 0 on a homework assignment (which may happen early in the semester, as you are figuring out what is expected of you), you can still score 100% on the homework portion of the course grade.
Each week you are also required to share a question or comment about the course material with the class. Your contributions can take many different forms. For example, you may ask questions about the lecture, the readings, or the homework; you may expand on each other’s comments; you may answer other student’s questions; you may suggest other resources that you’ve found useful (include a detailed and accurate summary, not just a link); you may share an example from the technology press or your own experience that you consider to be relevant to course material covered that week; and so on. Your submissions will be used in discussion in the weekly sections. The submission should be posted to the Twiki site by 7PM Thursday.
There will be an open-book, take-home midterm exam. It will be distributed on Nov. 1 and due at the start of class on Nov. 8.
There will be an open-book, in-class final exam. The exam will be on December 20 from 3:00-5:00 p.m. Check the syllabus close to the date for the location.
There are no group projects in this class, though some exercises will require you to work with a partner. You are strongly encouraged to form study groups. We can't emphasize this enough. It's more fun and you'll learn more. If you'd like to be in a study group, but aren't sure how to get one started, please contact one of the instructors and we'll help. Please do this early in the semester. For homework, you may (and are encouraged to) collaborate as much as you want.
You must, however, write your own answers. All cases of plagiarism (unattributed quotation or even paraphrasing) of anyone else’s work, whether from someone else’s answers to the exercises or from published materials or materials on the Internet, will be officially reported and dealt with according to Rackham policies. For additional information about plagiarism, see the “Academic and Professional Integrity Policy Statement” in the SI Master’s Student Handbook (http://www.si.umich.edu/academics/masters-handbook.pdf) and Appendix B of the Rackham Graduate Student Handbook (http://www.rackham.umich.edu/StudentInfo/Publications/GSH/html/APPB.html). If the expectations of this university are not familiar to you, please be sure to read these guidelines and talk to the instructors if you’re still not sure. We don’t expend a lot of effort policing this, but the penalties can be severe when we do notice violations.
Students with special needs should inform us early in the semester so we can make accomodations in a timely manner.
There will be no collaboration during the exams.
Some assignments require that you have access to SI’s computer resources, including the DIAD. If you’re not an SI student, you need to fill out paperwork to get a computing account. Take it to SI Computing on the 4th floor of West Hall.
Please contact me if you require special accommodations due to learning disabilities, religious practices, physical requirements, medical needs, or any other reason.
Homework exercises (13 at 2 points each; count your best 10) 20%
Weekly comments posted to the wiki 5%
Midterm 30%
Final 45%
We expect B+ to be the median grade, with just under half the class getting A and A-, and just over half getting B+ or lower. Occasionally, a class as a whole will perform exceptionally well or exceptionally poorly over the course of a semester, in which case the overall distribution of grades might shift up or down.
Note: Readings in the course pack are not linked. They are also followed by **.
|