As Computer Science departments grow throughout the country, so do computer science classes. One recent result of this change is the rise in popularity of live coding exams, but these are new and imperfect. We aim to improve students' and staff's experience with live code exams. That is why we designed a way to improve the live coding experiences for future students.
What it does
Making life easier for both university staff and students, this product allows flexibility in grading live coding exams. We break students' solutions into small subroutines we compile indipendantly, allowing students to earn partial credit even if the whole code file cannot compile.
How we built it
Interfacing between command line interfaces and APIs we built using nothing but Python and some creativity, we came to understand the minimum viable requirements for such a project and immediately took it upon ourselves to finish this project one script at a time.
Challenges we ran into
We knew almost nothing about the technologies we used 36 hours ago. Half of each step in development was learning how to even approach a challenge. We also consistently would go back to the drawing board and worry about potential redundancies in poor design.
Accomplishments that we're proud of
Coming up with an idea and design that people can really understand and get behind is fantastic. The design of the markup language and command line interface really are built to be simple and noninvasive. We also managed to build two toolkits for entirely different sets of users to interact with.
What we learned
We learned new languages, libraries, packages, design paradigms and even designed a RESTful API in 36 hours.
What's next for LiveCoder
To improve our product and add more features to it. One feature that we want to work on in the future is allowing students to revert to their best graded code. Allowing them to keep changing their code and not be afraid of messing it up and getting a lower score.