Computer+Programming

 media type="custom" key="11903176" align="center"

**Essential Question: How much of your daily life is spent interacting with computer programs?**

Computer programming is an ever growing career field that few students get to experience nor develop an interest in early enough in school. Programs like > allows any student to experience programming and gain understanding of how much our lives are impacted with computer programs.
 * Storytelling Alice,good online documentation for using this program can be found [|here].toc
 * Scratch, and
 * Kodu

In contrast to the large number of people who use computers and computer programs in their daily lives, relatively few learn to create their own computer programs. Storytelling Alice, which will be used in our lesson today, is a programming environment designed to motivate a broad spectrum of middle school students to learn to program computers through creating short 3D animated movies.

To enable and encourage users to create animated stories, Storytelling Alice includes:
 * 1) High-level animations that enable users to program social interactions between characters.
 * 2) A story-based tutorial that introduces users to programming through building a story.
 * 3) A gallery of 3D characters and scenery with custom animations designed to spark story ideas.

ISTE NETS 2007 covered in this lesson:
Students demonstrate creative thinking, construct knowledge, and develop innovative products and processes using technology. Students: Students use digital media and environments to communicate and work collaboratively, including at a distance, to support individual learning and contribute to the learning of others. Students: <span style="font-family: 'Times New Roman','serif'; font-size: 16px;">1. Describe and illustrate a content-related concept or process using a model, simulation, or concept-mapping software. (1,2) <span style="font-family: 'Times New Roman','serif'; font-size: 16px;">2. Create original animations or videos documenting school, community, or local events. (1,2,6)
 * <span style="font-family: 'Arial','sans-serif'; font-size: 13.3333px;">Course Standard: ****<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">1. **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;"> **Creativity and Innovation**
 * <span style="font-family: 'Times New Roman','serif'; font-size: 16px;">a. || <span style="font-family: 'Times New Roman','serif'; font-size: 16px;">apply existing knowledge to generate new ideas, products, or processes. ||
 * <span style="font-family: 'Times New Roman','serif'; font-size: 16px;">b. || <span style="font-family: 'Times New Roman','serif'; font-size: 16px;">create original works as a means of personal or group expression. ||
 * <span style="font-family: 'Times New Roman','serif'; font-size: 16px;">c. || <span style="font-family: 'Times New Roman','serif'; font-size: 16px;">use models and simulations to explore complex systems and issues. ||
 * <span style="font-family: 'Times New Roman','serif'; font-size: 16px;">2. **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;"> **Communication and Collaboration**
 * <span style="font-family: 'Times New Roman','serif'; font-size: 16px;">a. || <span style="font-family: 'Times New Roman','serif'; font-size: 16px;">interact, collaborate, and publish with peers, experts, or others employing a variety of digital environments and media. ||
 * <span style="font-family: 'Times New Roman','serif'; font-size: 16px;">b. || <span style="font-family: 'Times New Roman','serif'; font-size: 16px;">communicate information and ideas effectively to multiple audiences using a variety of media and formats. ||
 * <span style="font-family: 'Times New Roman','serif'; font-size: 16px;">d. || <span style="font-family: 'Times New Roman','serif'; font-size: 16px;">contribute to project teams to produce original works or solve problems. ||
 * <span style="font-family: 'Times New Roman','serif'; font-size: 16px;">6. **<span style="font-family: 'Times New Roman','serif'; font-size: 16px;"> **Technology Operations and Concepts** Students demonstrate a sound understanding of technology concepts, systems, and operations. Students:
 * <span style="font-family: 'Times New Roman','serif'; font-size: 16px;">a. || <span style="font-family: 'Times New Roman','serif'; font-size: 16px;">understand and use technology systems. ||
 * <span style="font-family: 'Times New Roman','serif'; font-size: 16px;">b. || <span style="font-family: 'Times New Roman','serif'; font-size: 16px;">select and use applications effectively and productively. ||
 * <span style="font-family: 'Times New Roman','serif'; font-size: 16px;">c. || <span style="font-family: 'Times New Roman','serif'; font-size: 16px;">troubleshoot systems and applications. ||
 * <span style="font-family: 'Times New Roman','serif'; font-size: 16px;">d. || <span style="font-family: 'Times New Roman','serif'; font-size: 16px;">transfer current knowledge to learning of new technologies. ||
 * <span style="font-family: 'Arial','sans-serif'; font-size: 13.3333px;">Course Competency: **
 * <span style="font-family: 'Arial','sans-serif'; font-size: 13.3333px;">Course Competency: **

<span style="font-family: 'Times New Roman','serif'; font-size: 16px;">Programmers work with timelines and usually in teams to develop new programs or update older programs to newer versions. You may consider the person on either side of you a part of your team for collaboration and problem solving during this experience. However, each of you will be producing a short computer program using Storytelling Alice. Your team members can assist you with troubleshooting your program as you begin compiling or running your segments. They can help with word choice and/or story line.

Timeline for Computer Programming Project:
Day 1- Items to Complete: > DAY 1 BENCHMARK
 * Get a basic understanding for what computer programming entails
 * Learn how to program using the tutorials provided
 * Tutorial One - Modeled by instructor with class support
 * Tutorial Two - Done independently with assistance from instructor as needed
 * Tutorial Three - Done independently with monitoring by instructor

Day 2 - Items to Complete:
 * Investigate available Environments and select the one for your project
 * Investigave available Characters and select the ones for your project
 * Use storyboarding to draft your dialogue for your computer program
 * Begin programming your characters to interact with each other while including dialogue from your story line.

Day 3 - Items to Complete:
 * Complete your computer program
 * Share your computer program through a class walk
 * Have 3 excellent questions ready to ask the visiting computer programmer? (What do you want to know more about now that you have had some experience with computer programming?) CMCSS Computer Programmers

Rubric for Student Written Computer Program
media type="custom" key="11337140"

Programmers must **THINK!**

Analytical Thinking
Programming is a very analytical process. You will need to constantly analyze (if I do this / then that will happen and next...). You have to evaluate constantly whether each step is in the correct order. Just like with the Engineering Design Process used in STEM programmers are always imagining, designing, creating, testing, and IMPROVING their product. By the end of this project you will also have to explain how you arrived at your particular programming code.

Practical Thinking
You must take what you see here today, experience here today, and learn here today then apply everything when you create your own computer program using Storytelling Alice.

Creativing Thinking
You must use your creative thinking ability as you choose environments, characters, and other objects as you begin to write and compile your program.

Research-based Thinking
You will be exploring new skills and trying your ideas as you create your computer program model and problem solve to make sure your program compiles correctly.

Storytelling Alice Helpful Hints
http://www.sciencebuddies.org/science-fair-projects/project_ideas/CompSci_Alice_GettingStarted.shtml http://www.cs.duke.edu/csed/alice09/tutorials.php?are#project
 * Areas in the Storytelling Alice Programming Environment || Available Actions in Each Area ||
 * Objects Area || Contains a list (also referred to as the //Object Tree//) of the character objects, scenery objects, and camera positions that are available in the scene that you can choose in the //Scenes// window. The tree starts with all of the objects in the world. You can click on an object from the world if you wish to get more details about that object. ||
 * Scenes Area || Shows the different scenes of the animation and your world. If your animation has several scenes, you can access all of the scenes from this area. By clicking on the green //Add Objects// button (not the "add new objects" button in the //Objects// area), you can add characters (also called objects) to your scene from an online gallery and manipulate their positions. ||
 * Events Area || Tells Storytelling Alice which part of your animation to execute (or run). It also allows events or actions to execute based upon user input, such as clicking the mouse on an object or character in your scene. ||
 * World's Details Area || Provides information about the various actions, or methods, that the characters and objects in the animation can perform. When you click on an object in the Object Tree, the actions or methods that object can perform are listed here. ||
 * Editor Area || Allows you to put together what you want to have happen in your animation or movie in Storytelling Alice. This is where you will add the instructions to create your animation. The name of the main tab in the editor area is "World.scene 1 method" and it is the main page where you will do your programming. ||

=Opening a Saved Alice= =Using Online Alice Gallery= =View Student Gallery=
 * Construct || Action ||
 * Do In Order || Executes a method call or a block of method calls in sequential order. This can be used to create complicated actions like blinking. ||
 * Do Together || Allows you to have Storytelling Alice perform two or more method calls at the same time. To learn more about the //Do Together// construct, refer back to tutorial #2 (with Trevor and the Ogre). ||
 * If/Else || Also known as a //conditional statement.// Using "If," if a certain condition is true (or false, depending on how you set up the construct), then Storytelling Alice will perform the method call(s) that you request. Using "Else," if the condition is false (or true, depending on how you set up the construct), then //different// method call(s) will be performed. You can choose to have no method call(s) listed in the //Else// part of the construct. ||
 * Loop || Allows you to have an object perform one or a list of method calls repeatedly for a specified number of times. In the example shown in Figure 7, the Big Bad Wolf object performs the //huffandpuffandBlow// method three times using the Loop construct. Refer to the first example, basketball, to learn more about loops. See step 20, below, to learn how to access the Storytelling Alice examples. ||
 * While || Keeps executing a method call or a block of method calls while a condition is true (or false depending on how the condition is written). ||
 * For All in Order || Goes sequentially through a list. Each item in the list, one after another, is asked to perform a method or a group of methods. ||
 * For All Together || Goes sequentially through a list. Each item in the list are asked to all together perform a method or a block of methods. ||
 * Wait || Stops execution of the program for a specified amount of time. ||
 * Print || Prints a line of text to the screen. ||
 * Comments || Allows the programmer to fully describe the program he or she has just finished writing. To 'comment' your program, simply drag the button with the two forward falling slashes to the location where you wish to add text. Commenting your program is a very good practice because it describes to the reader what each part of your program does. ||