20-755: The Internet, Summer 1999
1. Admin |
2. Goals |
3. Text |
4. Evaluation |
5. Help |
6. Policies |
7. Facilities |
8. Schedule |
9. Readings
H1 |
Projects |
Recitations
1. Administrative
Instructor:
David O'Hallaron
Assoc. Prof. of Computer Science and Electrical and Computer Engineering
School of Computer Science
Carnegie Mellon University
Pittsburgh, PA 15213
droh@cs.cmu.edu, Wean Hall 8125, (412)268-8199
Course TA:
Julio Lopez,
jclopez@cs.cmu.edu, Wean Hall 8205, (412)268-3778
Recitation sessions:MF 1:30-3:20 Posner 146
Course secretary:
Barb Grandillo, bag@cs.cmu.edu, Wean Hall 8212, (412)268-7550
Office hours: M 2:00-3:30 (Feel free to visit anytime)
Lectures:
MF 10:30 - 12:20, Posner Hall 146.
2. Goals
The aim of this course is to help you understand the concepts and
technology underlying Internet services. In your networking class
last term, you studied aspects of the Internet from a network-point of
view. In this course we'll take a complementary approach, studying
the Internet from a host-centric point of view. We'll cover
basic principles of computer systems, how to connect networks of these
systems to form internets, and the issues involved in building servers
that are secure, scalable, and highly-available.
3. Textbook
This is a new course for which no good textbook exists yet (or at
least I haven't found one yet). We'll use the following book as a
basic reference, filling in details in class as necessary: Dilip
C. Nalik, "Internet Standards and Protocols", Microsoft Press, 1998,
ISBN 1-57231-692-6. The cost is $23.99 from Amazon.com. Ships
within 24 hours.
4. Evaluation
Breakdown: Grades will be based on a weighted average of the following:
- Participation (10%): It is important for you to attend
every class, to participate in the discussions, and to talk to me
outside of class. All of these will be considered in an informal way
when I assign the final grade.
- One homework (20%): The homework will be a week-long
programming task to help you learn some basics that you will
need for the programming project.
- Programming project (50%): For the project you'll write an
Internet server of your own choice. I'll post guidelines later in the term.
- Final exam (20%): The final will be an "open everything" exam
that will cover the material discussed in lectures.
Final grades: The final grades will be based on
mastery. Students who master the material will get A's. Students who
have some difficulty but work hard will get B's. Students who have
difficulty and don't work hard get C's.
Working in groups:
You may work on the project and the homework in groups of up to 3
people. It is up to you to form and regulate your groups. If you're
not happy with your partner(s), you are free to find others. You
may also work by yourself.
5. Getting help
Julio will run recitation sections and will hold regular office hours
to help you with the homework and project. If you have questions or
need help outside of these times, please send mail to Julio to arrange
a meeting.
My posted office hours are merely times when I promise to be in the
office. You are always welcome to visit outside of office hours if
you need help or want to talk about the course. I normally work with
my door open and welcome visits when the door is open. If my door is
closed, then I'm either gone or busy with a meeting or phone call.
The idea behind letting you work with partners is to give you an
outlet when you get stuck in a programming excercise. If you get stuck
as a team, please come see me. You may also talk to your classmates
about any ideas or concepts, but each group must write their own code.
All course materials are available from the course Web page:
www.cs.cmu.edu/~droh/755.
6. Policies
Handing in assignments:
All assignment are due at 10:30am on the specified due date.
All handins are electronic, usually consisting of one or more
files that are copied to a specified AFS directory. The writeup
for each assignment will describe the handin procedure for that
assignment.
Penalties for late assignments:
Unless you've arranged an extension in advance, late handins will
be docked 10% each day for the first two days, and assignments more
than 2 days late will not be accepted.
Appealing grades:
After each assignment and the final, I'll send each of you a
personalized email with your score (as well as all your previous scores).
You have 7 days after I send the email to appeal your score.
Cheating: All of your assignments allow collaboration with your
partner, and you are encouraged to talk to other members of the class
about any problems you are having. For example, it is OK to get help
from classmates in debugging a program or to ask questions about the
approach with a programming task. What you are not allowed to do is
directly copy files or parts of files from your classmates. This is
considered cheating, and the penalty will depend on the severity of
the offense. At the very least, the student will receive a score of 0
for the assignment.
7. Facilities
We will use euro.ecom.cmu.edu, a Pentium-based Linux server managed by
the Institute for eCommerce, for the homework and projects. Each student
will receive an account on euro.
8. Schedule
Lecture |
Date |
Day |
Time |
Topic |
Readings |
Assignments |
1 |
07/09 |
Fri |
10:30 |
Introduction |
suppl. reading |
|
*2 |
07/12 |
Mon |
10:30 |
Computer systems I |
suppl. reading |
|
*3 |
07/12 |
Mon |
1:30 |
Computer systems II |
|
|
*4 |
07/16 |
Fri |
10:30 |
Internetworking I |
Naik: Ch 1-3, suppl. reading |
|
*5 |
07/16 |
Fri |
1:30 |
Internetworking II |
Naik: Ch 1-3, suppl. reading
|
H1 out |
6 |
07/19 |
Mon |
10:30 |
Progamming the Internet |
Naik: 126-131,suppl. reading |
|
7 |
07/23 |
Fri |
10:30 |
Web services I |
Naik: ch 12-13, suppl. reading |
|
*8 |
07/23 |
Fri |
1:30 |
Homework and project working session |
|
|
9 |
07/26 |
Mon |
10:30 |
Web services II |
Naik: ch 12-13,
suppl. reading |
H1 due: 10:30am, Projects out |
10 |
07/30 |
Fri |
10:30 |
Web services III |
Naik: ch 12-13,
suppl. reading |
Project proposal due |
11 |
08/02 |
Mon |
10:30 |
Secure services |
Naik: ch 5,9
suppl. reading |
|
|
08/06 |
Fri |
|
No Class |
|
|
12 |
08/09 |
Mon |
10:30 |
Scalable services |
Naik, ch 13, suppl. reading |
|
13 |
08/13 |
Fri |
10:30 |
Guest Lecture: Bruce Maggs,
Akamai and CMU SCS |
suppl. reading |
Project due |
14 |
08/16 |
Mon |
1:00 (Note special time)
|
Guest Lecture: Walt Smith,
iXL |
suppl. reading |
|
|
08/21 |
Sat |
1pm-4pm |
Final exam, Posner 145 & 146 | ,
|
|
Note: stars indicate two-a-day lectures, at 10:30
and 1:30.
9. Supplementary reading
General information
- Ellen Siever, et al, "Linux in a Nutshell, 2nd Edition",
O'Reilly, 1999.
- Tom Christiansen and Nathan Torkington, "Perl Cookbook", O'Reilly,
1998.
Numerous examples of Perl5 code for sockets, Internet services,
CGI programming, and Web automation. Very helpful.
- Larry Wall, Tom Christiansen, and Randall Schwartz,
"Programming Perl, Second Edition", O'Reilly, 1996.
The Perl5 reference book. Lots of info but doesn't cover the
new IO::Socket module.
- Samuel P. Harbison and Guy L. Steele, C: A Reference Manual, Fourth
Edition, Prentice Hall, 1994.
Lecture 1: Intro
Lectures 2 & 3: Intro to Systems
- J. Hennessy and D. Patterson, "Computer Organization and Design,
Second Edition", Morgan-Kaufman, 1998.
Comprehensive and
authoritative, but probably much more detail than you want.
Lectures 4 & 5: Internetworking
- A. Tannenbaum, "Computer Networks, Third Edition", Prentice-Hall, 1996,
Lecture 6: Programming the Internet
Lecture 7: Web services I
Lecture 9: Web services II
- CGI overview.
- CGI
spec.
Concise specification of the interface. Helpful once you
understand the basics.
Lecture 10: Web services III
Lecture 11: Secure services
- Eugene H. Spafford,
The Internet worm incident,
Technical Report CSD-TR-933, Dept. of Computer Sciences,
Purdue University, Sept. 1991.
Readable description of the Worm from one of the participants in the
aftermath.
- A. Tannenbaum, "Computer Networks, Third Edition", Prentice-Hall, 1996,
Section 7.4.
Very clear explanation of how Internet email works.
Scalable services
Lecture 13: Bruce Maggs, Akamai and CMU SCS
- FreeFlow.
This page has a high-level description of Akamai's FreeFlow product, which
uses DNS in a clever way to serve rich content for customers while still
allowing them to maintain control of their server logs and cookies.
Lecture 14: Walt Smith, IXL
Dave OHallaron
Last modified: Wed Aug 18 20:22:12 EDT 1999