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
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
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
Provides an opportunity for senior computer science majors to conduct exploratory research in computer science. Department enforced restriction, successful completion of a minimum of 36 credit hours of Computer Science coursework and approved WRTG. May be repeated up to 8 total credit hours.
CSCI 5114  Practical Algorithmic Complexity
Primary Instructor

Fall 2019 / Fall 2020
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
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
Covers research topics of current interest in computer science that do not fall into a standard subarea. May be repeated up to 8 total credit hours.