I came up with an idea about a programming language or environment to teach programming concepts.
The language is meant to allow students to learn at whatever pace they want. Though it would never act quite like a real language, as it would all be managed and used through a UI rather than through typing code, it should be able to progressively express the different concepts in computer program design. The advanced features should always be present, but also transparent; this way, they will not distract students from what they are learning, but will also not hinder them if they want to learn more.