 Hi, I'm Sam Patterson and welcome to this session about programming in the primary grades. We're going to talk some about why we want to teach programming in the primary grades, and then we're going to get pretty quickly into the tools we use to teach programming grades K through 4. We're going to be looking specifically at various apps and web interfaces that use the Blockly script, which is coding broken down into a physical syntax. So I'm going to have my friend Waka talk to you just a little bit about why we want to teach programming to kids so young. I'm Waka Patui here to tell you that teachers in grades K through 4 are on the grad level of learning, a revolution in learning. When one to one program started, no one knew what it would mean to primary grades. There we go. But now we can see that it means these students can use programming as a mode of expression. Even students who can't yet read, can you believe that, hey, hey, hey, hey, hey, this elevator pitched things hard. They can use programming as a medium to express ideas and understanding. Mitch Resnick, developer of Scratch said, first you learn to code, then you learn through code. Teachers in grades K through 4 can use app or web-based coding tools to help their students develop and express understanding. Once teachers see coding as a medium of expression like writing that we develop over years, the possibilities for learning opens like a flower in the morning or an elevator door. And hey, hey, don't worry, no one expects K for teachers to be experts in coding. We expect you to be experts in kids. All we have to do as teachers is be willing to learn with our students and work with each other to develop the best ways to use code to get the curriculum. Welcome to we. Sam Patterson here. We're talking about programming in primary and we're going to look at two iPad applications today. So I'm hoping that you're learning along with me on an iPad. What I'm going to ask you to do if you haven't yet done so is download the Scratch Junior app. That's where we're starting. Have it loaded on your iPad. Learn along with me. Stop the video whenever you need to. Pause it right now and download the app. I'll wait. Okay. Hoping you downloaded the app. Here we go. When you start Scratch Junior for the second time, I think the first time it walks you through some tutorial stuff. So hopefully you just click through that paid some attention because it actually teaches you stuff. When I'm ready to start, I'm going to click the home button and I'm going to click plus because I want to add a new project. My goal right now is to familiarize you with the six menus of commands in Scratch. So in general terms, this is our main sprite, the cat. I believe his name is Scratch. This area he's navigating around is the stage. Right now we have no background set for the stage. Over here on the right, we can see that this is where our backgrounds are stored. This is where our sprites are stored. This shows us the blank stage. If I click on this, it gives me a grid, which can be very helpful. We click on the picture button. We can choose a background. I'm going to X out of that for right now. We can even add text. We can return the cat to where they were at the beginning and we can start by hitting the green flag or go. The main commands that we have, the yellow blocks are control blocks. So triggers when the program, this will create something happening, just pressing the green flag or clicking on the character will cause something to happen. Or when the character touches another character or a collision, that will cause something to happen. Where the character receives a message and this is an action where a character can send a message. The receive a message and send a message are great ways for triggering events also. So we're going to start off just by saying when the green flag is clicked. We can see that we can create some movement. So when the green flag is clicked, we're going to go over one and up one. And if I click there, we go over one and up one. I click the green flag again, it happens again. And you see it keeps returning to the beginning. When he does that. Now we can add some more motion to that if we want to. Got kind of a rotate in there. There's even a bounce. So these can be starting together to navigate the cat anywhere on this field. Obviously we can change the quantity. So instead of one, he might go 10. And if you're interested in making him navigate a specific path, you can turn on the grid system. And here we can see that my character is starting at 4 or 3, 4. And if I want him to move to 13, 4, then moving him forward 10 is going to be a great way to do that. Now we can see he can move forward. Now the next set of commands. I'm going to move these simply by dropping them back into the tray. They disappear. And if you want to move the commands, if you move them by the front when they all move, you can move them by the back. They will detach. So one of the things I can do in my purple menu, the purple menu is appearances. Is I can make the character say things which can be really useful. I can also make the character bigger. And conversely we can make the character smaller. Making the character bigger and smaller is an easy way to make them look like they are moving deeper into the picture or coming closer to you. You can also return the character to their original size. And one of the things that I find very useful when I'm designing a game or building a program is the ability to make a character disappear. So the character is still on the screen, but they are not currently visible and they don't become visible until you do something to make them visible. Going back to the control things, you could say that when the character receives a message, they're going to become visible. So at the beginning we make them invisible. And then let's add another character here. And let's make this character when you click her. She sends a message. Go back to our cat. And the cat receives the message. Nope. That's the same. And the cat receives the message. They're going to become visible. So if I start this program, click on the puff ball and or purple, rather, and the cat becomes visible. Once again. So those are some basic operational things showing you the appearance and disappearance. One of everybody's favorite things is sound. Don't think I have the sound turned on here. Well, you can hear she's making a little pop sound. If I grab the microphone, this dialogue opens up. I hit record. I'm able to record a custom sound. And then that custom sound, press the checkbox to accept it, is going to show up as this little number one here. And I can record several custom sounds in there. This I think has a great application for reading. So you could have students program sounds and have them happen when they collide with characters that are the words, those or letters that make those sounds rather. So even though there's only two commands in the world of sound, I think there's a lot that we can do there. These flow blocks, the orange ones, allow you to do loops, put in a timed weight, put in a full stop or to just speed up somebody's motion. And then the red block is just kind of an end or repeat the whole sequence. Those are the basic navigational commands that we have here. Now what we're going to do is I'm going to show you a couple of things that makes this an exciting learning tool. If you want to play around with the basic commands, stop the video now and we'll play around with the basics, some of the basic commands, and start the video back up when you're ready to learn the next thing. So the first thing I'm going to do here is I'm going to clean up my workspace some. I think I want to get rid of one or two of these. There we go. You hold down on a long enough and it'll wobble. Now let's take a look at what we can do with some of these backgrounds. So even with the blank background, if I click on the paintbrush, that'll take me into this edit mode. Now I can use this to create anything I want. In fact, my students love to just get on here and they can paint, they can draw. Vicky Sedgwick introduced me to the fact that using this in the character mode, I can actually create characters that are words. But this is the background mode. So one of the things I really like about Scratch Jr. is when I press that camera button, and then I press on the background, it opens. Using the camera, I can bring in work that I've got on the whiteboard on the desktop, you name it. So now I'm going to bring that in as the background. And if I load this background on the student's iPad, then I can say, okay, we're going to give you a character and that character is going to be letter A. Can you program your character to get to where it needs to get to to be successful? So now we can even take the cat out of here to make it less ambiguous. Now we can write a program, and if I throw my grid on here, let's see if I'm starting 8, 3, and I want to get to 11, 10. Let's see, we're going to start off and at start, we're going to move 8 over, and we're going to go 2 up, and we can try that out. And I am programming spelling. So there's a good example of kind of the basics of Scratch Jr. From this, I think you can see that by bringing in a background and creating a character that is a letter, there's a lot you could do inside of Scratch where you're asking students to program instead of filling out a worksheet. And this may just be at a substitution level, but the amount of logic involved, I think, is considerably more complex. And it's a good activity to alternate with your standard worksheets and writing practice worksheets. So I don't think this replaces anything. I think this becomes another tool in the toolbox as we're getting kids to explore literacy and doing so in a technology-rich environment. So this is one of the things that having a tablet allows us to do. So that's Scratch Jr. on the iPad. iOS 8 friendly, I believe. Yeah, this is iOS 8 right now. So check it out. Next, we're going to be looking at the app Hopscotch. So if you don't have Hopscotch downloaded yet, download that. And we're going to talk about how we can use the same block style interface to get into some ideas like geometry and math. So the second app that we're talking about, and in this programming and primary, what I'm really focusing on, there are other apps. What I'm really focusing on are apps that use block-based programming and get kids started thinking about advanced programming concepts. Scratch Jr. is my favorite for the non-readers. Lots of potential there. But once we start reading, I'm a big fan of Hopscotch. Now, I use Hopscotch with my second graders to get them into some pretty advanced geometry stuff. It's even a little bit over their heads. But what I'm really teaching them are loops and patterns and how programming works. And if I need to throw a little bit of, you know, division and that kind of stuff at them, I'm fine with that. And honestly, the tools can help. I do spend a class teaching them how to use Siri to ask for, you know, how things are divided. Now, when I open Hopscotch, I've been using mine already, but I go to Create and we're going to tell it that we want to start a blank project. Now, I'm just using the free Hopscotch version. I'm not using the classroom edition, and I haven't paid for anything. So you can see that there are characters down here that I don't yet have access to. I'm okay with that. So if I start with the monkey, everybody likes the monkey. I'm going to show you how to draw a very simple pattern with a monkey. Drawing a pattern requires you to do some geometry, use some basic programming, and it gets the kids started. There's a lot of great things you can do on Hopscotch. I'm only showing you the very beginning. So we're going to give him a new rule, and rules are essentially programs. And it's going to start with the trigger. Now I have three triggers I can choose from, and we're going to say when the project is started. We've got abilities, and abilities are already written for us, and I don't tend to focus on those. Those are like packages, and you can actually write your own abilities, which is fun. But I start off with looking at control flow, which is the blue ones, drawing, and movement. I'm going to start with control flow, because what I'm going to do is I'm going to draw a square. So I'm going to repeat this four times. I'm going to use move with trail from drawing, and I'm going to move a distance of 50. You can plug in any distance you want. You begin to get a sense of how big your area is. If you run out of space, it will create the wrong shape. In addition to moving with the trail, I'm going to need to rotate. Since I am drawing a square, I know that I want each of those corners to be 90 degrees. And if I want to check that, I can say four times 90 is 360, or 360 divided by four is 90. Now that's a very simple program. I've moved each of these blocks into place. I hit start, and we see that monkey draws a very small square. Let's move this up to 100, and we're going to click start again. There we've got basic functionality in hopscotch. Of course, if I want to make this eight times, let's make it six times. For simplicity, six times. I can change this to 60, and we can make this even a little bit bigger. We can say start, and we get a very nice hexagon. Now, hexagon all by itself is not terribly interesting, but once they get the pattern down like that, we can start adding some complexity. I can do something like under drawing. If I click on more, I can set line color to, and here's what's fun. I can pull in this random block. I can set line color random, 1 to 100. When I click start, each time it repeats, it will choose a slightly different line color. Now, if I want to create a more complex pattern, I can actually modify this control flow again. I can take this whole block and drop it inside of here. When I want to move these blocks, I'm grabbing them by these three lines right here. Students sometimes have trouble with that. I'm going to set the line color here, but I'm also going to add one more movement block. I'm going to add a rotate, and I'm going to rotate 25 degrees. I'm going to repeat this 30 times. Let's look at what we have here. We have one big repeat block, repeat 30 times. Inside of it, we've got a hexagon. Then we've got this which will rotate us a little bit and change the line color. Whereas this used to involve trying to hold something very steady and rotating only a little bit as you worked with the spirograph, now we can program the monkey to draw our spirograph patterns for us. Each hexagon is a new color. The kids really like working with patterns like this. As you show them a couple pieces, they can really develop their own iterations. What I'll do when I go into class, I'll show them a very simple pattern like this. Then I will let them work. As they work, I've got this code up on the board. Thanks for joining me to explore programming and primary. Share your progress with us as you learn.