(CS/EE/CMS 42) Computer Science Education in K-14 Settings
This course focuses on computer science education in K-14 settings. Students gain an understanding of the current state of computer science education within the United States, develop curricula targeted at students from diverse backgrounds, and gain hands-on teaching experience. Through readings from educational psychology and neuropsychology, students become familiar with various pedagogical methods and theories of learning, while applying these in practice as part of a teaching group partnered with a local school or community college. Each week students are expected to spend about 2 hours teaching, 2 hours developing curricula, and 2 hours on readings and individual exercises. Co-taught with Claire Ralph. [www]
(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 seemingly look so similar)? How do search engines work? Why do memes spread the way they do? How does computational advertising work? For all these questions and more, the course will provide a mixture of both mathematical analysis and hands-on projects.
This course can be combined with a second networks course (CS 142 or CS/EE 143) and a networking project course (CS/EE 141,145, or 147) in order to satisfy the project requirement for CS undergraduate degree, but CS/EE 142 and CS 143 are not required prerequisites. The course assumes students are comfortable with graph theory, probability, and basic programming. [www]
(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. [www]
(CS/EE 146/147) Topics in Advanced Networking
CS/EE 146/147 are rotating topcs courses in networking and the material covered varies 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.
I’ve been honored to receive the following teaching awards at Caltech and CMU.
- 2021-2022 Caltech EAS Northrup Grumman Prize for Excellence in Teaching
- 2021-2022 Caltech CCID IDEA Advocate Award
- 2016-2017 Caltech ASCIT Teaching Award
- 2009-2010 Caltech ASCIT Teaching Award
- 2006 CMU Graduate Student Teaching Award
- 2005 Alan J Perlis SCS Student Teaching Award
- 2005 CMU Graduate Student Teaching Award Honorable Mention