We developed a new approach to computer programming, creating new languages with low thresholds but high ceilings, that enabled kids (and other novice programmers) to make a smooth transition from simple commands to complex programs. Using our LogoBlocks languages, kids created programs by snapping virtual LEGO bricks together on the screen.