Shah's Sidequests!


Hello Adventurer/Computer Scientist!

Listed below are a series of sidequests that are by no means required coursework. However, they are good candidates for independent research projects, directed studies, undergraduate/masters thesis, or potential starter projects for Ph.D. students. Most of the projects can be scaled appropriately, and the end goal is publication.

When working on these projects as a student with me, there are some expectations that you can work independently. That is, these are not projects I can "hold your hand" and tell you the exact next step to be performed. And that is a good thing, together we want to be working on cutting edge projects.

Important Note: For those who are not my students and stumbled upon this page, please reach out through e-mail if you would like to collaborate on these projects. Please acknowledge or credit where applicable should these pages provide an intellectual contribution to your work, and likewise let me know if I am missing any attributions.

Quest Topic Area Name Recommended Pre-reqs Note(s)
0 Systems
C programming
Strong preference to implement project in either C/C++, D, or Python
1 Systems/Program Analysis
C++ Programming
You will work in the Clang/LLVM framework
2 Systems/Programming Languages
  • Implementing OO features
  • Implementing Memory Safety
  • Begin Quest!
C programming
Implement some basic features of C++, in pure C. Starting with things like information hiding. Performance measurement is one possible outcome.
3 Systems/Algorithms
1 Course on Systems and/or algorithms
Write a series of algorithms that run well regardless of cache size.
4 Systems/Graphics
1 Course on Graphics
Improve graphics performance by re-ordering geometry and other graphical data.
5 Systems
Ideally C or C++ Programming (negotiable on language)
Build tools around libperf to analyze performance.
6 Systems/Graphics
C/C++ programming or course on graphics
Starter project for building a GPGPU project.
7 Systems
1 Course on Systems
Starter project for building a debugger. Can move to more advanced things like backwards debuggers later.
8 Systems
1 Course on Systems
Implementation should be in C/C++.
9 Systems
1 Course on Systems
If you have worked on a variety of different multimedia data sets, and other large data sets this project could be particularly interesting. Choice of language does not matter.
10 Systems/Web Dev
1 Course on Systems
Some preference to gear this towards graphics profiling.
11 Systems/Web Dev/Security
1 Course on Systems and/or Web Dev experience
-- --
12 Systems/Machine Learning
1 Course on Systems or Compilers and Machine Learning
-- --
13 Systems/Graphics
1 Course on Graphics
-- --
14 Systems/Graphics
1 Course on Systems
-- --
15 Graphics
1 Course on Computer Graphics, 1 course linear algebra
-- --
Outcome(s) Description
1 Github Project The results of each project will be added to a github repository that you can reference to employers.
2 Poster/Workshop/Conference Publication Each project will have a write-up, and during initial project stages a workshop or conference will be targetted.