
Pedro Paredes
Information for Undergraduate Projects
If you are a Princeton undergraduate student interested in having me as your single-term IW or senior thesis advisor, I wrote this for you. If you are a freshman or a sophomore with a solid math background and you'd like to work on an research project with me, this is also useful for you.
I usually advise 4 to 6 projects per semester (depending on how time-consuming each of them are). Always feel free to contact me (by email) if you are interested in working on something, I will reply to every request (from Princeton students).
About Me. My primary research interest
is in Theoretical Computer Science. In
particular I am interested in:
Spectral Graph
Theory,
Pseudorandomness, Coding
Theory, Combinatorics, Quantum Information
Theory.
Advising Philosophy. I am a very flexible advisor. I've had students that work very closely with me, and students that were almost fully independent and met with me every once in a while to get some advice. Before we commit to working together, I like having a short discussion (preferably in-person, but doesn't have to be if it's not convenient) about your interests and expectations. You don't need to know exactly what you want to do, but you should have thought about it and about what you want to get from working on the project.
The IW projects I am interested in advising can be divided into four categories:
-
1. Research in Theoretical Computer Science
- Target Student. Students interested in doing deep research and potentially going to graduate school.
- Typical Project. For a student with no research experience a typical starter project is based on writing a survey given results from a few papers. Students with more experience usually work on an open problem, while collaborating with me. Usually, I propose a few possible project directions for students to pick from. It's very hard to propose a new project of this flavor before learning more about an area, but I am also willing to hear suggestions if you have any.
- "Prereqs". Students should have a solid background in math (e.g., elementary combinatorics, graph theory, discrete probability, basic algebra/calculus) and theoretical computer science (COS226 and COS240 material, like big-O/Omega/Theta, basic complexity theory, basic fundamental algorithms).
-
2. Theory Informed Practical Implementations of Algorithms
- Target Student. Students interested in learning what theory research looks like, but research isn't necessarily a priority. Another target student is someone that likes theory (or algorithms/math), but is more interesting in coding and developing more applied skills.
- Typical Project. Any project that consists in trying to make theoretical ideas applicable in practice. Some projects are more math-heavy and some more coding-heavy, it's up to the student to decide what flavor they prefer. This includes coming up with new algorithms that trade some theoretical guarantees for feasible implementation, yet trying to retain the soul of the original idea; implementing new algorithms in a suitable programming language; and empirically testing practical implementations and comparing them with benchmarks / theoretical expectations. Some examples of topics of interest (click on links for example lecture notes if you want to know more about the areas): Usually, I propose a few possible project directions for students to pick from, but it's not uncommon for students to come up with their own project ideas.
- "Prereqs". This depends on what type of project students pick, but usually students need to be very comfortable and independent with coding in some programming language (usually C++, Java or Python are preferred). Students should have a solid background in algorithms (COS226 material, like big-O/Omega/Theta and basic fundamental algorithms).
-
3. Artificial Intelligence/Machine Learning with a Theoretical Foundation
- Target Student. Students with some interest in theory, but whose main focus/interest is in machine learning or artificial intelligence. I have advised multiple projects like this in the past and I recommend only picking me in case you either really want to work with me or you couldn't find an AIML faculty willing to advise you.
- Typical Project. Projects in machine learning that have some mathematical/theoretical component, even if most of the project is applied. This includes topics like mathematical optimization, statistical learning, fairness and privacy. Because my research area is not in machine learning, I usually expect students to mostly come up with the project topic they want to work on. I can help find directions and tune the project goals, but it takes me much longer to find suitable projects of this flavor, especially if the students don't pick a narrow enough topic for me to work with.
- "Prereqs". Students should have knowledge of the fundamentals of machine learning (COS324 material and potentially one other AIML course). Students should also have some ideas of what topics they want to focus on.
-
4. Other Topics
- Target Student. Anyone that wants to have me as a senior thesis advisor.
- Typical Project. I have in the past advised students that had a very particular project in mind that doesn't fall into the above categories, but either really wanted to work with me or couldn't find another suitable advisor. I am willing to advise projects like this but usually I play a role closer to coach (as in "football coach") or project manager, especially if the project topic is really far from my expertise.
- "Prereqs". A concrete project idea in mind.