So, how are you going to get started on this create task? We never had you just create code that you wanted to make. So, it's important to think about what you can make. You do have to do this in a block based language, that's not a requirement for the CS principles course, but it is a requirement for this course because that's what we're learning. You can do it in a Snap or Scratch, whichever one you enjoyed working in the most. I would say that in general, most projects tend to fall in one of two categories; like an animation type thing or a game. So, what kind of things could you do with animations? Well, you can actually make art and draw something. We did have you do that for fairly simple like sky and paint the picture, but you could do other things. You could use the pen to give direction then draw things out on real time. You could make nicer images of things with all sorts of whatever, a PLC or you import other things. Stories are good. Very common too amongst especially, Scratch things. You might want to have to choose your own adventure like asking the user to input things that can make a story quite interesting. Dance videos, very popular. Just think it causes you to have give things that series of steps and stuff like that. You can imagine certainly dances like movies, you break them up into scenes or portions or something like that. Or you might want to have something educational like maybe a little public service announcement commercial if you will. Maybe you want to teach somebody something facts about alligators. I don't know. Those are all things that I've seen in the past. The other category tends to be games. Just basically emphasizing more the interactive nature, although you can absolutely have interaction some of the animations. But Mazes, if you haven't pulled to maizes, it's fun. You might have races, you might have click on things, you might game where you're clicking on various things. Learning quizzes can also be done in game format, like maybe as you learn like interesting thing happens on the screen or you move forward and people have even implemented psych experiments where you are like looking at something and then you choose one or the other and stuff like that. But one of the things you are more than welcome to do, but I'm actually going to suggest that sometimes this isn't as helpful as you think it is. Sure, you can go on this scratch explore page and look at all the different games and things that are out there, but first off, one, if you're going to use any parked of one of those games, the attribution needs to be acquired. Two you do have to create an abstraction of that as of your own creation not created by somebody else. That's really important. The other thing I'll just say, when I've tried to go and find these, they are crazy complex and big and hard to wrap your head around and maybe difficult to get the algorithm with an algorithm structure that is necessary for the create task. But you could maybe use some of these basic inspiration and then maybe develop something a little bit simpler for yourself because there's no points on these four creativity. That would be really hard for us to judge fairly. So, it's not doing the create task. We want you to create something that is of interest to you, but maybe it'll actually almost be a prototype of something that you might make later. Some the simple guts part of it of how it actually works and you might prettify it later. So, the key thing I want to bring up is that we'll get into as we look at the. It's stated, but it's actually a far easier to understand that when you read the rubric which we'll be doing shortly, is that you have the have three algorithms. First off, you need to have an algorithm that has math or logic in it. Just or. Math random, it could be that you're incrementing things, it could be that you're changing the size of something, anything you know with plus sign. Well, it isn't even a plus sign because we have change of that variable by a certain value and that sort of thing or logic. So, logic can be boolean expression of comparison. It could be while, it could be an if statement, et cetera. So that big algorithm has to end it call big because it actually explicitly says that we must have two additional algorithms inside an algorithm. So, probably this algorithm is going to be your primary script or main program, if you're used to thinking in those terms, and then the requirements on these two inner algorithms is that one of them also has to have math or logic. Again, not and, or. Even just one instruction that uses math or logic is fine. Then the other one can be an algorithm that maybe just has a bunch of city things in it or something like that. It doesn't have to do that. So, that's the algorithm requirements, three, one, with two inside it. The other requirement is abstraction. Now, if you do it the way I recommended where these internal algorithms inside, you actually make them as their own blocks, that's not going to be hard. You can actually double count essentially one of those. You just talk about it differently in your write-up, which we'll get to later. But so, these are the key things that as you start thinking about what your project is to be which we want you to start doing. Next is really soon, this week. Then, you need to really keep these in mind because you're either going to have to shoehorn it in later or it's better if you think of this with as the basics and then go from that. Finally, again they should be read in the description, but we haven't talked about much yet. Then in addition to not only creating the program, you have to write about it, not just writing about the abstraction algorithms, but also about the development process, and particularly about problems that you came into debugging and how did you modify that. So, for now, we'll get into understanding exactly what they want not more later. But for now, if you're going to start working on your project, I want you to keep track of your development processes like what did you think of and how did you decide to break it down? First, I thought I wanted to make a game about this and what not. I'll give you a link next to the program development process and difficulty documentation, Google Doc. You should make your own copy and just put things down there because you are going to have to have at least three steps in the iterative process of developing this and at least two of them need to talk about the difficulty. You may write up a lot more, but you're probably not going to have on this table. You probably not going to want to do that on the final thing. You're probably just going to want to have three points that you're talking about making sure that two of them are difficulty. But just use this to keep track of things that are going on now so that once you learn more about what exactly you need to write, you'll have some memory of the things that you've already done. What's up next? So next, I'm actually going to walk you through a process where you could transform a game that you maybe are interested in, but doesn't meet the requirements of the three algorithms in the abstraction, and then add some things to it to transform it into a rubric. This might be something very similar to what you might do. You cant do my exact game, but you can use the same sorts of processes in order to get there. So, we'll be going back to that catch game that we had with the Apple on the basket, and finally, I will also provide a link to this. We're going to go in more depth into the scoring guidelines for the task, but if you're planning to do significant amount work on your project now, let me just tell you, it's a really good idea to go ahead and get these down, print them out, and start to get used to them. We're going to give you practice problems applying this to other people's code so that you can start getting used to it and nothing is better than grading somebody else to really understand these rules and be able to apply them, but if you didn't want to do a lot of program development early, look at this.