Michael Shindler

I am a senior lecturer at the University of Southern California.

Office: SAL 204

Fall office hours will begin August 20. They are:
  • Mondays 12:00 - 1:00
  • Tuesdays 2:30 - 4:00
  • Wednesdays 8:30 - 9:30
During these hours, course-related material will have priority over other items. I am happy to make private appointments to meet with students as needed.

To form my email address, concatenate my last name with [at] usc [dot] edu

My recent research focuses primarily on educational issues in computer science; in the past, my work touched on computations on large datasets, machine learning, approximation algorithms, streaming algorithms, and data mining.

Picture of Michael Shindler


In Spring 2019, I will be teaching:
  • CSCI 170 -- Discrete Methods in Computer Science
    • My lectures will be using a zyBook digital textbook: Discrete Mathematics by Sandy Irani
      • Purchase information will be available here in the near future.
      • Readings in this textbook will be required for the course.
    • I strongly recommend the supplemental textbook:
      • How to Prove It: A Structured Approach (second edition) by Daniel Velleman
  • CSCI 499 -- Special Topics: Concepts of Programming Languages
    • See What is 499? for information about the course
    • This course is an undergraduate tech elective.

Past Teaching

I have taught a variety of courses at USC in the past, both undergraduate (course numbers 0-499) and graduate (course numbers 500+):

Course Number Course Description Semester(s)
CSCI 104L Data Structures and Object Oriented Design Spring 2016
CSCI 170 Discrete Methods in Computer Science Spring 2015, Fall 2015, Spring 2016, Fall 2016,
Spring 2017, Fall 2017, Spring 2018, Spring 2019
CSCI 270 Introduction to Algorithms and Theory of Computing Fall 2014, Spring 2015, Summer 2017, Fall 2018
CSCI 350 Introduction to Operating Systems Spring 2016, Summer 2016, Fall 2016
CSCI 356 Introduction to Computer Systems Spring 2017 (as CSCI 499, special topics), Fall 2017
CSCI 467 Introduction to Machine Learning Fall 2018
CSCI 499 Concepts of Programming Languages Fall 2015 (as CSCI 499, special topics), Spring 2019 (as CSCI 499, special topics)
CSCI 567 Machine Learning Fall 2017 (discussions), Spring 2018 (lecture, discussions),
Summer 2018 (lecture, discussions)
CSCI 570 Analysis of Algorithms Fall 2013 (lecture), Spring 2014 (lecture), Fall 2014 (discussions),
Spring 2015 (discussions), Summer 2015 (lecture), Summer 2016 (lecture)
CSCI 585 Database Systems Summer 2015

Selected Papers

  • Streaming k-means on Well-Clusterable Data. With Vladimir Braverman, Adam Meyerson, Rafail Ostrovsky, Alan Roytman, and Brian Tagiku. In SODA, 2011. [ pdf ]
  • Fast and Accurate k-means for Large Datasets. With Adam Meyerson and Alex Wong. In NIPS, 2011. [ pdf ] [ code ]

Erdos Number

My Erdos number is 3:
  • I co-authored Streaming k-means on Well-Clusterable Data (SODA 2011) with Rafail Ostrovsky (and also with Vladimir Braverman, Adam Meyerson, Alan Roytman, and Brian Tagiku)
  • Rafail Ostrovsky co-authored The linear-array conjecture in communication complexity is false (STOC 1996) with Nathan Linial (and also with Eyal Kushilevitz)
  • Nathan Linial co-authored Extremal problems on permutations under cyclic equivalence (Discrete Math, 1987) with Paul Erdos (and also with Shlomo Moran)
I would like to thank the American Mathematical Society's collaboration distance calculator for providing me with an easy way to determine this.

Educational Background

  • PhD in Computer Science from UCLA, 2011
    Advisor: Adam Meyerson
  • Master of Science in Computer Science from UCLA, 2008
    Advisor: Adam Meyerson
  • Bachelor of Science in Information and Computer Science from UC Irvine, 2005.