Michael Shindler

I am an Associate Professor of Teaching in the Computer Science Department at UC Irvine.

Office: DBH 4058

If you want to meet with me, for example if you are thinking of graduate school and want to discuss it, and would otherwise drop by my office hours, but aren't in my class this term, please send me an email and I will try to find time to meet with you.

To form my email address:
  • For course-related topics, concatenate mikes with [at] ics [dot] uci [dot] edu
  • For all other topics, concatenate mikes with [at] uci [dot] edu
My research focuses primarily on educational issues in computer science; I am particularly interested in issues related to teaching Computer Science Theory courses, such as identifying and correcting student misconceptions in these courses and also discovering concept inventories. I am also interested in more general issues involving the scaling of class sizes and making efficient use of resources for student learning.

In the past, my computer science research touched on computations on large datasets, machine learning, approximation algorithms, streaming algorithms, and data mining.


If you are planning to ask me for a letter of recommendation, please read this first.
Picture of Michael Shindler

Teaching

For every class I teach, all students are responsible for all material and due dates in the class, even those that occur prior to their enrollment. If you are planning to add the class after day one, please contact me at the start of the quarter, preferably at the conclusion of the first lecture. You should plan to attend every lecture starting at day one, even if you are not yet enrolled. Students who are not enrolled may still submit assignments and take exams.

I am not teaching classes in Summer 2024. I look forward to seeing you all in Fall!



For the 2024-25 school year, I am tentatively set to teach the following courses. These courses will be offered on-campus and in-person.
  • Fall 2024:
    • I&C SCI 46: Data Structure Implementation and Analysis
      • There are two lectures of this class. Students are welcome to attend either one, regardless of enrollment, with the following two exceptions:
        • On exam days, you are required to take the exam in your enrolled section. This includes the final exam
        • If we run out of seats on non-exam days, priority for seating is for students enrolled in the section.
    • CompSci 260P: Algorithms
  • Spring 2025:
    • CompSci 161: Design and Analysis of Algorithms
    • CompSci 162: Formal Languages and Automata
Do you want to be an LA for me in Fall quarter? Please fill out this form. This is mostly information gathering and allows me to keep information in one place. Please do this even if we have discussed being an LA for the class already.

Past Teaching

Course Number Course Title Quarters(s)
I&C SCI 45C Programming in C/C++ (as a second language) Fall 2023
I&C SCI 46 Data Structure Implementation and Analysis Fall 2019, Winter 2020, Fall 2020, Winter 2021,
Fall 2021 (2), Spring 2022, Fall 2022 (2),
Winter 2023 (2), Fall 2023, Winter 2024
CompSci 161 Design and Analysis of Algorithms Fall 2019, Summer 2020, Fall 2020, Spring 2021,
Winter 2022 (2), Winter 2023, Winter 2024
CompSci 162 Formal Languages and Automata Spring 2020, Spring 2021, Spring 2023,
Spring 2024
CompSci 167 Applied Cryptography Spring 2020, Winter 2021
CompSci 260P Algorithms Winter 2020, Spring 2022, Fall 2022, Spring 2023
CompSci 261P Data Structures Spring 2021

Selected Papers

  • What is an Algorithms Course?. With Michael Luu, Matthew Ferland, Varun Nagaraj Rao, Arushi Arora, Randy Huynh, Frederick Reiber, and Jennifer Wong-Ma. SIGCSE 2023 [ pdf ]
  • Student Misconceptions of Dynamic Programming: A Replication Study. With Natalia Pinpin, Mia Markovic, Frederick Reiber, Jee Hoon Kim, Giles Pierre Nunez Carlos, Mine Dogucu, Mark Hong, Michael Luu, Brian Anderson, Aaron Cote, Matthew Ferland, Palak Jain, Tyler LaBonte, Leena Mathur, Ryan Moreno, and Ryan Sakuma. Journal of Computer Science Education. [ pdf ]
  • Beyond Big O: Teaching Experimental Algorithmics. With Michael T. Goodrich, Ofek Gila, and Michael Dillencourt. In CCSC South-west, 2022. [ pdf ]
  • Experience Report: Preemptive Final Exams for Computer Science Theory Courses. With Matthew Ferland, Aaron Cote, and Olivera Grujic. In CCSC South-west, 2020. [ pdf ] [ appendix pdf ]
  • Teaching Large Computer Science Classes. With Shahriar Shamsian, Gisele Ragusa, and Jeffrey Miller. In ASEE, 2016. [ pdf ]
  • Fast and Accurate k-means for Large Datasets. With Adam Meyerson and Alex Wong. In NIPS, 2011. [ pdf ] [ code ]
  • Streaming k-means on Well-Clusterable Data. With Vladimir Braverman, Adam Meyerson, Rafail Ostrovsky, Alan Roytman, and Brian Tagiku. In SODA, 2011. [ pdf ]

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.