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 example research problems and ideas
In general, the research problems will be fun and attractive to someone with a decent background in programming and/or has
genuine interest in math, algorithms, and computation, and who would seek the mathematics or
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.
Mentoring team
The team will consists of Saad Mneimneh (Mentor) and a graduate student (helper), in addition to possible other faculty who are colleagues of prof. Mneimneh:
Prerequisites
Experience in discrete math, proofs, algorithms, and programming (not necessarily all at once).
What to expect as a participant
If you like mathematics and theoretical CS themes, this is for you... Research questions span discrete math, computational geometry, probability, combinatorics, proofs, sequences, recurrences, and algorithms.