Learn to Program

“Programming is amazing. I think it is the closest
thing we have to a superpower”

– Drew Houston
Founder and CEO, Dropbox


Hello,


This site has some of the material used to teach volunteer after-school STEM classes at Palm Crest Elementary (PCR) in La Cañada, CA, between 2012 and 2017. This material is free for anyone to use; hope someone finds it useful. This material is intended to be used with a teacher present but still a person can follow most of it without additional guidance. The classes provide templates in the form of complete projects that someone can use as the starting point for new projects.

We use a variety of languages in our classes: Intro. to Programming I and II use Python, Computer Design I uses a hardware description language (HDL), BASIC, and a machine language (ML), and the Front-end development class uses HTML5, CSS, and Javascript. Still, our focus is to learn how to program, not how to program in a particular language. Jumping from one language to another is relatively simple compared with learning how to program.

In the Intro. to Programming I class, we learn how to control Karel, a small robot that lives in a grid. After we go through this material, we could move to any procedural language easily, and tackle the more challenging material in the other courses.


For general information, please click in the following links:

  • Intro. to Programming I
    Learn basic programming principles with Karel, the robot.
    – 3rd-6th grade but priority to 3rd-4th grade students
    – No prerequisites.
     
  • Intro. to Programming II
    Programming interactive games in Python.
    – 3rd-HS students
    – Prerequisites: “Intro. to Progr. I”.
     
  • Computer Design I
    Design the hardware of a computer similar to a gameboy.
    – 3rd-HS students
    – Prerequisites: “Intro. to Progr. I”.
     
  • Front-end Developer
    Learn how to program the client side of a web browser.
    – 3rd-HS students
    – Prerequisites: “Intro. to Progr. I”.