[MUSIC] I'm Stephen Wong. >> I'm Joe Warren. >> I'm Scott Rixner. >> And I'm John Greiner. >> I'd like to welcome everyone to our class, An Introduction to Interactive Computing and Python. We've got a lot of fun activities planned for the next eight weeks. And to kind of get things rolling we've all worn our t-shirt for rock paper scissor lizard Spock. This is going to be your project at the end of the first week. So guys, let's just play a game of kind of a battle royale here and just we'll show them how it works. Okay ready? >> Rock, paper, scissors, lizard, Spock, shoot. >> [LAUGH] I'm scissors! >> Scissors! >> [CROSSTALK] [LAUGH] I tried. Anyway, 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 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 you a couple exciting things you're going to do. I'll see you in a second. Welcome from the future. It’s great to be here. In the time since that video was shot we've offered more than a dozen sessions of this class. During that time, the class has gone from eight weeks to nine weeks to now two parts, five weeks plus four weeks. One more thing, my hairs got a lot grayer. In this video, I want to talk a little bit about the current structure of the class website and share a few observations about the class that we've gathered over those dozen sessions. Then we'll finish up by going back to 2012 and taking a peek at the final project you’ll create at the end of this class, and also share a little motivational material to get you fired up. Here we are at the homepage for the class. And what I'd like to do is kind of start off by going over the assignment structure for the class, the higher level, and then we'll jump in and we'll get kind of the structure of week Zero, the first week of the class. If we pop over to the main assignment page, what we see is that the class is broken up into a weekly structure. Now one of the first things your going to notice here is that our weeks start at zero. This is a historical artifact of the way the class is built. We originally had an eight week class, numbered one through eight. We decided we needed to add in an extra week at the beginning, so we numbered it week zero. And so now, the first part of this class is numbered week zero, week one, week two, week three, week four. Now you may see occasionally Coursera tries to say it's week one through five. That’s just artifacts of the way Coursera's platform works. Just trust me, there's five weeks. Now, for each week you'll typically do either one or two quizzes and then after the first week, you'll also do a mini-project that kind of cements your programming skills. So for example, for week zero, you actually only have to do one quiz. You'll also have an optional mini-project that we'll talk about in a later video. In week one, you'll go through and you'll also do one quiz. Then you'll have your first kind of media mini project building a game called, rock, paper scissors lizard Spock. If you've seen the Big Bang Theory, you'll know what this is all about. And in the remaining three weeks, we'll learn more about pytha and more about interactive programming. And we'll start to build simple games. In week two, we'll build a game called guess the number. In week three, we'll build a digital stopwatch. And in the class, we'll finish up by building the classic arcade game Pong. Before we proceed, I want to say a little bit about the difficulty in the time requirements for this class. Now if you look at the assignment page here, you notice that the Assignment Stopwatch, The Game says it should take around 30 minutes to do this. This is not true. Coursera automatically places 30 minutes in there. We have no control over the number that appears there. Courser puts 30 minutes in there because their classes are now designed to typically take about a couple of hours a week to finish. This class takes substantially more time. We surveyed the students that have completed the previous versions and typically it takes between seven to ten hours to complete each week's worth of material. One of the mini projects, especially when you get right in the class, will take two to three hours. So, the good news is, the current version of the class has the property that all the deadlines are advisory. If you find the class is moving too fast, simply work at your own pace. You can still turn the assignments in for full credit whenever you want. If you don't finish by the end of the session, your material simply rolls over to the next session. Now, you might ask, well wait a second. This is a beginner class. Why is it so hard? This is a beginner class it doesn't mean it's easy. We found that if we ask you to do things that are difficult, that are harder, you'll learn quicker. Programming is a very hot field right now. Good programmers make six figure salaries. To learn the material to make that six-figure salary, you can't spend two hours a week for 8-10 weeks. You're going to have to spend a lot more time over a longer range to gather the skills to be the kind of programmer to earn that much money. This class and this specialization is dedicated to moving you forward towards a real career in computer science. So to do that, we're going to ask you to work harder. Stick with us. Okay, let's move on and talk about the material in the first week of class, week zero. So you're actually watching this introductory video right now. There's a couple more videos. There's one on CodeSkulptor. That’s the tool that we're going to use in this class to write your Python code. It works entirely in a web browser, so you don't have to install anything. And this is the first video lecture on a Python concept. It's how to build arithmetic expressions in Python. To finish off the first lesson of week zero, we have a class page here which corresponds to practise exercises for expressions. So let's pop in there real quick and we'll talk a little bit about this. So one of the classical issues that's raised by students in this class is how do I move from looking at videos into writing Python code. How can I solve quizzes? How can I implement the mini project? The way that we want you to do this in this class is to work these practice exercises. They're very small short questions. I'll provide you with some starter code in Python to get you going. We also provide you with solution code. And the way this should work is watch the videos and sit down and try a couple of practice exercises. If everything goes well, you can move forward to the quizzes without any difficulty. If you're having trouble, look at the solutions. Work more of the practice exercises. These exercises are designed to let you get your hands dirty and start working with the Python concepts we're going to learn in class in practice. Okay if we move on, there's always a second lesson as part of each week. And in this lesson we learn about variables, we also talk about how to actually save your code in code sculptor. All the code that you're going to write here you're going to share with your peers in mini projects. They're going to grade your mini projects. And the way we're going to share that is using Code Sculptor. Again we have a set of practice exercises on variables. And then we finally for week zero, we have one quiz. Note we'll have one quiz for week zero, one quiz for week one, and two quizzes per week after that. The third lesson in week zero is a lesson on basically always corresponds to a mini-project. The mini-project for week zero is optional. You don't have to do it. It's designed to kind of walk you the process of doing a mini-project, and lets you get experience at actually doing peer assessment without any pressure of having to do things for a grade. Okay, we've been looking at the content for the course. Let's go on and look at some of the other information we can access for the course via this navigation bar on the left hand side. We can see all the assignments for the class on one page, and we also have a link to the discussion forums. They're very helpful if you have questions. We have lots of course staff that are very eager to answer your questions. Also your peers are usually very helpful in that. I want to look at this in particular. These are a collection of resources that we built up over the last three and a half years that help answer questions that may arise as you're working on the material in the class. This first page is actually probably the most important. It's the honor code for the class. And let me just kind of give you the high level view of what the honor code says. Do your own work. Don't copy other people's work. You're going to build programs. These are the mini projects, and we want you to write your own code. And there's a reason that we want you to do this. If you copy, you're really robbing yourself of the chance to learn the material. The value of the specialization is not in the PDF file that you get when you finish it. The value is in the knowledge that you gain by doing the work. So, when you take the first cut of the mini project, please do your own work. Use the video and the description to help you explain and understand how the mini project works. Post questions in the forums if you're confused. After you turn it in, you're going to have a chance to peer assess. Please look at your peers' implementation of the mini-project very carefully. Help use that to learn more about how to do the mini-project correctly. Once you've finished, you're also welcome to post your mini-project inside a peer feedback thread. There you can share with everybody. They can look at it and give you more feedback on that. If you need to reattempt the mini-project, again, please don't copy somebody else's work. Do your own work. You can look at what other people have done, but write your own code. Do it in your own hand. That will enhance your learning. There's a few other links over here. There's a link for frequently asked questions. You're occasionally going to have questions here. Start here if you need an answer to one of your questions. Then if it's not here you can post it in the forums. There's a link for troubleshooting CodeSkulptor. CodeSkulptor's incredibly reliable, but every session we have a few students that have issues with it. If you're having an issue, start here in troubleshooting CodeSkulptor. Concepts and examples is a very detailed, week by week outline of the material for this class. Most importantly, there's links to all the example files used in videos, and many, many more. We also have a large collection of videos that are produced by students in the class. This is something that if you don't understand one of our concepts, you need more help, look in this particular link here and we'll have a video that will help you. And finally we have, basically a list of errors that you'll encounter when you're working with Python programs and example programs to kind of illustrate those errors. We found that to be very useful when students are learning how to debug. Well, I promised you a peek at you final project, and here it is. This is RiceRocks. It's basically a clone of 80's arcade game Asteroids. Now let me just show you how it works here. Well click to get started, and we use the arrow keys and we can fly our space ship around and we destroy asteroids. Every asteroid we destroy 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 we've designed the class to teach you in each week a little bit more of Python so that in those last two weeks you can build this project. And we're going to give you a fair bit of support in billing that project. We're going to provide you with custom art. We’re going to provide you with professionally produced sound. We're going to provide you with lot's of videos and quizzes and things to help you understand how to do it. But it's not impossible. 4,100 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 the kind of our last segment. I want to talk a little bit about the philosophy of the class. This will somewhat echo what I just said there. All right, 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 pi step. When the things that we do, sometimes if 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'll try our best. We need something from you, right. 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 and rock, paper, scissor, lizard, Spock some very tangible things that you can go through to try to keep making progress on the mini-project. But I'm going to 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 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 where we're going to do goofy stuff. Our goal 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 production that I got ganged up on and had suppressed. So take a look at it. >> You guys ready to play? >> Yep. >> Ready. >> Okay. >> Rock, paper, scissors, lizard, Spock, shoot. >> [LAUGH] All right, let's do it again. Do it again, guys. Ready? >> [CROSSTALK] Rock, paper, scissors, lizard, Spock, shoot. >> Let's see I covered that, I covered that, what did you do Scott? >> [INAUDIBLE] >> Paper just 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.