An intro to Scratch

advertisement
Computer Science Concepts
What is an algorithm?
2.
Binary information coding
Programming concepts via Scratch
1.
3.
Designed for learners 10 years old up to 100.
2012 CSE-BEACON camp
1
Materials for hands on activities
1) a set of cards with numbers, say, 42, 17, 43, 55, 20, 32, 12
2) A set of cards with binary place values: 1, 2, 4, 8, 16
3) Scratch downloaded from www.scratch.mit.edu
4) www.learnscratch.org for tutorials for homework
5) www.cse.msu.edu/~stockman for this and other ppt sets
2012 CSE-BEACON camp
2
What is an algorithm?
What is an algorithm?
Algorithms for average and min
An algorithm for sorting
2012 CSE-BEACON camp
3
Algorithm for computing the
average of two numbers





Let the first number be A; say A=12
And the second number be B; say B=15
To compute the average _____________
So the average of 12 and 15 = ________
WHAT IS THE AVERAGE ALGORITHM?
2012 CSE-BEACON camp
4
What is an algorithm?
An algorithm computes some
output
from the given input
using precise steps
that a machine can follow
(machine or other agent)
2012 CSE-BEACON camp
5
Hands on activity: finding MIN





Organize into 2-person teams
Team has “person A” and “person B”
Each team has a stack of cards
There is one number on each card
No one looks at numbers yet
2012 CSE-BEACON camp
6
problem: finding min






Person B is the “worker” for A.
Person A has cards, but cannot look at the
numbers. A must find the min of all cards.
B can look at only 2 numbers at a time -- B
returns to A the smaller smaller first.
HOW CAN PERSON A FIND THE MIN?
Shuffle the cards
A and B switch roles: new person A finds MIN
2012 CSE-BEACON camp
7
review: team finding the min






Person A can look at no numbers!
No numbers can be seen by A, EVER!
Person B can look at only two numbers on cards
given by person A.
Person B gives back to A first the card with the
smaller number (if numbers are = then it doesn’t
matter which is given first)
Person A must find the min and show it to the
instructor WITHOUT EVER SEEING IT
A and B should switch roles and repeat.
2012 CSE-BEACON camp
8
Thought Questions




If A has 10 cards with numbers, how
many times does A call on B? _____
If A has 100 cards, how many times
does A call on B? _____
If A has N cards, how many times does
A call on B? _____
Finding the MIN of a list of numbers has
“complexity” _______
2012 CSE-BEACON camp
9
Thought Question




Suppose A has 2 assistants – B and C
Can A find the MIN any faster?
HOW?
Computers and computer programs can be structured
to do more than one operation at a time.
2012 CSE-BEACON camp
10
Problem: how to sort?
Use set of cards for each team.
How can A sort using B as
comparer?
TRY IT: instructor will check your
final output
2012 CSE-BEACON camp
11
Sorting two-person activity





This is a 2-person exercise. Person A CANNOT see
the numbers – EVER!
To solve the sorting puzzle, person A must form an
ordered list of cards, which the instructor will check
for order (this is the OUTPUT).
Person B can only compare two numbers by seeing
the numbers. Person B gives A the smaller number
card first (precise operations).
Person A can only ask Person B which of two cards
has the smaller number. Person A never ever looks at
any numbers.
To solve the sorting puzzle, person A must start from
an unordered list of cards (this is the INPUT).
2012 CSE-BEACON camp
12
Sorting thought questions




How many
numbers?
How many
How many
times will A call on B to sort 10
_____
calls to sort 100 numbers? _____
calls to sort N numbers? _____
There are many sorting algorithms. Some are fast
when N is small but slow when N is big. Some are
the opposite. Computer scientists learn these
algorithms and many others.
2012 CSE-BEACON camp
13
Algorithms often do
operations over and over



Called “looping”
Also called “iteration” or “repetition”
“Recursion” is a related idea – first
select the MIN from the list and then
“recurse” on the rest of the list
2012 CSE-BEACON camp
14
Binary Information Coding
1.
2.
Only 2 symbols: WHY?
Can we code numbers, characters,
music, images, movies, car designs
using just 2 symbols?
2012 CSE-BEACON camp
15
Coding activities
1.
2.
3.
4.
*
Guessing the number of fingers in decimal
Guessing 1 finger versus 0 fingers
Encoding small integers using binary cards
Coding using animate versus inanimate
objects (“My teacher plays rock, paper,
scissors with me.”)
Instructor quickly brings, say, 7 fingers from behind the back. Students make
errors in guessing the number. Few errors in 0 versus 1 discrimination.
2012 CSE-BEACON camp
16
Fundamental coding principle



Can rep 2 “things” with 1 bit: yes/no;
smiley/sad; high/low; odd/even
Can rep 4 “things” with 2 bits; 00:clubs;
01:diamonds; 10:hearts; 11:spades
Can rep 8 things with 3 bits
0 00
1 00
0 01
0 10
0 11
1 01
1 10
1 11
2012 CSE-BEACON camp
17
Fundamental coding principle



Each time we add one more bit, we
__________ the number of binary
strings
There are _____ binary strings of
length N=7 (think about ASCII code)
There are thus ______ possible binary
strings of length N bits
2012 CSE-BEACON camp
18
ASCII code for characters
CHAR CODE
A
B
C
+
*
CHAR CODE
001000001
001000010
001000011
000101011
000101010
a
b
c
.
%
001100001
001100010
001100011
000101110
000100101
2012 CSE-BEACON camp
19
How many characters does a
computer need to use?




Old Univac system used 6 bit char – a
design disaster: _____ symbols max
IBM 8-bit code enabled ____ symbols
(digits, caps, small letters, punctuation,
graphic symbols, bell, null, etc.)
Unicode uses 16 bits to code all of the
above and international characters:
______ symbols.
2012 CSE-BEACON camp
20
CD has many tracks of spots
What’s a “CD”?





Shiny spot is 0
Burned spot is 1
5 billion spots total
700 MB total
44,000 x 16 spots
for just 1 second of
high fidelity music
Laser reads shiny
versus dull spots
2012 CSE-BEACON camp
CD
CD spins
21
Even parity to detect errors




To the 7-bit ASCII code, append one
parity bit to have an even # of 1 bits
Sender always sends an even number
of bits
If some disturbance causes a bit to
change, receiver gets an odd number or
1-bits in the char code.
If error, receiver asks for retransmit.
2012 CSE-BEACON camp
22
Bit strings as numbers
Binary Places
16 8 4 2 1
00000
00001
00010
00111
10101
Decimal equivalent
0
1
2
7
21
2012 CSE-BEACON camp
23
Binary Ops easy for machine



Addition has few
rules.


Multiplication has
few rules

These can be carried
out in nanoseconds
by computer circuits



0+0 = 0
0+1 = 1+0 = 1
1+1 = 0 with 1
carry
0x0 = 0x1 = 0
1x0 = 0
1x1 = 1
2012 CSE-BEACON camp
24
1 is
0 is

What number?

What number?

What number?
2012 CSE-BEACON camp
25
0 is



1 is
What number?
____
What number?
____
What number?
2012 CSE-BEACON camp
26
0 is
1 is

What number? ______

What number? ______

What number? ______

What number? ______
2012 CSE-BEACON camp
27
Binary coding in a computer


Symbol 0 can be represented by +5V
and 1 by -5V
0 can be darkness and 1 lightness, as
used on CDs and DVDs or in optical
fibers
2012 CSE-BEACON camp
28
Conversion of decimal to
binary: Algorithm #1




Let D1 be a decimal
integer
Let R1 = remainder of
D1 divided by 2; R1 is
the 1’s bit
Let D2 be the dividend
of D1/2
Let R2 = remainder of
D2 divided by 2; R2 is
the bit in the 2’s place.
& so on
2012 CSE-BEACON camp
29
Decimal to binary conversion
INPUT: a decimal number
OUTPUT: a binary number
PRECISE STEPS: repeated division by
2; recording the remainder
TERMINATES?: always (why?)
CORRECT?: why?
2012 CSE-BEACON camp
30
Guessing games
•
•
•
•
Guessing
Guessing
Guessing
Guessing
birthdays: just day of month
month and day
face value of cards
suit and face value
2012 CSE-BEACON camp
31
Programming concepts
via Scratch
Free download of software available at
www.scratch.mit.edu
Video tutorials for learning available at
www.learnscratch.org
2012 CSE-BEACON camp
32
What can we do with Scratch?
•
•
•
•
Learn some computing concepts.
Learn some practical algorithms.
Use Scratch as computing tool.
Have fun with Scratch creating stories,
games, art.
2012 CSE-BEACON camp
33
Start scratch and let’s go!
•
•
•
In the lab, Click on the cat icon
Scratch programming
environment comes up
First do simple things
2012 CSE-BEACON camp
34
Explore Scratch environment
•
•
•
•
•
Stage is at upper right (where actors act and
information is displayed)
Sprite is another name for actor.
Instruction menus/panel at left (instructions
for the actors)
A script is another name for program or
method; a script tells the actor what to do.
Programming area in center; here is where
we construct scripts for the sprites
2012 CSE-BEACON camp
35
The VARIABLES Menu






Implement an average algorithm
Make a variable “FIRST” and set it to 12
Make a variable “Second” and set to 15
Make variable “Average”
Use OPERATIONS Menu to set the
Average to (FIRST+SECOND)/2
Test Scratch and algorithm
2012 CSE-BEACON camp
36
Square root by repetition







Guess sqrt(N) to be 1.0
Set root1 = 1.0 (first factor)
Set root2 = N/root1 (second factor)
root1 is not likely to = root2
Reset root1 to the average of root1 and root2 (it will
be in between them, why?)
Reset root2 = N/root1
Repeat all of the above until root1 and root2 are
“very close”
2012 CSE-BEACON camp
37
Algorithm study is RICH!





Algorithm to find your BEST mate?
What if you had the coding of genes for
all possible mates?
Algorithm to make bet on Big 10 game?
Algorithm to find best molecule to bond
with a given input molecule?
Algorithm to bond 2 molecules to create
“best properties”.
2012 CSE-BEACON camp
38
Information theory is RICH



SETI: Search for Extra Terrestrial
Intelligence
Jodi Foster movie “Contact”
What are the chances that a random
signal from space codes “I love you”?
Or “X^2+Y^2 = R^2”?
2012 CSE-BEACON camp
39
The LOOKS menu
Has instructions for setting the
color, size, and visibility of a
sprite. Costumes will be used
later.
2012 CSE-BEACON camp
40
The “hello” script (program)
•
•
•
•
Choose the Looks menu
Click on the “say hello” lego block
Check your sprite behavior at the
right
Then click “say hello for 2 secs”
Your very first Scratch program!
2012 CSE-BEACON camp
41
Try some other looks operations
(click on menu items)
•
•
•
•
•
•
•
Change color effect by 25
Change color effect by 25 again
Hide
Show
Change size by 10
Change size by 10 again
Set size to 100%
2012 CSE-BEACON camp
42
Let’s write a script to
•
•
•
•
•
Say “hello” for 2 seconds
Then change color by 25
Then think “Hmm..” for 4 seconds
Then change color by 75
Then change size by 200
Drag each instruction from the menu to the
center script area. Connect them into a single
block. Edit the parameters to get the numbers we
want.
2012 CSE-BEACON camp
43
Our script (program)
2012 CSE-BEACON camp
44
A sequence or block is a
simple script or program
•
•
•
•
The first instruction is done first
The second instruction is done second
The last instruction is done last.
(if any one instruction is done, then every
on of them is done)
2012 CSE-BEACON camp
45
The WAIT instruction
•
•
•
WAIT is needed to slow down the
acting so we can see or hear it properly
(computers are too fast sometimes)
Get the wait instruction from the
CONTROL menu. Ignore the other
menu options for now.
Insert a wait in our looks script
2012 CSE-BEACON camp
46
3 second pause between
changing color and size
2012 CSE-BEACON camp
47
Student exercise: write a
script to do the following
•
•
•
•
•
•
Double the size of the sprite
Wait 2 seconds
Change the color of the sprite to green
Wait 4 seconds
Change the whirl effect to 100
Say “That’s all folks!”
2012 CSE-BEACON camp
48
The MOTION menu
How to locate and orient a sprite;
and, how to move a sprite.
2012 CSE-BEACON camp
49
Position on the stage
•
•
•
Using the Looks
menu, shrink
our cat to 25%.
Click on the
Motion menu.
Click to check
the box for xposition and yposition
Drag your cat
around and note its
x-y position.
2012 CSE-BEACON camp
50
Exercises: goto instruction
(do you know about coordinates?)
•
•
•
•
•
In the Motion menu, drag the “goto xy”
instruction to the script panel.
Edit the coordinates and click to see the
sprite’s position
A) goto x=200, y=0
Where does
the cat go?
B) goto x=-200, y=0
C) goto x=200, y=-100
2012 CSE-BEACON camp
51
The “glide-to” instruction
•
•
Drag the “glide-to” instruction into
your script panel.
Edit the coordinate values and click
to see where your sprites goes.
2012 CSE-BEACON camp
52
Exercise
•
•
•
Create a script to glide the sprite along
the sides of a triangle. The first vertex of
the triangle is (-100, -100). The second
vertex is (200, -100). The third vertex is
(50, 100). Make sure you complete the
triangle.
Change the speed of gliding and run
again.
New feature: click on Pen Down in
the Pen Menu and
run it again
2012 CSE-BEACON camp
53
Exercise: A fun looping program





Position your sprite at the lower left
Put the pen down
Do the following forever
Rotate +5 degrees
Move around an equilateral triangle as
before (turning 120 degrees each angle)
2012 CSE-BEACON camp
54
Exercise: bat flying randomly
Make a bat fly by
flapping between 2 bat
“costumes”. Use random
values of coordinates x
and y.
Use arrows keys to
control the bat’s position.
* Use a forever loop to
make the bat continue to
fly when the flag is
clicked
* See if you can create a
“score” variable and use
it to count how many
times the user clicks on
the bat.
2012 CSE-BEACON camp
55
Exercise: find the MIN of a list




Explore how to create a list variable
Explore how to input numbers to the
list
Explore how to pass through the list
to set a variable MIN to the minimum
in the list
Some hints follow
2012 CSE-BEACON camp
56
Make list L and also a variable
for its Length
Our list
2012 CSE-BEACON camp
57
Ask the user for list length
after the user hits key ‘L’
2012 CSE-BEACON camp
58
Repeat Length times, ask the
user for item k of the List
The user has given 3 items and
is being asked for item k=4.
2012 CSE-BEACON camp
59
Download