Contact: LinkedIn
One of the most challenging aspects for a novice developer is receiving feedback in a timely manner. Are they using the correct coding style? Does their code function as expected? The feedback can help the developer stay motivated and focused as they write their code. However, novice developers face multiple challenges in getting feedback: Tools commonly used for feedback are often complex and require additional expertise to setup The development environment may not have all the proper tools installed Feedback from peers, or from their professors in the context of a course, is often delayed and is often not sufficiently detailed All of these are issues can hinder and frustrate a student interfering with their learning as they develop their programming skills.
In Tech for Good, we are looking at how we can improve this feedback process. The goal of this capstone project is to explore tools for providing rapid, automated, and consistent feedback to novice developers. We have specifically focused on implementing an easy-to-use process to facilitate the adoption of tools with minimal effort for students and professors.
Continuous integration, continuous deployment is a widespread industrial practice in software development. We used existing tools, such as GitHub, to create a pipeline for rapid feedback on programs. We applied this pipeline to actual classroom assignments as examples. We demonstrated that static code analysis and unit-tests could be completed in under three minutes.
We are currently working on documenting the process for wider adoption and testing it with a larger set of examples. When operation, the system will be usable in 100 and 200 programming courses to provide feedback to students. The feedback will help improve code quality as well as exposing students to standard industry software development tools and practices.