Computer Science 101

Alice files are BIG. Consider a flash drive.
UnitTopicTextSample WorldsAssignments


Bootstrap Learning Alice

It is the "learning of Alice" and not "the Alice program" that we are bootstrapping in this unit.

Bootstrapping is explained here and here.

Get acquainted with Alice.

Play with Alice.

Why is it called Alice? Alice is not an acronym: it isn't A.L.I.C.E. and it doesn't stand for anything. The team named the system "Alice" in honor of Charles Lutwidge Dodgson (1832-1898), an English mathmatician and logician who wrote under the pen name Lewis Carroll. Carrol wrote Alice's Adventures in Wonderland and Through the Looking Glass.

In the same way that Alice was hesitant when she first stepped through the looking glass, you may have some doubts about learning to program. Please take that first step, and we promise that learning to program a computer will be easier than you might think.

The above explanation comes from the textbook by Wanda Dann, Stephen Cooper and Randy Pausch, Learning to Program With Alice (Pearson Education, Inc., Toronto, 2005), page 6.

For a great read, get The Annotated Alice, The Definitive Edition of Alice's Adventures in Wonderland and Through the Looking-Glass by Lewis Carroll, (W.W. Norton & Company, Inc., New York, 2000). This particular edition has the original illustrations by John Tenniel, and notes throughout by Martin Gardner who was the mathematical games editor for 25 years for the Scientific American Magazine.






  1. Download & unzip the most recent verion of Alice. Note that a JRE (runtime version of Java) is downloaded and installed with Alice. No further "installation" of Java or Alice is needed. If system requirements are otherwise satisfactory, Alice.exe runs "right out of the box".

  2. Install the Java 3D Runtime for the JRE in order to view Alice 2.0 worlds on the web.

  3. Install the Java Media Framework in order to view Alice 2.0 worlds on the web.

  4. Launch Alice. Do the following Online Tutorials.

  5. Help --> Tutorial 1 --> Open --> OK
         Learn the basics of Alice.

  6. Help --> Tutorial 2 --> Open --> OK
         Teach worlds & objects to do things.

  7. Help --> Tutorial 3 --> Open --> OK
         Mouse clicks & key presses.

  8. Help --> Tutorial 4 --> Open --> OK
         Create your own scenes.

UnitTopicTextSample WorldsAssignments


A Formal Introduction To Alice

Review class expectations.

Using Alice

  • Start Alice
  • Make a new world
  • Open a saved world
  • Play a world
  • Stop a world
  • Save a world
  • Add objects to the world
  • Delete objects from the world
  • Using the web gallery
  • Mouse controls in the scene editor
  • Move subparts of objects
  • Using quad view
  • Moving the camera
  • Arranging objects
  • Using popup menus
  • Using methods with object subparts
  • Motion controls




Movies are in Macromedia Flash format (go here: Flash player). Movies will open in a new window. If you have pop-up window prevention software you may not see the movie because of it.

View the movie which shows what Alice can do. Note that this video includes audio that narates the action.

View the movie to see how to bring an object into Alice from the gallery and move it around in the layout view.

Read and practice the lessons in the following appendix.

  1. "Getting Started" Tutorial, Part 1
  2. "Getting Started" Tutorial, Part 2
UnitTopicTextSample WorldsAssignments


Alice Concepts

Objects in Alice

What is interactivity?

Chap 1

Movie Demo

Interactive Demo

Save this file thus:
Right mouse click.
Save Target As...

Print the source code of the programs done for exercises 1-5 below. Click here to see how.

  1. Introduction Exercise 1 - Island (p 18)
  2. Introduction Exercise 2 - Winter (p 18)
  3. Introduction Exercise 3 - Snowpeople Pile (p 18)
  4. Introduction Exercise 4 - Teach Party (p 19)
  5. Introduction Exercise 5 - Soldiers on Deck (p 19)
UnitTopicTextSample WorldsAssignments


Animation Programs:
Scenarios & Storyboards

Creating your own animation (part 1)


Chap 2
Sect 1
  1. (To be turned in): Create a scenario and a storyboard for the musical chairs example (as discussed in 2.2 (a) exercises on page 52):
  2. Create both a visual storyboard sketched by hand with pencil and paper and a To Do List textual storyboard stating the same scenario in text.
  3. Implement (ie: generate the source code) for this scenario.
UnitTopicTextSample WorldsAssignments


Creating An Animation Program

Creating your own animation (part 2)

Initial Scene

Code generation

Chap 2
Sect 2

Snowman meets snow woman

Snowman meets snow woman (with comments)

  1. Complete Section 2-2 exercise 4: CirclingFish (p 52)
  2. Complete Section 2-2 exercise 2: TortoiseGetsCookie (P 53)
UnitTopicTextSample WorldsAssignments


Programming: Putting Together The Pieces
Built-in Questions and Expressions


Control structures



Chap 3
Sect 1

Egyptian scene using a distance question

  1. Complete exercise 3-1-1. Mummy to pyramid (p 74)
  2. Complete exercise 3-1-3. Joey hop to top of crate (p 74)
UnitTopicTextSample WorldsAssignments


Programming: Simple Control Structures Part 1 - Conditional Execution

Conditional execution


Nested Ifs

Relational operators

Chap 3
Sect 2

Egyptian scene with an If/else

  1. Complete exercise 3-1-4. Volleyball jump (p 74)
  2. Revise the Volleyball jump world. Use an If/Else statement to make the tallest person jump up 1/2 of their height and the shorter person jump up 1/4 of their height.
UnitTopicTextSample WorldsAssignments


Programming: Simple control structures Part 2 - Repetition



Chap 3
Sect 2

Egyptian scene with mummy taking steps

Egyptian scene using a Loop

  1. Complete exercise 3-2-5. Mummy's realistic walk (p 75)
  2. Complete exercise 3-2-6. Blimp and dragon (p 75)
UnitTopicTextSample WorldsAssignments


Classes, Objects, & World-Level Methods

Creating your own methods

Chap 4
Sect 1

Snowman meets snow woman

  1. Complete Section 4.1.1: Snowpeople flip hats

UnitTopicTextSample WorldsAssignments



Creating your own methods

Chap 4
Sect 2

The bug band

The bug band (with lyrics instead of sound)

  1. Exercise 4.2.5: Beetle Band Duet
  2. Exercise 4.2.7: Magic Act
  3. Alice Project 1
UnitTopicTextSample WorldsAssignments


Class-level Methods and Inheritance - Part 1

Class-level methods

Creating your own, more powerful classes


Chap 4
Sect 3

Tips &

Initial Skater

Clever Skater Character

  1. Alice Project 1
UnitTopicTextSample WorldsAssignments


Class-level Methods and Inheritance - Part 2

Class-level methods continued

Using object parameters with class-level methods

Chap 4

Modified Skater

  1. Exercise 4.3.9, Enhanced Clever Skater
  2. Exercise 4.3.11: Funky Chicken Dance
UnitTopicTextSample WorldsAssignments


Interactive Programming

Events and event handlers

Chap 5
Sect 1

Biplane - Simple Flight Simulator

  1. Exercise 5.1.1. Flight Simulator completion
  2. Exercise 5.1.3. Robot Remote Control
UnitTopicTextSample WorldsAssignments


Parameters & Event Handler Methods

More on interactivity

Passing parameters to event-handlers

Chap 5
Sect 2

Tips &

Save the People

The Fire Truck

Zeus World

  1. Exercise 5.2.14. Penguin Slide
  2. Exercise 5.1.15. Hockey
  3. Alice Project Assignment 2
UnitTopicTextSample WorldsAssignments



Built-in questions

Creating your own questions

Chap 6
Sect 1

Ball Bouncing Over Tennis Net

Ball Rolling

  1. Exercise 6.1.2. Rotating Tires
  2. Exercise 6.1.3. Bee Scout
  3. Alice Project Assignment 2
UnitTopicTextSample WorldsAssignments


Execution control with If/Else & boolean questions - Part 1


Boolean expressions

If statements

Chap 6
Sect 2

Avoiding a Collision

  1. Alice Project Assignment 2
UnitTopicTextSample WorldsAssignments


Execution control with If/Else & boolean questions - Part 2

More with If statements and decisions

Chap 6
Sect 2

Revisiting the Zeus World - 1

Revisiting the Zeus World - 2

Revisiting the Zeus World - 3

Revisiting the Zeus World - 4

  1. Exercise 6.2.6. Modifications to the Zeus World
  2. Exercise 6.2.12. Switch:
  3. Alice Project Assignment 2
UnitTopicTextSample WorldsAssignments


Random Numbers and Random Motion

Student presentations for Assignment 2

Chap 6

Tips &

Random Motion

  1. Design for Assignment 2 due
  2. Alice Project Assignment 2
UnitTopicTextSample WorldsAssignments


Repetition: Definite Loops

Introduction to repetition

The counted loop

Nested loops

Chap 7
Section 1

Bunny in Garden

Infinite Carousel

Ferris Wheel

Loop with a Question

  1. Exercise 7.1.2. Square Bunny Hop
  2. Exercise 7.1.3. Saloon Sign
UnitTopicTextSample WorldsAssignments


While: The Indefinite Loop

Random Motion

Chap 7
Section 2

Tips &

Shark Chase

  1. Exercise 7.2.5. Frog and Ladybug
  2. Exercise 7.2.6. Bumper Cars
UnitTopicTextSample WorldsAssignments



Introducing Recursion

Comparisons with While

Chap 8
Section 1

Horse Race

  1. Exercise 8.1.1. Modified Horse Race
UnitTopicTextSample WorldsAssignments


More About Recursion

Structural recursion

The Towers of Hanoi

Chap 8
Section 2

Towers of Hanoi

  1. Exercise 8.2.5. Towers of Hanoi
  2. Exercise 8.2.6. Towers of Hanoi modified
  3. Project 8.2. Skeleton Reversal
  4. Alice, Assignment 3
UnitTopicTextSample WorldsAssignments



Introduction to lists

Iterating through lists in order

Iterating through lists simultaneously

Chap 9
Section 1

Rockettes in Order

Rockettes Together

  1. Exercise 9-1-1. The wave
  2. Exercise 9-1-3. Spring Flowers:
  3. Alice, Assignment 3
UnitTopicTextSample WorldsAssignments


List Search

Whack-a-mole example

Chap 9
Section 2

Whack a Mole

  1. Chapter 9 Project 1: Halloween Treasure Hunt

    Note that you should make each tombstone (in the list) invisible when it is visited. When all tombstones are invisible, ghostlee wins!

  2. Student designs due for Assignment 3
UnitTopicTextSample WorldsAssignments


Variables & inheritance - Part 1

Introduction to variables

Revisiting Inheritance

Student presentations for Assignment 3


UnitTopicTextSample WorldsAssignments


Variables & inheritance - Part 2

Continued work with variables

Chap 10
Section 1


  1. Exercise 10-1.1. Simple Switches
  2. Exercise 10-1.4. Steerable car with rotating tires
UnitTopicTextSample WorldsAssignments


Arrays and Array Visualization

Introducfing arrays

Creation and access

Chap 10
Section 2

Array With Random Access

Array With Swap

Array With Turn In Loop

  1. Exercise 10-2.7. All Possible Permutations
  2. Project 10.2. A Horse Race Gam
UnitTopicTextSample WorldsAssignments


Debugging - Watch and Text Output

Allowing variables to be watched

Work on last class's assignment

Chap 10

Tips &

Corvette With Printing

Alice In Wonderland: An Interactive Adventure

[Counter On Strike [Home of Gerry Donaldson's Com Sci Gate]
[Gerry Donaldson's Email Address]
ICQ# 62833374
[EFC Blue Ribbon - Free Speech Online]

URL:    Last Revised:   April 10, 2005