About: A sidequest is an optional, not graded, not evaluated in anyway exploration into a topic. Sometimes it is just cool to know what is out there in the world.
Sidequests come with a little descritions, presentations, related resources, and a sample code or exercise you can try.
Side quests are likely a good area for further independent studies, research project, thesis, etc.
Code Quality Analysis
Overview
We have talked a lot about code in this class, but what is optimal code. Is it code that does not branch a lot? Is it code that is small in size? Is the code maintainable. Is it code that is easily parallelizable?
Problem Statement
Come up with a score for various metrics on the code quality given source code as an input.
Proposed Exercise
Work with a framework such as LLVM to perform static code analysis.
Proposed Evaluation
Find some known 'good' and 'bad' code samples and run them through your static analysis.
Key Resources
(The first resource you should read)
Additional Resources
Code Quality Analysis - Part 2
Overview
What are some other things we may be interested in finding out about code in general. That is, what is good code style? How about information that is not captured in a syntax tree like comments?
Problem Statement
Employ sentiment analysis to find good coding style.
Proposed Exercise
Mine either comments or the code itself to give a 'score' of code quality.
Proposed Evaluation
Find code on github before and after refactoring. See if the code has changed in a way that our tool would have reflected.
Key Resources
(The first resource you should read)
Additional Resources