Computation and Change

Almost all of the programming languages that you'll encounter on a day-to-day basis (Python, Ruby, Java, JavaScript, C, C++, PHP, Go...) have important things in common. This unit focuses on what's similar about all of those languages: the way they allow us to store and change values according to simple rules called commands. We will write a bit of code in JavaScript specifically.

Note: as a scheduled class, this is a two-parter (10-sessions total). As guided instruction for people with on-the-job training or bootcamp experience, it can be done at an accelerated pace.


None. This series is designed to be stand-alone and should be accessible to people who have never programmed a line of code in their life. Mathematically, it assumes a knowledge of "solve-for-x" style high school algebra.


After this course, you'll be able to answer questions like:

  • What does it mean for a programming language or computer program to be imperative?
  • Writing "x = x + 1" makes little sense to someone who takes
    algebra: there's no way to solve for x! So why is it a fairly
    common thing to write in many computer languages?
  • How does high-school algebra help us understand what a program does?
  • What is a procedure (or function)?
  • How do we use preconditions and postconditions to talk about
    the behavior of functions?
  • What kinds of problems do we want to solve with conditionals and loops?
  • What isĀ Big-O notation? How and why do we use it to talk about how fast programs are?

Guided personal instruction available now.