Introduction

Many programmers, both novice and advanced, will face the responsibility of code maintenance, where they are tasked with the upkeep and improvement of a particular codebase that has been created by another programmer. One of the most difficult tasks within code maintenance is the initial step of understanding the code that has been developed. Due to the lack of context and information about the development of the code, it is often difficult for programmers to maintain and build upon code during code maintenance operations [1].

Often when programmers are creating code, they use many web sources in order to look up syntax, understand concepts, and even obtain code snippets. It is helpful for future programmers who are maintaining that code to have knowledge of the sources the original programmer used to craft the code. Another useful piece of information is to see the history of code as well as all the previous versions of the codebase up until the current version [1]. There are systems and programs in place that provide programmers with either versioning history, web resources, or programming context, but there is currently no framework that combines all these useful features into one. This is where the idea of code stories comes into play.

Code stories are a tool that collects all the information from the time a codebase is created and from the author of the codebase for future programmers who work on that codebase. A code story for a particular codebase will be displayed within an integrated development environment (IDE). An IDE is an application that allows a programmer to edit and test code, such as Visual Studio or Eclipse. The final version of each code story will include a panel that lists the actions and steps the original programmer took when writing the code as well as the rationale behind each action [1]. The code story would also include links to the main web sources the author of the codebase used, the web source of any copied code sections, and show all relevant code changes All of these details will be displayed right beside the codebase itself and snippets of code will be highlighted to show their connection to each detail so that programmers are able to link the contextual information directly to the code [1].

Deliverables

  1. Database of the live coding video of the learner programmer, Coder Coder. This is the entire SQLite database which contains all data collected on the YouTube video of Coder Coder.
  2. The heat map Python script, which includes both the logic and visualization sections of the script. Given a programmer’s SQLite database, this script is used to generate the programmer’s heat map.
  3. The heat map of the learner programmer,which is an image of the learner programmer’s heat map created using the Python script and seaborn package.
  4. The heat map of the professional programmer,which is an image of the professional programmer’s heat map created using the Python script and seaborn package.
  5. A web page including details on the project and the background, results, and future scope of the project.
  6. A final report and presentation including all final deliverables and the processes involved in completing the deliverables. 

References

[1] Kelleher, Caitlin. “Code Stories Proposal.”

[2] “GitKraken Client Features,” GitKraken, 14-Dec-2022. [Online]. Available: https://www.gitkraken.com/git-client/features. [Accessed: 16-Dec-2022].