Teaching Scratch and Alice Programming Margaret L. Rice Geoff Price Richard L. Rice, Jr. MaeganSlaten The University of Alabama Timothy Lewis Auburn University at Montgomery Richard L. Rice, III Mountain Brook High School, Alabama
Using Alice and Scratch • Students will • Learn mathematical and computational ideas • Learn computational concepts such as iteration and conditionals • Gain an understanding of important mathematical concepts such as coordinates, variables, and random numbers • learn about the process of design
Why Use Alice and Scratch • Build 21st century skills • Creativity, innovation and problem solving • Introduce students to object-oriented programming • Allowing students to learn fundamental programming concepts while creating animated movies and simple video games • Syntax of programming is very precise and difficult for students when first learning a programming language • Alice and Scratch move students past syntax to thinking through the steps necessary to make an event occur • Useful for teaching very young kids to learn basic programming skills • Useful tool for high school students to generate intricate and ingenious programmed worlds
Scratch • Scratch is a graphical programming language • You control actions and interactions among different media • To create a script, simply snap together graphical blocks much like LEGO bricks • These blocks contain the programming commands • Scratch works with graphics called sprites. The sprites are characters that you can move around the screen, make talk, etc. • Scratch allows you to add sprites (like the cat) to a stage and then control them using instructions called scripts.
Blocks • The blocks are designed to fit together only in ways that make syntactic sense, so there are no syntax errors. Different data types have different shapes, eliminating type mismatches. You can make changes to stacks even as programs are running, so it is easy to experiment with new ideas incrementally and iteratively. • Scratch blocks are grouped in 8 categories. To add blocks, select the appropriate category and drag the blocks you want to use to the script area. • Let’s take a quick look at the categories: • Motion • Looks • Sound • Pen • Control • Sensing • Operators • Variables • http://wiki.scratch.mit.edu/wiki/Blocks
You can share your Scratch projects on the Scratch web site, the same way you share videos on YouTube or photos on Flickr. • You can embed your Scratch project in other webpages, such as your MySpace or Facebook homepage. • Need to upload to the Scratch web site first and then select the Embed button. • You can get new ideas for Scratch projects by browsing through projects on the Scratch website. • If you like a project , characters, images or scripts in another project, you can downloadthe project and use parts of it in your own Scratch project.
3 1. Blocks Palette: Blocks for programming your sprites. 2. Scripts Area: Drag blocks from 1 and snap them together to write scripts. 3. Stage : This is where what you produce will be shown. 4. Sprite List: Shows thumbnails of all your sprites. 2 1 4
Alice • ALICE PROJECT • Developed at Carnegie Mellon • Multi-university initiative • Alice Team is a collaboration among faculty, staff and students
Innovative 3D programming environment • Easy to create an animation for telling a story, playing an interactive game, or a video to share on the web • Freely available (http://www.Alice.org) • Available for PC and Mac • Designed to be students’ first exposure to object-oriented programming • 3-D objects (e.g., people, animals, and vehicles) populate virtual world • Students create a program to animate the objects • Interactive interface • Students drag and drop objects to create a program • Instructions correspond to standard statements in a production oriented programming language, such as Java, C++, and C#
Methods and Functions • Alice has methodsand functions. • A method sends a message to an object asking it to perform some action. Methods do not return values. • A function sends a message to an object, typically asking the object to send back some information. In some cases, the function may also ask the object to perform some action. A function in does return a value.
Events • Events tell Alice when to do things • When the world starts, do.. (runs method) • Can add a different method by dragging a second method over and replacing first method (when box turns green) • Create a new event • Drop down menu of events • Select one
Resources • Scratch • http://scratch.mit.edu/ (can sign up for account here) • Scratch wiki: http://wiki.scratch.mit.edu/wiki/Main_Page • Online community for Scratch users: http://scratched.media.mit.edu/ • Scratch unit for 7th and 8th grade math: http://pwoessner.com/scratch-programming/ • Lesson plans: http://scratch.redware.com/
Resources • Alice • http://Alice.org • http://www.aliceprogramming.net/text/chapt2_Design.pdf • http://www.cs.duke.edu/csed/alice/aliceInSchools/ • http://www.dickbaldwin.com/tocalice.htm • http://nebomusic.net/alicedancelesson/alicelaraspa.html