Provides an exceptionally approachable introduction to programming concepts featuring 100s of learning questions and numerous auto-generated auto-graded homework exercises.. Initially uses flowcharts to teach basic programming concepts including variables, data types, assignment statements, arithmetic operations, decisions, loops, arrays, and functions. For each, also teaches coding. Uses a new ultra-simple programming language, Coral, having unified flowchart and code version, and coming with a free web-based educational simulator. Also introduces basic troubleshooting/debugging techniques, and overviews program design methods including waterfall and agile design processes, UML, libraries, and more.