Project ideas for undergraduate thesis

Hi. I need a project idea for my undergraduate thesis for my Computer Engineering degree. I could do a traditional research thesis but a practical development project is also acceptable and I was thinking if anyone here has any Nix-related ideas? Some tool you wished existed or a feature implemented? Can’t make any promises, just asking. Hard to to a desired project size estimate but say, 3-6 weeks of development time? Thanks.

1 Like

one thing nix is currently pretty lacking in from my observations is widespread implementation of MAC like apparmor or SELinux. There is pkgs.apparmorRulesFromClosure which generates rules to include runtime dependencies but AFAIK cant infer stuff like networking or device access (which can to be figured out by exercising the program and parsing the audit output). so there is probably something that can be improved.

1 Like

Which type research department of computer science are your potential thesis advisors at?

There’s a bit of everything, but more importantly since it’s an undergraduate thesis and not cutting edge CS research. as long as it’s an acceptable project I can probably find a professor capable of advising even if it’s not actually their research focus. There’s at least one who works with functional programming and/or operating systems. And I’m mostly asking about a software development/engineering project more than computer science proper anyway, which I think is easier in this aspect. But if you have some relevant research idea I’m still listening. ty

Since is an undergraduate thesis, I recommend migrating some existing package build procedure into the nix world. Maybe some private package that your institution/class use, or some FOSS software that is missing on nixpkgs. The difficulty will depend on which package you choose.

Also, another idea is to fix or implement some missing feature on an existing package (like support for MacOS). Both options + some detailed explanation of how the solution was implemented, in my opinion, is a good thesis (and a nice tutorial for learning nix by practice).

Another option would be to take a look at language ecosystems that could have better support in Nixpkgs, such as Java with Gradle or Maven. If you already have some reasonable experience with Nix and Nixpkgs, this may be more interesting, and would definitely have more of a lasting impact.

1 Like