Inspiration
Teaching systems is difficult because of the platform specifics required for consistent grading and ability to run student programs. We started with revamping our architechture's course "IDE". The MARS simulator that our school uses to teach architecture is an ancient Java Swing app. We thought it could be done better, so we made SMIPS.
What it does
It provides a platform for editing, assembling, and running MIPS assembly, in the comfort of a webapp.
How we built it && Challenges we ran into
First we began with making a Node.js and front end written entirely in TypeScript. We learned that the technology is still new and has its limits when compiling to JS for the browser and Node. It was an important lesson in, there's never good coding only good refactoring. We pushed forward converting to a Flask and AngularJS driven platform.
Accomplishments that we're proud of
We are proud to say we have a deploy-able server capable of hosting an important teaching tool for an essential topic in computer science. We know we have the skills to flush out and make the tool useful to many universities or highschools.
What we learned
We learned new technologies like TypeScript and Node.js. More importantly we learned from the development process, working as a team and adapting to the unforseen issues that can crop up.
What's next for SMIPS
Time to build it out, we want to integrate submission and grading tools with this platform. The dream is to also have a platform for C programming another very system dependent language. Using continuous integration tools in systems like Gitlab we hope to create a tool for working and grading students in a seamless single environment. Courses would have the ability to assign platforms/dependencies to students a la docker and the the tool would simply be the interface to said environment.
Log in or sign up for Devpost to join the conversation.