Welcome to Programming Foundations!

This is a study program for Full Sail students interested in learning Perlenspiel. It is also the curriculum for Programming Foundations. Each week has multiple distinct topics; each topic has an Experiment and a Lab. The Experiment is for your own edification and will walk you through an introduction to various programming concepts. The Lab will challenge you to use those concepts in a new way.

Be sure to check out the Perlenspiel 3 website.

To learn more about this course, read the About page.


Download the Course Setup document and the PerlenspielTemplate zip file. The setup document has instructions for formatting your course folder.

Course Setup
Perlenspiel Game Template (Version 3.0.8, last updated on Jan. 3rd, 2014)

The notes file is for your own use. Please use it to take notes while you read and watch lectures.

PGF Notes Template (The is important! Take notes!)

You will also need:

And one of the following:

Additional Resources

We are using two books in this class. You should receive one of them in the mail, titled JavaScript, A Beginner's Guide, by John Pollock. It is a good introduction to JavaScript, and you can use it as a reference manual. There is also a free online textbook, Eloquent JavaScript, by Marijn Haverbeke. It is a bit more advanced, but also talks about the problem solving aspects of programming.

You do not need to read both books. Try out each of them and see which one you like the best.

Please read the Resources page for additional reference throughout this course.

Week 1

Read Haverbeke, Chapter 1 - Introduction
Haverbeke, Chapter 2 - Basic JavaScript: values, variables, and control flow

Read Pollock, Chapter 1 - Introduction to JavaScript
Pollock, Chapter 3 - Using Variables
Pollock, Chapter 5 - JavaScript Operators

The basics. Lots of stuff, but straight-forward. Begin with learning how to output.

Lesson 1 Video Part 1: Introduction
Experiment - Hello
Lab - Draw Some Stuff
Rubric - Draw Some Stuff

Data, math, and expressions.

Lesson 2 Video Part 2: Variables
Experiment - Variables
Lab - Calculations
Rubric - Calculations

Learn about how to fix syntax errors.

Debug! Required viewing if you want to be a code ninja. Use skills learned in this video to locate and remove many types of errors.
Debugging Part 1: Debug Console

Output with a computer-controlled twist.

Lesson 3 Video Part 3: Control Statements
Experiment - Flow Control
Lab - Color Machine
Rubric - Color Machine

Week 2

Read Haverbeke, Chapter 3 - Functions

Read Pollock, Chapter 6 - Conditional Statements and Loops
Pollock, Chapter 4 - Using Functions

Learn about how to fix logic errors.

Debug! Advanced debugging techniques to help you defeat any size of bug that you will encounter in this course.
Debugging Part 2: Break & Step

Functions and basic game logic.

Lesson 4 Video Part 4: Functions
Experiment - Functions
Lab - Treasure Hunt
Rubric - Treasure Hunt

Lesson 4b Time to finish the Tic Tac Toe example from lesson 3.
Video Part 4b: Tic Tac Toe

Learn about the mouse.

Lesson 5 Video 5 - Mouse & Data
Experiment - Mouse
Lab - Sketch
Rubric - Sketch

Week 3

Read Haverbeke, Chapter 4 - Data Structures: Objects and Arrays
Haverbeke, Chapter 5 - Error Handling

Read Pollock, Chapter 11 - JavaScript Arrays
Pollock, Chapter 8 - Objects

Make a simple keyboard-controlled game.

Lesson 6 Experiment - Keyboard
Video 6 - Game Features
Lab - Key World
Rubric - Key World

Create a Frogger game with arrays and timers.

Lesson 7 Video 7 - Arrays (Not updated yet)
Experiment - Arrays
Lab - Frogger
Rubric - Frogger

Week 4

This is optional material that you may find interesting or useful for your 7th lab assignment.

Objects allow you to organize data more effectively. They can be combined with other program features like for-loops and functions.

Lesson 8 Video 8 - Objects (Not updated yet)
Experiment - Objects