• Contact Info
Publications in VIVO
 

Grochow, Joshua Abraham Assistant Professor

Positions

Research Areas research areas

Research

research overview

  • 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

Publications

selected publications

Teaching

courses taught

  • CSCI 3104 - Algorithms
    Primary Instructor - Spring 2018 / Spring 2019
    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
    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.
  • CSCI 5114 - Practical Algorithmic Complexity
    Primary Instructor - Fall 2019
    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.

Background

International Activities

global connections related to teaching and scholarly work (in recent years)

Other Profiles