programming with scratch - unomaha.edu · getting computer science into the k-12 curriculum...
TRANSCRIPT
![Page 1: Programming with Scratch - unomaha.edu · Getting Computer Science into the K-12 Curriculum CodeCrush Outline •Computational thinking •Introduction to Scratch •Short exercise](https://reader030.vdocuments.us/reader030/viewer/2022041212/5dd113b0d6be591ccb641bca/html5/thumbnails/1.jpg)
Getting Computer Science into the K-12 Curriculum CodeCrush
Programming with Scratch
Harvey Siy [email protected]
http://www.cs.unomaha.edu/~hsiy
![Page 2: Programming with Scratch - unomaha.edu · Getting Computer Science into the K-12 Curriculum CodeCrush Outline •Computational thinking •Introduction to Scratch •Short exercise](https://reader030.vdocuments.us/reader030/viewer/2022041212/5dd113b0d6be591ccb641bca/html5/thumbnails/2.jpg)
Getting Computer Science into the K-12 Curriculum CodeCrush
Outline
• Computational thinking
• Introduction to Scratch
• Short exercise
• A more complicated example
• Discussions
2 2/26/2014
![Page 3: Programming with Scratch - unomaha.edu · Getting Computer Science into the K-12 Curriculum CodeCrush Outline •Computational thinking •Introduction to Scratch •Short exercise](https://reader030.vdocuments.us/reader030/viewer/2022041212/5dd113b0d6be591ccb641bca/html5/thumbnails/3.jpg)
Getting Computer Science into the K-12 Curriculum CodeCrush
Computational Thinking is…
A problem solving approach… … solving a problem by explaining the steps needed to arrive at the solution. To explain the steps, you have to: • come up with the steps • communicate them • defend them
3 2/26/2014
![Page 4: Programming with Scratch - unomaha.edu · Getting Computer Science into the K-12 Curriculum CodeCrush Outline •Computational thinking •Introduction to Scratch •Short exercise](https://reader030.vdocuments.us/reader030/viewer/2022041212/5dd113b0d6be591ccb641bca/html5/thumbnails/4.jpg)
Getting Computer Science into the K-12 Curriculum CodeCrush
Explaining the steps
• come up with the steps – involves creativity – involves recognizing similar situations
• communicate the steps
– how can I express them clearly? – involves creating an algorithm* – forms the basis of computer programming
• defend the steps
– are these the right steps? – will these lead to a correct solution? – involves logical reasoning and critical thinking
4 2/26/2014
* step-by-step procedure for solving a problem
![Page 5: Programming with Scratch - unomaha.edu · Getting Computer Science into the K-12 Curriculum CodeCrush Outline •Computational thinking •Introduction to Scratch •Short exercise](https://reader030.vdocuments.us/reader030/viewer/2022041212/5dd113b0d6be591ccb641bca/html5/thumbnails/5.jpg)
Getting Computer Science into the K-12 Curriculum CodeCrush
• Coding is the most fun way to practice computational thinking.
• Lots of resources for all grade levels from Hour of Code: http://code.org/learn
Teaching Computational Thinking
5 2/26/2014
![Page 6: Programming with Scratch - unomaha.edu · Getting Computer Science into the K-12 Curriculum CodeCrush Outline •Computational thinking •Introduction to Scratch •Short exercise](https://reader030.vdocuments.us/reader030/viewer/2022041212/5dd113b0d6be591ccb641bca/html5/thumbnails/6.jpg)
Getting Computer Science into the K-12 Curriculum CodeCrush
Scratch
• http://scratch.mit.edu • Fun and easy to learn • Develops creativity
6 2/26/2014
![Page 7: Programming with Scratch - unomaha.edu · Getting Computer Science into the K-12 Curriculum CodeCrush Outline •Computational thinking •Introduction to Scratch •Short exercise](https://reader030.vdocuments.us/reader030/viewer/2022041212/5dd113b0d6be591ccb641bca/html5/thumbnails/7.jpg)
Getting Computer Science into the K-12 Curriculum CodeCrush
Development Environment
7 2/26/2014
![Page 8: Programming with Scratch - unomaha.edu · Getting Computer Science into the K-12 Curriculum CodeCrush Outline •Computational thinking •Introduction to Scratch •Short exercise](https://reader030.vdocuments.us/reader030/viewer/2022041212/5dd113b0d6be591ccb641bca/html5/thumbnails/8.jpg)
Getting Computer Science into the K-12 Curriculum CodeCrush
Development Environment
8 2/26/2014
![Page 9: Programming with Scratch - unomaha.edu · Getting Computer Science into the K-12 Curriculum CodeCrush Outline •Computational thinking •Introduction to Scratch •Short exercise](https://reader030.vdocuments.us/reader030/viewer/2022041212/5dd113b0d6be591ccb641bca/html5/thumbnails/9.jpg)
Getting Computer Science into the K-12 Curriculum CodeCrush
Development Environment
9 2/26/2014
![Page 10: Programming with Scratch - unomaha.edu · Getting Computer Science into the K-12 Curriculum CodeCrush Outline •Computational thinking •Introduction to Scratch •Short exercise](https://reader030.vdocuments.us/reader030/viewer/2022041212/5dd113b0d6be591ccb641bca/html5/thumbnails/10.jpg)
Getting Computer Science into the K-12 Curriculum CodeCrush
Development Environment
10 2/26/2014
![Page 11: Programming with Scratch - unomaha.edu · Getting Computer Science into the K-12 Curriculum CodeCrush Outline •Computational thinking •Introduction to Scratch •Short exercise](https://reader030.vdocuments.us/reader030/viewer/2022041212/5dd113b0d6be591ccb641bca/html5/thumbnails/11.jpg)
Getting Computer Science into the K-12 Curriculum CodeCrush
Sprite
11 2/26/2014
Sprite
- An object that performs some action
- Can define “indefinite” number of
sprites in a program
Stage
- A special sprite
- 480x360
- Always in the background
The stage and sprites can
have scripts.
![Page 12: Programming with Scratch - unomaha.edu · Getting Computer Science into the K-12 Curriculum CodeCrush Outline •Computational thinking •Introduction to Scratch •Short exercise](https://reader030.vdocuments.us/reader030/viewer/2022041212/5dd113b0d6be591ccb641bca/html5/thumbnails/12.jpg)
Getting Computer Science into the K-12 Curriculum CodeCrush
Categories of blocks
12 2/26/2014
Move, rotate sprite
Output and
appearance
Sound effects
Controls the “pen”
Control structures
Feedback and input
Arithmetic, string,
Boolean operators
Variables and lists
Event handling
Advanced blocks
![Page 13: Programming with Scratch - unomaha.edu · Getting Computer Science into the K-12 Curriculum CodeCrush Outline •Computational thinking •Introduction to Scratch •Short exercise](https://reader030.vdocuments.us/reader030/viewer/2022041212/5dd113b0d6be591ccb641bca/html5/thumbnails/13.jpg)
Getting Computer Science into the K-12 Curriculum CodeCrush
Observations (subject to change)
• Real numbers are 64-bit floating point. • Integers appear to be unbounded.
• Lists can only have numbers, strings,
Booleans. – No list of lists. – No list of sprites.
• Recursion is not allowed
– Except tail recursion.
13 2/26/2014
![Page 14: Programming with Scratch - unomaha.edu · Getting Computer Science into the K-12 Curriculum CodeCrush Outline •Computational thinking •Introduction to Scratch •Short exercise](https://reader030.vdocuments.us/reader030/viewer/2022041212/5dd113b0d6be591ccb641bca/html5/thumbnails/14.jpg)
Getting Computer Science into the K-12 Curriculum CodeCrush
Flow of execution
• Sequence – one instruction followed by the next
• Decisions – compute a condition – if true, follow one set of instructions – if false, follow an alternative set of instructions
• Loops – allows a set of instructions to be
executed repeatedly
• Events – determines when to start an execution
14 2/26/2014
![Page 15: Programming with Scratch - unomaha.edu · Getting Computer Science into the K-12 Curriculum CodeCrush Outline •Computational thinking •Introduction to Scratch •Short exercise](https://reader030.vdocuments.us/reader030/viewer/2022041212/5dd113b0d6be591ccb641bca/html5/thumbnails/15.jpg)
Getting Computer Science into the K-12 Curriculum CodeCrush
Example 1: Computing square roots
• Use algorithm by Hero of Alexandria
To compute square root of x
1. Start with arbitrary positive value s
2. Replace s by (s + x/s)/2
3. Repeat #2 until s has stopped changing
15 2/26/2014
![Page 16: Programming with Scratch - unomaha.edu · Getting Computer Science into the K-12 Curriculum CodeCrush Outline •Computational thinking •Introduction to Scratch •Short exercise](https://reader030.vdocuments.us/reader030/viewer/2022041212/5dd113b0d6be591ccb641bca/html5/thumbnails/16.jpg)
Getting Computer Science into the K-12 Curriculum CodeCrush
Solution
16 2/26/2014
To compute square root of x
1. Start with arbitrary positive value s
2. Replace s by (s + x/s)/2
3. Repeat #2 until s has stopped
changing
Need to
make
variables Access the working version at:
http://scratch.mit.edu/projects/11656266/
![Page 17: Programming with Scratch - unomaha.edu · Getting Computer Science into the K-12 Curriculum CodeCrush Outline •Computational thinking •Introduction to Scratch •Short exercise](https://reader030.vdocuments.us/reader030/viewer/2022041212/5dd113b0d6be591ccb641bca/html5/thumbnails/17.jpg)
Getting Computer Science into the K-12 Curriculum CodeCrush
Observations from Example 1
• Can make something other than games or
stories (for more examples, see also
http://code.google.com/p/scratch-
unplugged/)
• Students can see the order of operations in
expressions by the 3-D treatment of the
operation templates.
17 2/26/2014
![Page 18: Programming with Scratch - unomaha.edu · Getting Computer Science into the K-12 Curriculum CodeCrush Outline •Computational thinking •Introduction to Scratch •Short exercise](https://reader030.vdocuments.us/reader030/viewer/2022041212/5dd113b0d6be591ccb641bca/html5/thumbnails/18.jpg)
Getting Computer Science into the K-12 Curriculum CodeCrush
Example 2: Pong
18 2/26/2014
Move ball
When paddle hits ball
When paddle misses
Access the working version at:
http://scratch.mit.edu/projects/10597215/
![Page 19: Programming with Scratch - unomaha.edu · Getting Computer Science into the K-12 Curriculum CodeCrush Outline •Computational thinking •Introduction to Scratch •Short exercise](https://reader030.vdocuments.us/reader030/viewer/2022041212/5dd113b0d6be591ccb641bca/html5/thumbnails/19.jpg)
Getting Computer Science into the K-12 Curriculum CodeCrush
Example 3: Sorting
• Download the Scratch programs from http://code.google.com/p/scratch-unplugged/
• Find the selection sort program.
• Gives example of: – Multiple sprites
– Event handling
– Lists
19 2/26/2014
![Page 20: Programming with Scratch - unomaha.edu · Getting Computer Science into the K-12 Curriculum CodeCrush Outline •Computational thinking •Introduction to Scratch •Short exercise](https://reader030.vdocuments.us/reader030/viewer/2022041212/5dd113b0d6be591ccb641bca/html5/thumbnails/20.jpg)
Getting Computer Science into the K-12 Curriculum CodeCrush
Physical interactions
• Scratch offers additional forms of interaction beyond the traditional keyboard and mouse.
• Sensor boards – Picoboard (currently 1.4) – Makey Makey – Lego WeDo (currently 1.4)
• Kinect (currently 1.4) • Webcams (2.0 only)
20 2/26/2014
![Page 21: Programming with Scratch - unomaha.edu · Getting Computer Science into the K-12 Curriculum CodeCrush Outline •Computational thinking •Introduction to Scratch •Short exercise](https://reader030.vdocuments.us/reader030/viewer/2022041212/5dd113b0d6be591ccb641bca/html5/thumbnails/21.jpg)
Getting Computer Science into the K-12 Curriculum CodeCrush
Example 4: Webcam interaction
21 2/26/2014
Detect motion
by webcam
Remember to turn off
webcam when done!
“Faster” motion detected: move sprite up
“Slower” motion detected: move sprite down
Access the working version at:
http://scratch.mit.edu/projects/10673482/
![Page 22: Programming with Scratch - unomaha.edu · Getting Computer Science into the K-12 Curriculum CodeCrush Outline •Computational thinking •Introduction to Scratch •Short exercise](https://reader030.vdocuments.us/reader030/viewer/2022041212/5dd113b0d6be591ccb641bca/html5/thumbnails/22.jpg)
Getting Computer Science into the K-12 Curriculum CodeCrush
Makey Makey
22 2/26/2014
See demo at: http://vimeo.com/60307041
![Page 23: Programming with Scratch - unomaha.edu · Getting Computer Science into the K-12 Curriculum CodeCrush Outline •Computational thinking •Introduction to Scratch •Short exercise](https://reader030.vdocuments.us/reader030/viewer/2022041212/5dd113b0d6be591ccb641bca/html5/thumbnails/23.jpg)
Getting Computer Science into the K-12 Curriculum CodeCrush
Makey Makeys in action
23 2/26/2014
![Page 24: Programming with Scratch - unomaha.edu · Getting Computer Science into the K-12 Curriculum CodeCrush Outline •Computational thinking •Introduction to Scratch •Short exercise](https://reader030.vdocuments.us/reader030/viewer/2022041212/5dd113b0d6be591ccb641bca/html5/thumbnails/24.jpg)
Getting Computer Science into the K-12 Curriculum CodeCrush
Picoboard
24 2/26/2014
Slider
Clips
Light
sensor
Sound sensor
Button
![Page 25: Programming with Scratch - unomaha.edu · Getting Computer Science into the K-12 Curriculum CodeCrush Outline •Computational thinking •Introduction to Scratch •Short exercise](https://reader030.vdocuments.us/reader030/viewer/2022041212/5dd113b0d6be591ccb641bca/html5/thumbnails/25.jpg)
Getting Computer Science into the K-12 Curriculum CodeCrush
Picoboard controls (1.4)
25 2/26/2014
Sensing
button
sensor value
sensor condition test
![Page 26: Programming with Scratch - unomaha.edu · Getting Computer Science into the K-12 Curriculum CodeCrush Outline •Computational thinking •Introduction to Scratch •Short exercise](https://reader030.vdocuments.us/reader030/viewer/2022041212/5dd113b0d6be591ccb641bca/html5/thumbnails/26.jpg)
Getting Computer Science into the K-12 Curriculum CodeCrush
Comparable languages
26 2/26/2014
![Page 27: Programming with Scratch - unomaha.edu · Getting Computer Science into the K-12 Curriculum CodeCrush Outline •Computational thinking •Introduction to Scratch •Short exercise](https://reader030.vdocuments.us/reader030/viewer/2022041212/5dd113b0d6be591ccb641bca/html5/thumbnails/27.jpg)
Getting Computer Science into the K-12 Curriculum CodeCrush
Alice
27 2/26/2014
![Page 28: Programming with Scratch - unomaha.edu · Getting Computer Science into the K-12 Curriculum CodeCrush Outline •Computational thinking •Introduction to Scratch •Short exercise](https://reader030.vdocuments.us/reader030/viewer/2022041212/5dd113b0d6be591ccb641bca/html5/thumbnails/28.jpg)
Getting Computer Science into the K-12 Curriculum CodeCrush
Snap
• Spinoff from Scratch
• Supports – Higher order functions
– Recursion
– Lists of lists
28 2/26/2014
![Page 29: Programming with Scratch - unomaha.edu · Getting Computer Science into the K-12 Curriculum CodeCrush Outline •Computational thinking •Introduction to Scratch •Short exercise](https://reader030.vdocuments.us/reader030/viewer/2022041212/5dd113b0d6be591ccb641bca/html5/thumbnails/29.jpg)
Getting Computer Science into the K-12 Curriculum CodeCrush
Greenfoot
29 2/26/2014
A gentle transition
into Java
![Page 30: Programming with Scratch - unomaha.edu · Getting Computer Science into the K-12 Curriculum CodeCrush Outline •Computational thinking •Introduction to Scratch •Short exercise](https://reader030.vdocuments.us/reader030/viewer/2022041212/5dd113b0d6be591ccb641bca/html5/thumbnails/30.jpg)
Getting Computer Science into the K-12 Curriculum CodeCrush
CS Unplugged
• http://csunplugged.org • Computational thinking without computers!
30 2/26/2014
![Page 31: Programming with Scratch - unomaha.edu · Getting Computer Science into the K-12 Curriculum CodeCrush Outline •Computational thinking •Introduction to Scratch •Short exercise](https://reader030.vdocuments.us/reader030/viewer/2022041212/5dd113b0d6be591ccb641bca/html5/thumbnails/31.jpg)
Getting Computer Science into the K-12 Curriculum CodeCrush
Computational Thinking across the curriculum
31 2/26/2014
CT
Science
Technology
Engineering
Math
Computational science Scientific visualization
Information technology
Modeling, Simulation Computer-aided design
Automated theorem proving, Numerical
analysis
Visual/ Performing
Arts
Language Arts
Multimedia
Digital humanities
![Page 32: Programming with Scratch - unomaha.edu · Getting Computer Science into the K-12 Curriculum CodeCrush Outline •Computational thinking •Introduction to Scratch •Short exercise](https://reader030.vdocuments.us/reader030/viewer/2022041212/5dd113b0d6be591ccb641bca/html5/thumbnails/32.jpg)
Getting Computer Science into the K-12 Curriculum CodeCrush
Computational Thinking courses
32 2/26/2014
Exploring Computer Science
http://www.exploringcs.org/
Computer Science Principles
http://www.csprinciples.org/
![Page 33: Programming with Scratch - unomaha.edu · Getting Computer Science into the K-12 Curriculum CodeCrush Outline •Computational thinking •Introduction to Scratch •Short exercise](https://reader030.vdocuments.us/reader030/viewer/2022041212/5dd113b0d6be591ccb641bca/html5/thumbnails/33.jpg)
Getting Computer Science into the K-12 Curriculum CodeCrush
Some CS Resources
• J. Wing. Computational Thinking, Communications of the ACM, March 2006.
• Computer Science Teachers Association, http://csta.acm.org
• Google. Exploring Computational Thinking, http://www.google.com/edu/computational-thinking.
• CS Unplugged, http://csunplugged.org.
• Yadav. Computational Thinking in K-12 Education, http://cs4edu.cs.purdue.edu/_media/ct-in-k12_edps235.pdf. – See the list of resources near the end.
2/26/2014 33
![Page 34: Programming with Scratch - unomaha.edu · Getting Computer Science into the K-12 Curriculum CodeCrush Outline •Computational thinking •Introduction to Scratch •Short exercise](https://reader030.vdocuments.us/reader030/viewer/2022041212/5dd113b0d6be591ccb641bca/html5/thumbnails/34.jpg)
Getting Computer Science into the K-12 Curriculum CodeCrush
Scratch Resources
• Website: http://scratch.mit.edu (lots of examples)
• Curriculum Guide: http://scratched.media.mit.edu/resources/scratch-curriculum-guide-draft
• After-school lessons: http://scratch.redware.com/lessonplan
34 2/26/2014