A rigorous computer-science course from the ground up: how computers represent information, programming, data structures, algorithmics, digital design, discrete mathematics, algebra, calculus, and the physics behind computing.