SI 540 Introduction to Networked Computing
Fall 2006
Professor: Rahul Sami (Office hours:
4-5:15pm Tue (405A West Hall); 5-6pm Wed (3246E SI-North)
GSI: Rick Wash
(Office hours: 2-4pm Mon (Shapiro Basement B138))
Tuesday, Thursday 5:30-7:00pm, 311WH (Note classroom change)
Discussion Sections Monday 4-5pm, Friday 10:30-11:30am
Course Objectives:
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.
The course will cover topics including understanding the fundamentals of
how computers work, the processes involved in creating a new application or
piece of software,
how computers are networked together, protocols that enable the Internet to
function smoothly, and the functioning of everyday and novel Internet
applications. Throughout, we will emphasize underlying concepts that
have been used in many different ways, and continue to be used in
innovative applications.
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.
Logistics
- Office Hours: (To be announced)
- The course assignments, announcement, readings, and other resources will be posted on CTools.
- There is no required textbook or coursepack. The following textbook is
recommended for additional reading: "Understanding Networked Applications: A First Course", David Messerschmitt, 2000. A copy has been placed in the University Reserves.
Coursework
- Readings for each class are posted on the CTools site. The list will be
updated through the semester, so please check it every week. Some readings are
marked as optional, and are meant to be sources of more in-depth information
on a particular topic.
- Attending the discussion section is not compulsory, but strongly
encouraged.
- Every week, you are expected to post comments or questions on that week's
topics to the Wiki on the CTools site. Your posting may be comments or reactions to the readings or lectures, relevant articles or other information that
you would like to share with the class, or questions that you would like discussed in the sections.
- Most weeks, there will be a problem set assigned. You will have a week to
turn in solutions online, on the CTools system. At that point, solutions
will be posted online. You will then read and understand the solutions,
correct your own earlier solution, and hand in a hard copy of
your corrected solution to us in class the following week. Many problems
have more than one correct answer, so if you feel that your original answer
was correct (although different from the posted solution), simply explain
why you think it was correct. Do not erase your original solution; instead,
cross it out or cancel it as needed.
- There will be a midterm exam, and a final exam; details to be announced.
Grading
The coursework will be weighted as follows:
- Problem sets 20% Each problem set is worth 2 points; we will take your 10 best problem sets. You will receive 1 point for attempting to solve all
problems in your online submission, and a second point for realizing any mistakes you made and accurately correcting your answer the following week.
- Participation on the Wiki 5%
- Midterm 30%
- Final 45%
The grades will not be determined based on a rigid curve. We expect B+ to be
the median grade, with almost half the students getting a grade of A- or higher,
but it might shift depending on the performance of the class as a whole.
Course Policies
- There is no formal groupwork, but you are strongly encouraged to form
study groups. You are also encouraged to collaborate in discussing
and working on the problem sets, but you must write up your solutions by
yourself. If you use specific ideas, suggestions, or other material from
another person, or any online or printed resource, you should mention it
in your solution.
- Problem sets are due by the date and time specified. Some or all points
will be deducted for late solutions.
- No collaboration is permitted on the examinations.
- You should understand and follow the Rackham Policy on Academic Integrity
Course Schedule
(Some topics may take more or less time, so this schedule may change slightly.)
- Lecture 1: Introduction and course overview
- Lecture 2: Reading flowcharts, flow diagrams, and programs
- Lecture 3: Little Man Computer -- a simple model computer
- Lecture 4: Representation
- Lecture 5: Computer Architecture
- Lecture 6: Operating systems
- Lecture 7: Programming languages
- Lecture 8: Compilers and Interpreters
- Lecture 9: Building large software: programming discipline, version control
- Lecture 10: Communication links, wired and wireless
- Lecture 11: Architecture paradigms for networked applications,
- Lecture 12: The Internet: Structure, OSI layers, and the IP protocol
- Lecture 13: Higher-level protocols (TCP; DNS)
- Lecture 14: Midterm
- Lecture 15: More higher-level protocols: HTTP
- Lecture 16: Web servers, configurations, and web applications
- Lecture 17: Network security
- Lecture 18: Technical/Industry standards and standard setting processes
- Lecture 19: Policy issues: Privacy, Open software, Net neutrality
- Lecture 20: XML and schemas
- Lecture 21: RSS
- Lecture 22: Web services and protocols
- Lecture 23: Scalability and load balancing
- Lecture 24: Concurrency and locking
- Lecture 25: Cryptography basics
- Lecture 26: Common Internet cryptography: SSL, certificates, and PGP
- Lecture 27: Recap
(Last modified 8/27/06 by Rahul Sami. This syllabus is very similar to
the Fall '05 course taught by Prof. Paul Resnick.)