DIVISION OF ENGINEERING AND APPLIED SCIENCES
HARVARD UNIVERSITY
Lectures (Fall 2005): Mondays and Wednesdays 2:30-4:00 pm
Location: Maxwell Dworkin G135
| Name | Office | Office Hours | Section Times | |
| Professor Mema Roussopoulos | cs164-staff@eecs.harvard.edu | Maxwell Dworkin 227 | Fridays, 3:00-5:00 pm | |
| Ian Becker | cs164-staff@eecs.harvard.edu | Science Center B14 Computer Lab | Tuesday 9-10 PM | TBD |
2) Please make sure you subscribe to the cs164@eecs mailing list!!! We use this list to make announcements that we would like you to get quickly. See directions below for how to subscribe.
3) We've placed alongside the 9/28 lecture slides in the schedule below a bunch of links to web sites with Perl exercises you can play with. These should give you plenty of stuff to get you more comfortable with Perl over the next few weeks. Do as many or as few as you'd like -- these are for your own comfort. The more you do, the more comfortable you will feel headed into the exams.
4) Exam 1 has been graded and was handed back in class to CS 164 students on Monday,
11/7. (CSCI-E-138 students, you will be receiving your grades via email shortly.)
Click here to find
out the procedure for requesting a regrade.
For many of us, the Internet is or is quickly becoming an essential part of our lives. This course is a survey of the authoring, distributing, and browsing technologies which make up the Internet. By the end of the course, students will be able to answer questions such as: How does a web server work? Why do some servers have better performance than others? What language/platform can I use to build a web site?
The class will include the following topics: HTTP, DNS and TCP/IP overview, HTML techniques for text, links, forms, and images, the client/server paradigm, the peer-to-peer paradigmn, server-side programming, CGI scripts, dynamic content with Java, how web browsers and web servers work, web caching and replication, security, and privacy.
Lectures are twice a week. There will also be periodic discussion sections led by a TF during which students can ask questions about languages and the programming projects. The programming projects will be using Perl and Java.
This class is geared toward undergraduate students (Computer Science 50 is required). The basics of the Perl and Java languages will be included in the course, but the coverage is quick so students need to have strong enough programming skills entering the course to be able to pick up the language material needed to do the projects.
Staff mailing list: cs164-staff@eecs.harvard.edu . Students can use this list to send private questions/concerns to the staff.
Class discussion mailing list: cs164@eecs.harvard.edu . Students can use this list to discuss concepts covered in class and questions/issues arising from the assignments. Students need to subscribe to this list by clicking here and filling out the form provided.
You may also find the following recommended books useful:
Programming Perl, third edition, by Larry Wall, Tom Christiansen, Jon Orwant. (This book is helpful for folks who have some experience programming in C.)
Learning Perl, fourth edition, July 2005, by Randal L. Schwartz, Tom
Phoenix, and brian d foy. (This book is more useful for folks who are just beginning to program.)
To purchase these books you can use an online service such as Amazon (http://www.amazon.com) or Bookpool (http://www.bookpool.com) or SafariTechBooks (http://proquest.safaribooksonline.com). In particular, Bookpool has books available at a discount.
Additionally, there will be readings and pointers to online resources
which students are expected to read.
Students may work in teams of one or two. Each team will have a total of three "late days" to use on programming projects. No late days allowed for mini-labs or paper summaries.
You may use the three late days on any of the programming projects without being assessed any late penalty. After you have exhausted your late days, you will be assessed a 15% penalty per day that a programming project is late (that is 15% of the total point value of the project, not 15% of your initial grade before the late penalty).
If you have a severe illness or an emergency that forces you to be away from campus, then contact cs164-staff@eecs.harvard.edu and request an extension. Extensions will be granted only for cases that were beyond your control and not predictable in advance.
You may discuss assignments with other teams, but you cannot share code. Typically, if you communicate in English with a friend, this is fine; if you are communicating in Java, Perl, etc., you have crossed the line. We will be using custom-built software that checks for similarity in assignments turned in. Consider yourself warned.
| Date | Topic | Readings | Assignments | 9/19 |
Course Overview, What is the Internet? Lecture 1 slides |
How Stuff Works (Internet Infrastructure),
J.C.R. Licklider's two papers: http://memex.org/licklider.pdf |
Lab 1 assigned. |
|---|---|---|---|
| 9/21 |
Networking Part 1
Lecture 2 slides |
Short yet interesting readings from Wikipedia on 1) Internet
Protocol (IP), 2) Routing, and 3) IP Addresses. More detail than you would need about Ethernet, on How Stuff Works. The 1976 research paper that changed the world: Robert Metcalfe on Ethernet: Distributed Packet Switching for Local Computer Networks Introduction to TCP/IP |
-- |
| 9/26 |
Networking Part 2 (TCP/IP)
Lecture 3 slides |
Same as above. |
Lab 1 due, Lab 2 assigned. |
| 9/28 |
Perl
Lecture 4 slides |
Essential Perl
Tutorial, by Nick Parlante
Some sample code for you to play with Some Perl Exercises you can try More exercises More exercises More exercises |
|
| 10/3 |
Socket Programming
Lecture 5 slides |
Socket Programming in Perl Socket Programming in C (optional, for those of you familiar with C). A simple echo server in Perl |
Lab 2 due, HW 1 assigned. |
| 10/5 |
Misc networking topics, Services
Lecture 6 slides |
Chapter 3 from WCR (Web Caching and Replication) book. | |
| 10/10 | No Class (Holiday) |
-- No reading --
|
-- |
| 10/12 |
HTTP Part 1
Lecture 7 slides |
Chapter 4 from WCR book. Skim through Chapters 1-3 of CWP (Core Web Programming) book. |
-- |
| 10/17 |
HTTP Part 2
Lecture 8 slides |
Chapter 5 from WCR book. |
HW 1 due, Lab3 assigned. |
| 10/19 |
Java
Lecture 9 slides |
Chapters 6-8 of CWP (Core Web Programming) book. | -- |
| 10/24 |
HTTP Part 3
Lecture 10 slides |
-- No Readings -- |
Lab 3 due, HW2 assigned. |
| 10/26 |
Sockets in Java,
Lecture 11 slides
Exam 1 Review, Midterm Review slides |
Chapter 17 of CWP book. | -- |
| 10/31 | Exam 1 | -- No readings -- | -- |
| 11/2 |
CGI
Lecture 12 slides |
Chapters 1-6 of CGI Programming 101
Chapter 18 of CWP book. Perl movie search script from class lecture. |
-- |
| 11/7 |
CGI + Java Servlets
Lecture 13 slides |
Chapter 19 of CWP book. |
HW 2 due HW 3 assigned. |
| 11/9 |
Servlets, JSP
Lecture 14 slides |
Chapter 20 of CWP book.
Some code for you to read and understand |
-- |
| 11/14 | Perl Prep for HW 3 | -- | -- |
| 11/16 |
JSP, Security
Lecture 15 slides |
-- No Readings -- | -- |
| 11/21 |
Security
Lecture 16 slides |
-- No Readings -- |
HW 3 due, Lab4 assigned. |
| 11/23 | No Class | -- No Readings -- | -- |
| 11/28 |
XML and Javascript
Lecture 17 slides |
Skim Chapters 23-24 of CWP book. |
Lab 4 due, HW 4 assigned. |
| 11/30 |
Proxy Caches
Lecture 18 slides |
Chapters 7 and 9 from WCR (Web Caching and Replication book). | -- |
| 12/5 |
Paper Discussion
|
On the Scale and Performance of Cooperative Web Proxy Caching, Alec Wolman, Geoffrey M. Voelker, Nitin Sharma, Neal Cardwell, Anna Karlin, Henry M. Levy, Symposium on Operating Systems Principles, 1989. | -- |
| 12/7 | Paper discussion. | The Anatomy of a Large-scale Hypertextual Web Search Engine, Sergey Brin and Lawrence Page, WWW7: Proceedings of the Seventh International Conference on World Wide Web 7, 1998. | -- |
| 12/12 |
Cache Consistency
Lecture 19 slides |
Chapter 10 from WCR book. | -- |
| 12/14 |
Exam 2 Review
Lecture 20 slides |
-- No Readings -- | -- |
| 12/15 |
-- This is a Thursday, not a class day -- |
-- No readings -- | HW 4 due. |
| 12/19 | Exam 2 | -- No Readings -- | -- |
| 12/21-1/2 | No Class (Winter Recess) | -- No Readings -- | -- |
| 1/3-1/13 | No Class (Reading Period) | -- No Readings -- | -- |