# Chapter 1

```Alice and Algorithms
Chapter 1 Part 1
1-1
Reasons to Program
The joy of programming
 To create a tool
 To use your creativity abilities
 For non programmers

o
Learn a new way to think
 Drawing
o
course does same thing
Helps problem solving skills
 Finding
 Determine how to perform a task
Alice

A modern programming tool
o
o
3-D graphics
3-D models of objects


Animation
o
o


People, animals, fantasy creatures, vehicles and backgrounds
Objects can be moved around a 3D virtual world
Similar to a video game or simulation
CD in book has Alice worlds from chapters
www.alice.org
Alice Examples
Example Alice worlds
 Promotion video

1-4
Origination of Alice

Named in honor of mathematician Charles
Lutwige Dodson
o
o
Was able to do complex math and logic
Knew he needed to make things for learner



Simple
Fascinating
Pen name was Lewis Carroll who wrote
o
o
Alice in Wonderland
Through the Looking Glass
Alice


Programming in Alice is like being a movie
director, puppeteer, or choreographer in a 3D
world
You create programs by dragging words and
objects to editor with mouse
Kinds of Animations

Two kinds of animations
o
Movie
 Can
tell a story
 Passively watch animation
o
Interactive
 Active
user clicks on mouse or types on keyboard
 User actions are called events
Programming Terminology




Algorithm – step by step structure to solve a
problem
Program – implementation of algorithm using
a programming language
Instruction – an action to be performed
Pseudo code – loose set of instructions not
tied to any program environment
Computer
A device that follows instructions for
manipulating and storing data
 Computer program – set of instructions that
computer follows to perform a task

o
Instructions must be carefully written to follow
a logical sequence
 That
is key – you think of logical sequence you
want computer to follow

Running or executing program – when
computer is performing instructions
1-9
Algorithms
 Algorithm
o
o
Set of well-defined logical steps
Must be performed in order to perform a task
• Example: Making a cup of instant coffee
–
–
–
–
–
–
–
–
Remove lid from coffee jar
Put lid down on counter
Remove 1 tsp of coffee from jar
Place that coffee in a cup
Add 8 oz of boiling water to cup
Use teaspoon to stir water and coffee mixture
Stir 10 revolutions
Remove teaspoon from cup and place on counter
Is it detailed enough?
Is anything
ambiguous?
1-10
Algorithms
Algorithms are understandable by humans
(natural language)
 Computers understand machine language
not natural language

0110001001101100011000010110
Blah
1000001000000110001001101100
Blah
011000010110100000100000
Blah
0110001001101100011000010110
1000
1-11
Programming Languages

Programming languages are converted to machine
language by
o
o
Compiler – Instructions converted before executing
program
Interpreter – Each instruction is individually converted
during execution, Ex: Alice
Starting
…01010011011101000110000101110010011101000110
1001011011100110011100100000
out
…011011110111010101110100
With
…0111011101101001011101000110100000100000
Alice
…0100000101101100011010010110001101100101
1-12
Programming Languages


Operators
o
+ - * /
o
Perform arithmetic and other functions on data
Syntax
o
o

Set of rules that must be followed
Similar to the set of rules that are followed when people
speak a natural language
Program or code
o
o
Consists of keywords, operators, punctuation arranged in
proper logical sequence
Save, compile, link, executable program is produced
1-13
Checkpoint
What is a computer?
 What is an algorithm?
 What is a program?
 What language is an algorithm written in?
 What is the only language computers
understand?
 Why were programming languages
invented?

1-14
Class Exercise
Write an algorithm that explains how to
make a Peanut Butter and Jelly sandwich
 Assume the person does not know anything

1-15
Homework






Describe the scene of two volleyball players on
opposite sides of a volleyball net
Write an algorithm to have one player serve the
ball to the other
Have the other jump up with arms raised to block
the ball
Have the ball fall to the ground across from the
net.
Make sure you reset the players to the resting
position
Reset server at same time as ball moves
1-16
```