>> I'm Steven Wong. >> I'm Joe Warren. >> I'm Scott Rixler. >> And I'm John Griner. >> I'd like to welcome everyone to our class. An introduction to interactive computing in Python. we've got a lot of fun activities planned for the next eight weeks. And to get things rolling, we've all worn our T-shirts for rock, paper, scissor, lizard, Spock. This is going to be your project at the end of the fist week. So guys let's just play a game of kind of a battle royal here and just we'll show them how it works. Okay, ready? >> Okay. >> Rock, paper, scissors, lizard, spock, shoot. [LAUGH] What you think? >> Oh it's everybody. >> I'm, I'm scissors. >> You're scissors. >> Oh scissors[CROSSTALK] >> Listen. >> No. [LAUGH] >> I tried. >> Anyways we're having fun doing this class and I think you're going to have a lot of fun doing the class. I'll be back in a couple of seconds and we'll talk a little bit more about the details and what's going to go on in the class and maybe show a couple of exciting things you're going to do. I'll see you in a second. Well, welcome to another session the introduction to interactive programming in Python. We're really excited to have everyone here. I think this class is going to be a blast. the class is based on a class that I taught here at Rice for over a decade. in fall 2012, Scott, John, Steven and I went through and redesigned this classroom from the ground up and built a version where we can deliver it online. the, our objective in building that online version of the class was to make it both fun and simple. So the fun in this class is going to come from the fact you're building games like Pong, and Blackjack, and Asteroids. We think the class is going to be kind of simpler to do because we built some custom tools to help you build your python code for this class. Scott'll talk about this in the next video. It's called CodeSkulptor, and it's going to allow you to build, save, submit, and peer evaluate your code for your class in a very easy straightforward manner. My objective in this video, three things. First, one how to look at the structure of the class, the structure of the class webpage. I want to give you a peek at what you're going to build in the last couple of weeks of this class. And then finally I want to talk a little bit about our philosophy for this class, maybe fire you up a little bit. Okay, let's get to work. Okay, let's walk through kind of the structure of the class web page because I think this will give you kind of feel for the flow of how the class works. So here we are at the homepage for the class. the most important thing to note here is we have some announcements. You should of received an email for the start of class, but most of our communication with you will be through these class announcements. Read them, this is the way we're going to talk about important things that are going on in the class. here we have a welcome to class. If you scroll down we actually have a discussion of how the class works, and if you're curious for example when everything is due, read this bold bullet right here. over here we have upcoming deadlines. This is shot before class started so but this will start to be populated with things that you need to turn in. Some of the things will be optional, they won't count on your final grade. you don't have to do them. Things that aren't marked optional you need to do them. They're going to count as part of your final grade. Over here is probably where most information is. This is the nav bar. each of these has links to various things that actually take place in class. we're going to actually offer surveys at various points in the class, including a welcome survey. These surveys are part of a research study that we're using to try to understand how this class shapes attitudes towards computer science for the participants. It's optional, and you don't have to participate. It doesn't effect your grade. But if you participate, it will help us make this class better. here we have links to all the video lectures. the thing to note here is we've actually expanded the class from 8 to 9 weeks. The original version had video for weeks 1 to 8. based on class feedback we've added a week 0 to kind of introduce to this material kind of introductory material, a little more slowly give true novices a little more time to kind of acclimatize to what we're doing. So you'll see there's now week zero in there. And if you notice any kind of sequencing errors or issues of continuity in there just be aware that we've added this week zero after the fall 2012 session so be patient with us. It's hard to shoot lots of new video. We decided to focus on providing you with some new tools that will show instead when we offered this session. quizzes. Quizzes are part of things you're going to use to kind of assess how you're doing in the class. They're machine graded. For most weeks, there'll be two quizzes per week. There'll be a soft deadline on kind of Tuesday night, Thursday night. the hard laid line will always be at 05:00 GMT on, on Sunday morning. So it's going to kind of, for most of you be due sometimes late Saturday night or early Sunday morning. There's no penalty for turning it in up to the hard deadline. After the hard deadline, there's no late submission. The mini projects, I'll actually walk you through this in fairly great detail in the mini project for week zero, we want a shrubbery. so watch that video. That's optional so you don't have to do it, but if you're curious how to actually go through the process of creating, submitting, and evaluating it, take a chance and do that optional mini project. the discussion forums, it's the place where really lots of learning takes place in this class. when you get stuck, the discussion forum is the place that you'll go to actually interact with your peers and the community TA's and the instructors to figure out what's going on. here's a link to CodeSkulptor this is the tool that we're going to use for the class. You'll be using it a lot. we have other kind of auxiliary links here. concept examples is essentially an outline of the class material. And it also contains lots of examples. So let me just walk out here real quick. So for example go to week zero. Its kind of has a description of all the various concepts we're going to cover in week zero. Most importantly they're links here to co-scope their files. They give examples of all these. So if you're stuck and you need another example to understand the concept, you can come out here and look at this. new for this session, we've added in some practice exercises. And then these are designed to help students that have never programmed before, to kind of get more practice in building really simple Python programs. These are designed for self study, we give you a template with kind of, a statement of what you needed to do. And then you write a second, a second version that 's the solution. So what you should do is read the problem, take the template, do it, and when you're done, look at our solution and compare the two. We have about a dozen for each of these, each of these half weeks here. the last thing is I have, there's a tool called Pystep that we've built. It's designed to kind of help you understand evaluation for Python programs. they'll be a video on it in week one. So when you get there, watch the video go out and play around with it. It's kind of another way to help understand how basic Python works. that's why the main overview for what you're going to see here again the critical thing to do is to go back to the main page here and read these messages. Because this is really going to keep you up to date on what's happening in class. Okay, lets go on to take a peek at what you're going to build in the class. Well I promised you a peek at your final project and here it is. This is RiceRocks. It's basically a clone of a 80's arcade game Asteroids. Let me just show you how it works here. We'll click to get started, and we use the arrow keys, and we can fly our spaceship around, and we destroy asteroids. If an asteroid is destroyed, we get ten points. If I happen to crash into an asteroid, I lose a life. And the goal is to score as many points as possible in your three lives. Now, looking at this, it may seem kind of hard to imagine you could go from knowing nothing about programming, to building a game like this in nine weeks. The reality is we've designed the class to teach you in each week a little bit more of Python so that it doesn't, that in those last 2 weeks you can build this project. Now we're going to give you a fair bit of support in building that project, we're going to provide you with custom art, we're going to provide you with professional produced sound. we're going to provide you with lots of videos and quizzes and things to help you understand how to do it. but it's not impossible. 4100 people in fall 2012 managed to finish this project. my hope is for this session we can get 10,000 students to build this project, and I hope you're one of them. So with that said, let me go on to kind of our last segment, I went to talk a little bit about the philosophy of the class, because I'll echo what i just said there. Alright let me finish up with kind of a little bit about the philosophy that we have for this class. We're going to do our best to put on a great class. we're experimenting with new techniques and new methods to help you learn the material better. we may try, for example, some studies involving how to improve peer assessment. We've created Phystep. when the things that we do sometimes that they go wrong, we need your patience. We'll work really hard to fix them. if something specific to you goes wrong just remember there's going to be many tens of thousands of students in this class and it's going to be very hard for us to address individual concerns. But again we will try our best. We need something from you. There's going to be times when you're working on the mini-project where you're going to get stuck. You're going to be like I don't understand what's going on. I don't know why my code's not working. I'm going to talk about in rock-paper-scissors-lizard-spock some very tangible things that you can go through to try to keep making progress on the mini-project. But I could only tell you the most important attribute you need right now is tenacity. If you get frustrated and you get stuck don't quit. Take a break for a little while. Come back and work on the mini project some more. I think you'll find that as you kind of work your way into the class the excitement of actually building your mini projects and getting them working will kind of carry you through the frustration that you feel if you're getting stuck at some point in the process. I'm going to say one more thing about the video. there's times in this class when we're going to do goofy stuff. Our goal is to be a video, is to be funny. Sometimes we're lame, I admit it. But we're trying to avoid being boring. And so I'll end this with actually pointing you back to kind of another version of our introduction. That, I got ganged up on and suppressed. So take a look at it. you guys ready to play? Ready? >> Yep. >> Okay. >> Rock, paper, scissors, lizard, Spock, shoot. [LAUGH] >> Alright, let's do it again, do it again guys. >> Alright. >> Ready? Ready, rock, paper, lizard, scissors, spock, shoot. >> What did you do Scott? >> Paper >> Paper just did Spock yeah >> [LAUGH] Anyways we're having a lot of fun in this class and I think you're going to have a lot of fun too.