Inspiration

If there is one thing we can agree on, despite meeting for the first time, it’s that Coding isn’t easy. Have you ever been in a situation like this? One of the major issues shared by entry-level programmers in the difficulty in understanding the logic behind the function they are writing, especially with all the abstract notations, figures, and grammar.

Regardless of what programming language you are learning, logical and analytical thinking is the basic essence of programming and overlooking it is a bad idea.

This can be made worse if you are unfamiliar to English – the dominant tongue of programming languages, since your way of logical train of thought could be significantly different. Well then, what should we do?

What it does

Meet Aristotle – an extension to help you follow logic behind codes. Say I am a beginner, who stumbled across an apparent solution code online that finds the area of a triangle but can’t figure out why it works. I can submit it and call it a day but that isn’t learning! Aristotle translates your code into pseudocode, adjusted to resemble natural language as much as possible. The logic behind your code can be analyzed step by step - inducing greater critical thinking rather than obvious hints for solutions.

Our pseudocode is also easier and more accurate when translated, making logical analysis more accessible to international students. Aristotle also promotes a community of logical thinkers. You can upload your code – pseudocode pair (Share), then browse similar cases from others for comparative studies and further inspiration. If you want to discover others’ train of thoughts while solving certain types of problems, rather than easy solutions, you can use our search engine to see relevant examples.

By building this ecosystem, we hope to aid students’ properly grasp the foundation of programming in a more accessible manner.

How I built it

We used Javascript(NodeJS) to set up the project, and enable WebView as a view engine of our project. Dynamic contents (e.g. rendering different pages) and UI of the WebView was done with HTML, CSS, and Javascript. We implemented a Python script responsible for translating the code to pseudocode, and allow it to run on NodeJS background.

Challenges I ran into

It was our first time publishing an extension, so it took some time to get used to Azure development tools. Additionally, generating code to pseudocode took very long time, especially in considering enormous ways to write a code, and generating the pseudocode that is easily readable.

Accomplishments that I'm proud of

We are all so excited to present a fully functional extension within a day.

What I learned

We learned a lot about VSCode system itself, how extension commands function and how to customize the contents of VSCode.

What's next for Aristotle

It would be a dream for us to further polish the extension and have users from all around the world. If we were given more time, we would like to implement some chatting features that cheer people up during the pandemic and further expand conversational features.

Share this project:

Updates