Introduction
We propose a novel cyclic process (as depicted above) by which we start in one of three computational domains:
programming, math, or algorithms; and cycles through them in that order, so as to make each pass enhance the next, until a
certain discovery is made. The value of such an approach is two-fold. First, it integrates different elements of
computational thinking that are essential for computer scientists and problem solvers in general. Second, it mimics to a
great extent a natural process of learning, where people move from concrete observations (output of a PRogram), to
conceptualization and hypotheses (Math), to active experimentation based on hypotheses and what has been learned
(ALgorithms); new algorithms in turn can yield better programs and close the cycle.
Read more below:
Some research problems
In general, the research problems will be fun and attractive to someone with a decent background in programming who has
genuine interest in math, algorithms, and computation, and who would seek the sub-field of
theoretical computer science as a graduate or career choice. Here are some examples:
Watch a talk called Fibonacci-ish at Math Encounters (sponsored by MoMath and the Simons Foundations) about some of these problems. Here's a summary of the problems with their relevant research topics and a possible starting point.
Prerequisites
Experience in discrete math, proofs, algorithms, and programming (not necessarily all).
What to expect as a participant
(under construction) For now, refer to Sections B.1, B.2, B.3, and E.1 of proposal above.