Skip to content
Felienne Hermans edited this page Apr 18, 2023 · 20 revisions

Welcome to the Hedy wiki!

This wiki is meant for contributors, people helping to build Hedy. If you are looking for documentation for teachers, that can be found on the website, via the Teacher's manual.

What Hedy is for

Hedy is a tool to make learning to program less stressful and painful. Everything we do must be connected to this main goal. There are a bunch of technical things we do to reach this goal:

  • Teach gradually, with increasing "subsets" of the language and corresponding syntax
  • Have concrete and readable erorr messages
  • Enable programming in languages other than English

Who Hedy is for

Hedy is a tool made for two groups of users:

  • Students in a classroom Our intended user is a kid in a classroom, learning to program. Even though individual kids that are learning programming at home are of course very welcome to use Hedy, they are not our core business, as they are either self-motivated or have a programming parent close to ask questions to. So they are a lot less likely to suffer from the problem that Hedy solves: helping you to learn programming in small steps.

  • Teachers Another type of users of Hedy are teachers. Teachers have different needs from students, their goal is to teach programming in a way that does not overwhelm their students. Since they usually teach around 30 pupils, error messages are disruptive in a different way than for individual users: if error messages are unreadable, all pupils will need attention at the same time! So for teachers the unique value of Hedy is to make managing a classroom of students programming easier.

How to work on Hedy

This document describes conventions used in Hedy development. Read this document if you are looking to learn more about how to implement new features, or how to organize your code.

You might find existing code in the current code base that contradicts these recommendations. Code may be in the wrong place, named incorrectly, or implemented using non-recommended strategies. If the code has a good reason to deviate from the advice given here, there will be a code comment explaining why. Otherwise, it is most likely that the code was written a long time ago, or by a contributor not well versed in these design guidelines. Should you see code that is not up to the guidelines, it would be nice if you clean it up while you are working on it, following the Scout's Rule.

Clone this wiki locally