We can understand some computer programs in the way we solve basic math equations: by performing one simple algebraic step after another, until we reach an answer. This course introduces you to programming in this way, following the classic textbook Structure and Interpretation of Computer Programs, JavaScript edition (SICP JS). It starts from first principles, looking at functions that you know from mathematics, but before long, you will program interesting graphic and audio patterns using Source Academy, a website built for SICP JS. Video processing serves as the example domain for imperative programs. In the project, you get to develop your own programming language or module, within Source Academy. The course offers entertaining and thought-provoking insights into the essence of computation, programming, and programming languages.