Truth table created by our algorithm for the circuit built by the student
The correct truth table for the provided function
The UI on PrarieLearn for the interactive circuit builder
A built circuit. Wires and gates that have a voltage in them are red to make debugging easier
A more complicated circuit
Grading when the circuit is correct
Grading when the circuit is incorrect
We were inspired by the execution of the ECE 120 course. Despite being a computing course, all homework for the class is done on paper because of the intricate circuits made by the students; however, we wanted to switch the coursework over to PrairieLearn.
What it does
We built an interactive system that allows students to build, debug, and grade circuits on PrairieLearn, allowing courses such as ECE 120 or CS 233 to switch over to electronic coursework.
How we built it
We started with the open source code for PrairieLearn and how the questions were built to start building our own circuit question. We started with building the interactive system itself that allows us to drag and drop gates and connect inputs and outputs. We then moved on to working on the auto grading using a recursive function. Lastly, we worked on rendering the system onto the PrairieLearn website, while still keeping the auto grading function private.
Challenges we ran into
Our most arduous task was rendering the interactive function onto the PrairieLearn website. Also, auto grading the circuit on our servers instead of the client server for security reasons was challenging.
Accomplishments that we're proud of
We are most proud of the fact that we integrated multiple languages, from front-end to back-end to develop a complete project. Also, our project is very relevant to our current education, as it will improve PrarieLearn for us and our peers.
What we learned
Each member came in with different experiences but at the end, we all became comfortable with web development as a whole, each of us learning a different aspect. Most of all, we all became comfortable with using GitHub.
What's next for JASUNK
We want to improve the UI and add more logical components, like decoders, multiplexers, and ALUs, so we can present this project to the ECE 120 staff and hopefully have them implement it instead of paper homework.