Grochow's research has two main thrusts (with deep underlying relations beneath): 1. Interactions between theoretical computer science and mathematics (particularly algebraic geometry, representation theory, and group theory), and 2. Developing the theory of complex systems and complex networks, and applying this theory with collaborators in a variety of fields, such as ecology, evolutionary biology, economics, climate, and beyond.
keywords
theoretical computer science, computational complexity, algebraic computation, algebraic complexity, algebraic algorithms, representation theory, algebraic geometry, group theory, complex systems, complex networks, complex dynamics, network science, theory of complex systems
CSCI 3104  Algorithms
Primary Instructor

Spring 2018 / Spring 2019 / Spring 2020 / Fall 2021 / Fall 2022
Covers the fundamentals of algorithms and various algorithmic strategies, including time and space complexity, sorting algorithms, recurrence relations, divide and conquer algorithms, greedy algorithms, dynamic programming, linear programming, graph algorithms, problems in P and NP, and approximation algorithms. Same as CSPB 3104.
CSCI 4114  Practical Algorithmic Complexity
Primary Instructor

Fall 2019 / Fall 2020 / Fall 2022
When coming across an algorithmic problem, how do we think about how hard it is? Beyond just how much time or memory it takes, computational complexity offers a plethora of concepts for understanding this fundamental question. This leads to the appropriate choice of algorithm for the job, the development of new algorithms, and understanding the role of algorithmic complexity in natural settings such as biology and physics. Same as CSCI 5114.
CSCI 4950  Senior Thesis
Primary Instructor

Fall 2018 / Spring 2019 / Fall 2021 / Spring 2022 / Fall 2022 / Spring 2023
Provides an opportunity for senior computer science majors to conduct exploratory research in computer science as an option for the capstone requirement. Department enforced prerequisites: 35 hours of Computer Science coursework including Foundation courses, UpperDivision writing, CS GPA 3.0. Department consent required, contact academic advisor for details. May be repeated up to 8 total credit hours.
CSCI 5114  Practical Algorithmic Complexity
Primary Instructor

Fall 2019 / Fall 2020 / Fall 2022
When coming across an algorithmic problem, how do we think about how hard it is? Beyond just how much time or memory it takes, computational complexity offers a plethora of concepts for understanding this fundamental question. This leads to the appropriate choice of algorithm for the job, the development of new algorithms, and understanding the role of algorithmic complexity in natural settings such as biology and physics. Same as CSCI 4114.
CSCI 6114  Computational Complexity Theory
Primary Instructor

Fall 2021 / Fall 2023
Covers standard complexity classes including: timebounded, spacebounded, nondeterministic, randomized, quantum, parallel, counting, and nonuniform classes. Covers standard relationships between these complexity classes, as well as landmark results in complexity theory. Additional topics may be covered depending on time and interest. Recommended corequisite: CSCI 5444.
CSCI 7000  Current Topics in Computer Science
Primary Instructor

Fall 2020 / Fall 2023
Covers research topics of current interest in computer science that do not fall into a standard subarea. May be repeated up to 18 total credit hours.