Yes, I’m looking for students to join my lab. There are two ways you can demonstrate your potential to become a good researcher:
Independently means you will complete the task by yourself, without any help from me. Please only contact me when you have made significant progress completing the task. Each task is roughly equivalent one semester-long course with intense focus.
Most of my research concerns databases and programming languages, but I have a wide range of interests, and you can get me excited about anything if you try.
Implement a tree automata minimization algorithm and use it to speed up egraph extraction.
Use TACO to answer queries in the join ordering benchmark, and try to beat the performance of DuckDB.
Do the same as a bove, but use some other system with a scheduling language like Halide or Exo.
Merge ASP extraction to egg and make it fast.
Implement the improved Yannakakis algorithm and try to beat the performance of DuckDB on join order benchmark. You may also use techniques from factorized databases.
Understand the PANDA algorithm, implement it, and make a presentation explaining it.
Understand the FAQ algorithm, implement it, and make a presentation explaining it.
Come up with a dynamic programming algorithm for join order optimization for free join.
Write a Datalog evaluator in Datalog.
Implement query by direct manipulation.
Finish the extension of Souffle to support recursive aggregates.
Implement Datalog modulo equivalence and benchmark it against egglog.
Implement and benchmark generalized semi-naive evaluation for Datalog.
Experiment with different search algorithms in egg.
Implement an SMT solver from scratch.
Solve Andrew Lumsdaine’s challenge with Rosette (see Cosette and FGH).
Design a decision procedure for NRA* (see LIA*, NRA, and these slides), or prove it’s undecidable.
Prove (or disprove) the completeness of checking UCQ equivalence via NRA and EUF.
Study how data is used in any recent breakthough in science. For inspiration, checkout quanta. Focus on projects relevant to databases research.
Make a screenless smartphone with voice-based UI.
Make a “digital analog projector”: instead of connecting to HDMI, you just put your laptop in front of the camera, and the system automatically applies filters to the video to make it look nice.
Re-implement your favorite paper. To make sure you don’t just download the code and run it, implement it using a different programming language.