counter stats

Current Courses

(CS/EE/CMS 144) Networks: Structure & Economics

Social networks, the web, and the internet are essential parts of our lives and we all depend on them every day, but do you really know what makes them work? This course studies the "big" ideas behind our networked lives. Things like, what do networks actually look like (and why do they all look the same)? How do search engines work? Why do memes spread the way they do? How does web advertising work? For all these questions and more, the course will provide a mixture of both mathematical analysis and hands-on labs. The course assumes students are comfortable with graph theory, probability, and basic programming. This course is taught yearly during the winter term.

(CS/EE 145) Projects in networking

Students work in small groups to design and execute a project in the area of networking, broadly construed. The goal is for the project to either end with a deliverable (e.g. an app or startup) or a publishable conference paper. Over the years there have been multiple projects that have led to published papers, incorporated startups, and popular android apps.

Students should have completed a project proposal and formed their groups during CS/EE 144 before registering for the course. This course is offered yearly during the spring term and can be combined with CS/EE 143 and 144 to satisfy the project requirement for CS undergraduate degree.

(CS/EE 146) Advanced networking

CS/EE 146 is a topics course in networking and the material covered varies year to year.

(CS/EE 147) Network performance analysis

When designing a network protocol, distributed system, etc. it is essential to be able to quantify the performance impacts of design choices along the way. For example, should we invest in more buffer space or a faster processor? One fast disk or multiple slower disks? How should requests be scheduled? What dispatching policy will work best? Ideally, one would like to make these choices before investing the time and money to build a system. This class will teach students how to answer this type of "what if" emph by introducing students to analytic performance modeling, the tools necessary for rigorous system design. The course will focus on the mathematical tools of performance analysis (which include stochastic modeling, scheduling theory, and queueing theory) but will also highlight applications of these tools to real systems. This course is meant for advanced undergrads and beginning graduate students and will be offered in alternate years. The specific topics covered by the course will vary from year to year.

Older topics classes

(CS/SS 241) Introduction to SISL: Algorithmic game theory

Over the last few years there has been enormous activity at the interface of computer science, game theory, economics, and control. In this course, our goal is to survey some important of the important new areas that are emerging in this field. Some of the topics we will study include: routing games, sponsored search, learning in games, mechanism design, prediction markets, network economics, and network formation games. This course is intended for advanced undergraduates and beginning graduate students and will be offered in alternate years.

(CS/EE 245) Special topics in networking: Queueing games

CS/EE 245 is an advanced topics course in networking meant for graduate students. The topic of the course changes from year to year and this version of the course focused on "queueing games". Queueing theory has long served as a fundamental tool for understanding the dynamics of computer systems from computer networks, to production systems, to airline scheduling, and beyond. However, traditional results view customer behavior as an exogenous parameter, unaffected by the details of the model, and thus cannot capture the impact of pricing and competition within the models. On the other hand, in recent years game theoretic techniques have been applied to the same range of problems in order to characterize the impact of customer behavior/reactions. However, using game theoretic techniques alone ignores the queueing dynamics inherent in these applications, e.g. networking. So, there is a mutual need for studying the interactions of game theory and queuing models. Our goal in this course is to quickly ramp up on the known literature combining game theory and queueing and then to develop and study new models in this area.