Learn to Program

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

– Drew Houston
Founder and CEO, Dropbox


My name is Andres Castano. I have many years of experience programming in many languages and many machines, specially robots. I have worked on projects for DARPA, all the military branches, and NASA, for which I wrote the Dust Devil and Cloud detectors currently running on the Mars rovers. In this site you will find the material that I have been teaching since 2012, as a parent volunteer for after-school classes, at Palm Crest Elementary (PCR), in La Cañada, CA. Although a person can follow some of these material without additional guidance, the material is intended to be used with a teacher present.

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 the student has gone through this material, s/he can move to any procedural language easily, and tackle the more challenging material in the other courses.

For specific information about classes at PCR, please click here.

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”.