Senior Design Team sdmay24-34 • Code Critiquer System for the C Language

Project Overview

Learning to code can be quite difficult for novice programmers. Specifically, the debugging process can be overwhelming and confusing. Compilers can provide feedback, but often times error messages are cryptic and difficult for novices to understand. Additionally, runtime errors and many beginner coding antipatterns cannot be caught by a compiler. As such, it can be difficult to learn to program without the direct aid of a mentor.

The goal of Code Critiquer for the C Language is to make the learning process easier by providing helpful feedback geared towards programming novices. We aim to identify compiler errors, runtime errors, and common coding antipatterns and provide feedback in a helpful and meaningful way. We will do this by creating an application that students can upload their code to. The application will be connected to a database, which stores test cases and examples of common programming antipatterns, or common faulty programming patterns. Students will have the option to configure their application for certain types of antipatterns, and teachers will have the ability to add antipatterns to a database. Not only will this help students become better programmers, but it will help take the burden of debugging off of teachers and mentors.

Team Members

Nicholas Carber

Regex Support

Senior in Software Engineering

Conner Cook

AST Support

Senior in Software Engineering

Brandon Ford

Database Administrator

Senior in Software Engineering

Emily Huisinga

Frontend

Senior in Software Engineering

Sage Matt

Frontend

Senior in Software Engineering

Cade Robison

Test Suite Support

Senior in Software Engineering





Weekly Reports

Weekly Report 1
Weekly Report 2
Weekly Report 3
Weekly Report 4
Weekly Report 5




Design Documents

Design Doc 1
Design Doc 2





Semester Presentations

491 - Faculty Panel Presentation
492 - Industry Panel Presentation





Midterm Peer Review Presentation

492 - Midterm Peer Review Presentation



Final Deliverables

Final Report
Final Poster
Final Presentation
Final Demo Video