Inspiration

As programmers we understand that learning a new coding language is very similar to learning a new spoken language. However, whereas most institutions teach second languages using the student's first for reference, programming languages are more often than not taught in a vacuum. We wanted to present a new way to learn coding languages that matched the tested and trained methods of teaching spoken ones.

What it does

A user selects a language which they are familiar with and a language they want to learn. They are then taken through a list of questions which they can solve at their own pace. These questions start from the most basic concepts (print "Hello, World!") to some very advanced ones such as memoizations. While they are going through these questions, a solution to the question is provided in the user's known language. This allows them to more quickly understand differences in syntax as they are able to compare two languages and see the differences.

How we built it

Brainstormed Made skeleton of the frontend while setting up the database We established all the API keys and the prompts Cleaned up the UI and rounded out the edge cases

Challenges we ran into

1) Prompt engineering: how to get claude to output the starter code and not the solution. 2) How to connect the code editor with with a remote code execution system 3) How to change the protocals of the database so it would accept a new user

Accomplishments that we're proud of

We have a working product which we would all actually want to use.

What we learned

Anubhav: I learned how to use an api key and to write prompts which get exactly what you want from an LLM.

Carlos: I learned a lot about coding using React, as well as integrating APIs to manage backend and user interfaces.

AJ: I learned how to structure a web app.

Grant: I learned a good amount of react and how to setup a database.

What's next for Rosetta

Implement more questions and languages. Add more question categories. Expand the frontend.

Built With

  • claude
  • judge0
  • monacoeditor
  • react
  • supabase
  • vercel
Share this project:

Updates