counter stats

(CS/EE 144)
The ideas behind the web

TEXTBOOK / LECTURES / HOMEWORKS / BLOG / PROJECTS

Course details

The course meets MW 1-2:25pm in Ann 213 Steele 102 ARMS 155.
We may occasionally have ``bonus'' lectures on F 1-2:25pm in Ann 213.

The course blog will be the place where important announcements will be posted and where questions about homeworks/lectures/projects should be posted so that everyone can benefit from the responses.

Course Description

The web is an essential part of our lives and we all depend on it every day, but do you really know what makes it work? This course studies the "big" ideas behind the web. Things like, how do search engines work? How can search engines make so much money from putting adds next to its search results? What does the web actually look like? How big is the web? For all these questions and more, the course will provide a mixture of both mathematical analysis and real-world hands-on labs.

This course can be combined with CS/EE 145 and CS 141a or CS/EE 143 to satisfy the project requirement for CS undergraduate degree, but CS/EE 143 is not a required prerequisite. The course assumes some background in graph theory, probability, and basic programming.

Instructor

Adam Wierman, adamw@caltech.edu

Teaching Assistants

Ragavendran Gopalakrishnan (a.k.a. Raga), ragad3@caltech.edu
Jayakrishnan Nair (a.k.a. JK), ujk@caltech.edu
Changhong Zhao, czhao@caltech.edu
Fred Zhao, fredzhao@caltech.edu

Office Hours

Wednesday and Thursday evening 7-9pm in Annenberg 107.

Office hours are an important part of this course. We have them in the evenings in order to make sure people can come. The hope is that people come and just hang out and work on the homeworks, asking questions when they come up, instead of coming because they have specific questions in mind. So, even if you are just getting started, come to office hours and work there so that you can ask questions when they come up. You are required to visit office hours at least twice during the first 5 weeks.

Required Textbook

Networks, Crowds, and Markets: Reasoning About a Highly Connected World,
by David Easley and Jon Kleinberg.

This book is quite reasonably priced, but there is also a pre-publication pdf available here. I think the book is excellent, so I highly recommend you buy a copy and read it cover-to-cover. We will not be going through it in order, but I will point to the relevant parts of the book for each lecture. Additionally, I will post course notes and supplementary papers on this site at the end of each class.

Lectures

This is only a tentative outline of the topics we will discuss and will likely change as the term goes by. But, I put it up to give you an idea of where we're going. The course is basically organized as a collection of topics that I think are important and interesting and which provide a modern perspective on how the web works.

Note: I am posting my slides and handwritten notes for each lecture, but they are incomplete and certainly are not meant to serve as a replacement for attending class. Note that I typically dovetail powerpoint and boardwork together, so the notes and slides should be looked at together.

Introduction to the class

Part I: Understanding Network structure

Part II. Exploiting Network structure

Part III. Network economics

Part IV. Making the web work

Grading

This is a preliminary breakdown that may change during the term. In particular, I reserve the right to decide that I want to have a final, in which case it will change dramatically!

Homeworks

Homeworks will be assigned every 1-2 weeks. Many of the problems will be challenging, so please start immediately and please come to office hours to discuss the problems! The assignments will represent a mixture of theory (proofs) and practice (coding). I assume that you can code and use Matlab/Mathematica and Python.

You are strongly encouraged to collaborate with your classmates on these problems, but each person must write up the final solutions individually. You should note on your homework specifically which problems were a collaborative effort and with whom.

Homeworks should be turned in either by email to the "Guru" or by leaving them in the box outside Adam's office (Annenberg 215).


Late policy: Assignments are typically due Fridays at 1pm. I will allocate each student 4 tokens at the beginning of the term. Each of these tokens can be used to buy a one day extension on any homework during the term. You cannot get extra tokens and zero credit will be given to late assignments, so use your tokens wisely and start early!


Contest winners: We have two contests during the course homeworks, one related to search engine optimization (rankmaniac) and one related to computational advertising (clickmaniac). The projects change year to year, but the winners are immortalized here:

In 2011...
    the rankmaniacs were: Giordon Stark and Jamie Jackson
    the clickmaniacs were: Dai Wei, Doris Xin, and Wenqi Yao

In 2010...
    the rankmaniacs were: Daniel Erenrich, Chis Kennelly, and Andy Matuschak.
    the clickmaniacs were: Jonathan Krause and Manuel Lagang.

Blog Post Guidelines

We will maintain a CS144 course blog as part of the course, with the goal of ensuring that everyone takes the time to connect what we are discussing in class with what's going on in the world. Every student will be responsible for making two posts during the term. The deadline for these posts is rolling, depending on your last name. The details of the policies, grading, and due dates for these blog posts is here.

Pretty much anything related to "our networked life" is an appropriate topic for posts. Possibilities range from (i) topics related to the robustness, structure, growth of networks broadly defined; (ii) anything about the interaction of networks with economics or markets; (iii) topics about what runs the web (data centers, cdns, etc); and (iv) topics related to how fads, opinions, or political movements spread. For inspiration, check out the course blog from the Cornell "Networks" course.

To allow students to make posts anonymously (if desired), we have a common userid and password, which will be announced in class. If you missed it, or forgot it, email a TA. To allow for grading, if you post anonymously please be sure to email JK "claiming" your post.

Project Information

We will not be having a course project during this term, but those doing the project sequence (143/144/145) will be preparing for the project they will complete during the third term. To accomplish this we will have two project-related assignments: