Comment A BASIC fan's step-by-step curriculum (Score 2) 215
Step 1: Show them the BASIC interpreter
Step 2: PRINT, INPUT, IF, GOTO, END
Step 3: Show them Python, C++, or even JavaScript, if you hate them
I know it's not really what a platform-builder wants to hear, but please use BASIC only for purposes for which it's the best tool. It's ideal for highlighting the often-missed initial concepts, such as the facts that statements are executed in order, variables can store information and change, and that certain statements can change the program flow. Those core ideas are so internalized by experienced programmers that they often won't understand how students could be missing them. From the student's perspective, it's perfectly reasonable that once statements are made anywhere in a program, the computer should pick which one to run based on what would make sense. It's also reasonable that a variable should be set once and never change, or should be usable before being set because "it's set right there!"
BASIC has one major advantage over every other language out there: absolutely no boilerplate, and absolutely no hidden intelligence in the interpreter. Everything that makes the program run is visible in the code, and everything in the code does something lesson-related in the most minimal programs. Contrast with C, which requires defining a main() function before the student knows what a function is. This simplicity and obviousness makes BASIC the perfect tool for demonstrating simple and obvious programs, but it's inelegant for learning any actual computer science concepts like memory management, design patterns, or data structures.
Those concepts are best covered in another language, which also highlights another important CS concept: The functional equivalence of all Turing-complete languages, but the effects of language choice on the difficulty of the project.