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,


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 created between 2012 and 2016, when I taught programming as an after-school-class volunteer parent, 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 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”.