John Heidemann / Teaching

As a research full professor at the University of Southern California’s Computer Science Department. I work with graduate students and teach classes. My research is described on its own page.

For students interested in working with me or entering USC or with questions about classes I teach please see my advice page. (Or, in semesters when I’m teaching and on campus, feel free to drop by my regular office hours, or see my graduate networking class FAQ or some academic policies.)

Student Advising

The best thing about working at ISI is the opportunity to collaborate with some really great students. Current PhD students:

Current undergraduates:

(Our blog has some group photos: June 2021, December 2018, March 2016, August 2015, and December 2013.)

Graduated Students

And, better still are the several doctoral students worked with me and graduated (see also genealogy). (Warning: current affiliations are not always up-to-date, but please let me know about corrections.)

And graduated masters students who worked with me for an extended time:

Graduated undergraduates who worked with me for an extended time:

(Although I’m always glad to know where my former students are, the list of positions above is obviously not complete.)

Teaching Classes

In Fall 2024 I plan to each a joint section of CSci551/651, Advanced Computer Communications. The CSci551 section is for MS students only, while the CSci651 section is for PhD students and has a different project.

In Fall 2023 I taught CSci652, Internet Measurement. This course is taught infrequently, but e-mail me if you’re interested. This PhD-level course will problems, techniques, results, and challenges that arise in measuring the Internet, including what measurements tell us about the Internet and how to improve Internet services. A prerequesite is CSci551 or CSci651. Masters students may take CSci652 on reques, please talk to me.

Starting in Fall 2015 USC has split the beginning graduate-level networking course, CSci551, Computer Communications, into two course numbers: CSci551 and CSci651. CSci651 is targeted at PhD students, but MS students are allowed to attend with instructor permission and the expectation that class will move very quickly. MS students with speciaization in networking will be accepted, provided they are interested in a PhD-level class. The project in CSci651 will be individualized and research-focused. CSci551 is targeted at MS students and will feature a common, class-wide project that is more practical. Both courses have a similar syllabus, although CSci651 is 4 units and CSci551 is 3 units. In general, we expect CSci651 to be offered once a year and CSci551 once a semester, although not always (in FA2015 only CSci651 is offered, for example). Prior syllibi for CS551 and CS651 are (or will be) available. When we have joint CSci551/CSci651 sessions, there will be a common lecture but separate project requirements.

From Spring 2002 to Spring 2010, and Fall 2011 to Fall 2014, and in Spring 2018, I tought teaching CSci551, Computer Communications. From 1997 to 2001 I taught CSci555, Advanced Operating Systems in the Spring semester.

Prior Undergraduate Directed Research

Several undergraduates have done prior directed research with me, usually over summers:

Directed Graduate-level Research

I occasionally do directed research (short-term research projects, usually for course credit or as part of a summer internship) with promising students, usually USC masters students, but sometimes PhD students. (Undergraduates are listed above.)

Some of these student’s work has resulted in published papers, and a few of these students have gone on to do PhDs with me. See my list of papers for details.

Copyright © 2003-2024 by John Heidemann