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 answer to question 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 Can download Alice 2.4 from the web 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 this adequate? 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 about how to make sandwiches 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