Honest question: why? Why is low level computing the right thing to teach kids? Most people take the exact opposite approach to the extent they create very high level languages
I made this game because this is how I learned. I liked tearing games apart, so my first language was x86 assembly. I got into programming through reverse-engineering.
Maybe there are other people like me who will benefit from this. It's probably not for everyone, but the goal is to have it resonate deeply with some users.
It’s also how lots of older people learned: assembly on a simple personal computer before advancing to higher level languages. Although the machines today might not be so simple, this order of teaching (low—>high) is a good way to demystify computers and possibly teach alongside electronics courses.
A better question might be "why not?" I don't believe that it's required or forbidden to learn Assembly before e.g. Python. It's a game that teaches you stuff too -- I want lots of these in the world! Some kids might like low-level computing more than something else. And some adults might prefer game-ified learning over textbooks.
In my experience, those who start teaching with HLLs are aimed more at producing developers that have some minimal level of competence to enter the industry, rather than ones who actually understand what computers are and how they work. While the former is perfectly acceptable for a lot of things, the latter are important because they tend to be the ones who can easily debug difficult problems. IMHO teaching kids HLLs does nothing to dispel (and if anything, furthers) the notion that computers are mysterious magical devices rather than machines that simply follow a list of instructions and manipulate bits. The latter is particularly important as computers become more prevalent in society, people who know nothing about how they work will be less inclined to present good arguments for the issues of privacy, encryption, etc.
Both ultra-low-level and ultra-high-level languages are easy to grasp. Ultra-low-level concepts translate better into logical skills, how to think, etc.
For what it's worth, I struggled for so many years understanding what higher level
programming actually is, while simultaneously doing it. It never felt complete.
I went through Crash Course Computer Science (from John Green / PBS...) and it really helped me feel grounded.
Maybe this is attempting the same, just starting at one end of the abstractions.
High level, low level formally refers to the level of abstraction of the virtual machine of the programming language with respect to the "target" model of computation. We say assemblers are "low level" since it adds very little abstraction to the von neumann machine it's intended to run on, on the other hand, python programs compile to a long set of instructions. One can formalize this concept using Kolmogorov complexity. (i.e. what's the size of smallest assembler program implementing python)
Maybe there are other people like me who will benefit from this. It's probably not for everyone, but the goal is to have it resonate deeply with some users.