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