As students, we are always interpreting how things are done and how they can be done. We have noticed that the accessibility of how code is displayed is very limited. In the classroom, there has been a great change in students taking notes on tablets from previously on paper. This will only continue to change as it is easier to access, share and build your work. Exams and interviews are often limited to be handwritten code. This now lets you practice handwriting code, which is closer to the compiler to learn your mistake faster and understand your code more efficiently.
It is both very time consuming and messy to handwrite code, then rewrite and compile it. LetMeCode saves this step. It allows the user to be able to directly write code and compile it, or to submit an image of the code to then compile it.
What it does
LetMeCode is a website that allows the user to handwrite a code, and through machine learning API's usage, the code will be detected and output on a file designated in that language. This software is able to recognize each handwritten individual characters and special characters at very high accuracy levels and convert it then into a file of the specific language chosen. There is also an eraser included in case you rethink a part of your code.
In class, this will allow students to be able to interact with the material at a higher level. They will be able to switch from taking notes to being able to quickly write code and see the results.
Many people have different learning styles, and even with the technological revolution happening now, there is still this connection between memory/understanding and handwriting. Now it is possible to handwrite code that can be compiled in the same step.
This now brings a better way to practice for your handwritten coding interview tests and course exams. In the future, this could also extend to how classes grade your exams as they can use this application to compile the code for them. This application could be restricted so that the student could write on it, submit it, and the submission goes to the professor which will automatically compile.
How we built it
We first connect google-cloud-vision API and successfully read texts from pictures in python. And then we use Flask module in python to control the post and get and connect to webpages so that we can send instructions/functions to the webs. And we started to work on the webpage canvas so that we can draw on the webpages and meanwhile created the websites. Then we figured out save pictures to local so that we can read from Python and use the google API to read the texts and put on the CPP files.
Challenges we ran into
We've noticed that many educators draw common structures on boards, just to erase them and redraw them in common ways to portray something. Imagine your CS teacher drawing an array to show you how bubble sort works, and erasing elements for every swap. This learning experience can be optimized with AI.
Accomplishments that we're proud of
One accomplishment that we are proud of is developing our own machine learning program. We were able not only to learn and produce the google-cloud vision API, but we were also able to develop and train our own model using google-cloud autoML. In this model, we were able to train the computer specifically on the flaws that we found in symbols in the other API.
Other accomplishments were that we were able to develop much backend content using Flask. In this, we really learned the whole aspect of connecting out API's used with our own website produced.
What we learned
What's next for LetMeCode
There are many next steps for LetMeCode. This software can be implemented to the classroom where professors can give lectures by handwriting and editing code for the class, and being able to directly compile it. This also can be applied to taking tests and exams as it can be an easy way to compile hundreds of student's code to give a better analysis of where errors might occur. And finally, this can be used just as commonly as any other IDE, as in the future it can become a chrome extension and have its own online compiler. This will make it even more accessible and easy to use.