The course is divided into 3 lessons in 2 days (12 hours of in-class instruction).
The students should have some familiarity with HTML/CSS (classes/ids). They do not need prior programming experience.
Each lesson includes:
- Slides: An HTML5-based slideset (not a PowerPoint) which actually embeds the actual HTML tags being described in order to better demonstrate them.
- In-class example: An example of what the teacher should build up during the course of the lesson, switching between talking over the slides and demonstrating the concepts in the example page.
- Exercise(s): These can be started in class and then continued outside of it, and the teacher can decide when to reveal the solution for the exercises. For the most part, the solution to an exercise serves as the starting point for the next exercise.
- Take-home assignment and solution: A take-home assignment that incorporates many of the concepts from the class, along with a solution. We recommend an additional study group for the students to review their solutions.
- Additional Reading: Links that teachers can recommend students read after a lesson.
- Related Resources: Slides or tutorials that were useful in the creation of the lesson content. Teachers can visit these to get an idea of how other people present the content.
- Room for Improvement: A list of ways that the particular lesson might be improved.
For this course, I recommend having the students use repl.it for the first two lessons, for easy JS debugging. That's also useful for in-class examples.
This course was given by Pamela Fox in May, 2012 as part of Girl Develop It in San Francisco, California. More recently, this has been taught and updated by Brenda Jin, Bianca Gandolfo, and Claire Bendersky.
If you are using this material and have questions/comments, feel free to leave them here or on the individual lesson pages.
Lesson 1: Variables & Functions
programming languages, JS history, variables, functions
- Slides: Intro to Programming
- Slides: Intro to JS, Variables, and Functions
- Exercise: Variables
- Exercise: Functions
- Homework: The Calculator
- Homework: Strings
Lesson 2: Control Flows & Arrays
if, else, for, while
- Slides: Control Flow & Arrays
- Exercise: if/else
- Exercise: for loops
- Exercise: arrays
- Homework: The Word Guesser
Lesson 3: Objects
Objects, JS built-in objects
- Slides: Objects
- Exercise: Objects
- Exercise: Objects as Arguments
- Homework: Cash Register
- Homework: The Credit Card Validator
- Homework Solution for The Credit Card Validator
- Exercise: Cash Register