[Script Info] Title: [Events] Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text Dialogue: 0,0:00:11.52,0:00:14.78,Default,,0000,0000,0000,,This presentation is delivered by the Stanford Center for Professional Dialogue: 0,0:00:14.78,0:00:21.78,Default,,0000,0000,0000,,Development. Dialogue: 0,0:00:22.61,0:00:25.03,Default,,0000,0000,0000,,So welcome to CS106A. Dialogue: 0,0:00:25.03,0:00:28.42,Default,,0000,0000,0000,,If you don't think you should be in CS106A, you think you should be somewhere Dialogue: 0,0:00:28.42,0:00:30.68,Default,,0000,0000,0000,,different, now is probably a good time Dialogue: 0,0:00:30.68,0:00:33.84,Default,,0000,0000,0000,,to go, not that I would discourage anyone from taking this class. I think we'll have a lovely Dialogue: 0,0:00:33.84,0:00:34.99,Default,,0000,0000,0000,,time in here. Dialogue: 0,0:00:34.99,0:00:39.76,Default,,0000,0000,0000,,But this class is CS106A or E70A, so if you're, Dialogue: 0,0:00:39.76,0:00:43.06,Default,,0000,0000,0000,,like, "Wait. I thought I was in E70A," you're fine. They're the same class; it's the Dialogue: 0,0:00:43.06,0:00:45.28,Default,,0000,0000,0000,,same thing. No worries, Dialogue: 0,0:00:45.28,0:00:48.69,Default,,0000,0000,0000,,okay? There's four handouts. They're in the back. If you haven't already gotten the handouts because you came in and Dialogue: 0,0:00:48.69,0:00:51.67,Default,,0000,0000,0000,,you sat down, don't worry. You can pick them up on the way out. They're Dialogue: 0,0:00:51.67,0:00:54.30,Default,,0000,0000,0000,,the same handouts. They'll still be there. Dialogue: 0,0:00:54.30,0:00:55.94,Default,,0000,0000,0000,,So Dialogue: 0,0:00:55.94,0:00:59.52,Default,,0000,0000,0000,,just a quick introduction. That's what the first four handouts actually give you. Dialogue: 0,0:00:59.52,0:01:02.68,Default,,0000,0000,0000,,They give you a little bit of an introduction to the class, what we're gonna cover, some Dialogue: 0,0:01:02.68,0:01:05.63,Default,,0000,0000,0000,,logistics for the class and some other stuff. I'm gonna go over all Dialogue: 0,0:01:05.63,0:01:10.38,Default,,0000,0000,0000,,that today so we can sort of get a good idea for where we're at, okay? So just a quick show Dialogue: 0,0:01:10.38,0:01:13.92,Default,,0000,0000,0000,,of hands before we get into a bunch of things in the class. Dialogue: 0,0:01:13.92,0:01:17.82,Default,,0000,0000,0000,,This is kind of an intro-programming course; well, it is. I shouldn't say it's kind of an Dialogue: 0,0:01:17.82,0:01:19.98,Default,,0000,0000,0000,,intro-programming course. It is an intro-programming course. And Dialogue: 0,0:01:19.98,0:01:23.74,Default,,0000,0000,0000,,it's always good to get an idea as to how much familiarity you may have Dialogue: 0,0:01:23.74,0:01:25.06,Default,,0000,0000,0000,,beforehand, okay? Dialogue: 0,0:01:25.06,0:01:27.24,Default,,0000,0000,0000,,So just quick show of hands. Dialogue: 0,0:01:27.24,0:01:31.33,Default,,0000,0000,0000,,How many people can recognize a computer that's on? Dialogue: 0,0:01:31.33,0:01:35.83,Default,,0000,0000,0000,,Good, good. That's the prerequisite for this class. So if you're worried about Dialogue: 0,0:01:35.83,0:01:38.45,Default,,0000,0000,0000,,how much previous experience you've had Dialogue: 0,0:01:38.45,0:01:42.42,Default,,0000,0000,0000,,or your friend who, like, worked their way through high school by programming for Google or Dialogue: 0,0:01:42.42,0:01:43.16,Default,,0000,0000,0000,,whatever, Dialogue: 0,0:01:43.16,0:01:46.46,Default,,0000,0000,0000,,don't worry about it because all you need to know in here is basically Dialogue: 0,0:01:46.46,0:01:50.05,Default,,0000,0000,0000,,either how to turn a computer on or to recognize a computer that's on if you Dialogue: 0,0:01:50.05,0:01:53.09,Default,,0000,0000,0000,,were to walk up to it and it were already to be on, all right? Dialogue: 0,0:01:53.09,0:01:56.73,Default,,0000,0000,0000,,So but a little bit more seriously, how many people have actually used a computer Dialogue: 0,0:01:56.73,0:01:59.05,Default,,0000,0000,0000,,for anything? Dialogue: 0,0:01:59.05,0:02:02.42,Default,,0000,0000,0000,,All right. I would expect most of you. So now, we begin to bump it up Dialogue: 0,0:02:02.42,0:02:05.41,Default,,0000,0000,0000,,a notch. How many people have used it for word processing? Dialogue: 0,0:02:05.41,0:02:09.57,Default,,0000,0000,0000,,Okay. Most folks. How many people have done web browsing? Dialogue: 0,0:02:09.57,0:02:13.32,Default,,0000,0000,0000,,Yeah, I won't ask you what you look at, all right? It's just I don't wanna know. Dialogue: 0,0:02:13.32,0:02:17.20,Default,,0000,0000,0000,,How many people have actually created a web page? Okay. Dialogue: 0,0:02:17.20,0:02:22.63,Default,,0000,0000,0000,,Fair number. How many people have done any kind of programming before? Dialogue: 0,0:02:22.63,0:02:23.71,Default,,0000,0000,0000,,Fair number. Dialogue: 0,0:02:23.71,0:02:28.62,Default,,0000,0000,0000,,All right. How about how many folks have done actually programmed in Java before? Dialogue: 0,0:02:28.62,0:02:34.19,Default,,0000,0000,0000,,All right. A few folks. How about another language, C, C++, Dialogue: 0,0:02:34.19,0:02:35.05,Default,,0000,0000,0000,,BASIC, Dialogue: 0,0:02:35.05,0:02:37.68,Default,,0000,0000,0000,,anyone program in BASIC? Yeah, Dialogue: 0,0:02:37.68,0:02:41.16,Default,,0000,0000,0000,,oh, I love - that was the first language I learned, and it was kind of Dialogue: 0,0:02:41.16,0:02:44.90,Default,,0000,0000,0000,,like the warm and fuzzy, and I felt good. There was actually people who argued that if you learn Dialogue: 0,0:02:44.90,0:02:48.49,Default,,0000,0000,0000,,BASIC as your first language, you're brain damaged, then you're just beyond help. But if Dialogue: 0,0:02:48.49,0:02:49.15,Default,,0000,0000,0000,,that's the case, we're all Dialogue: 0,0:02:49.15,0:02:52.12,Default,,0000,0000,0000,,in the boat together because I'm probably brain damaged as well. The truth is I Dialogue: 0,0:02:52.12,0:02:54.62,Default,,0000,0000,0000,,probably am, but that's a whole different story. Dialogue: 0,0:02:54.62,0:02:57.93,Default,,0000,0000,0000,,All right. So one thing you should know kind of up front is actually this course Dialogue: 0,0:02:57.93,0:03:01.49,Default,,0000,0000,0000,,is gonna be provided eventually somewhere down the line as part of Dialogue: 0,0:03:01.49,0:03:03.79,Default,,0000,0000,0000,,Stanford School of Engineering Free Course Initiative, Dialogue: 0,0:03:03.79,0:03:07.12,Default,,0000,0000,0000,,which means not only are we recording this course to broadcast to a bunch Dialogue: 0,0:03:07.12,0:03:09.99,Default,,0000,0000,0000,,of companies and industry who are watching this course, but we're eventually Dialogue: 0,0:03:09.99,0:03:12.10,Default,,0000,0000,0000,,gonna provide it free to the world. Dialogue: 0,0:03:12.10,0:03:13.98,Default,,0000,0000,0000,,So how does that impact your life? Dialogue: 0,0:03:13.98,0:03:16.89,Default,,0000,0000,0000,,And on the average day, it doesn't at all. Dialogue: 0,0:03:16.89,0:03:19.75,Default,,0000,0000,0000,,The only way it does impact your life is just so you should know, the lawyers told me to Dialogue: 0,0:03:19.75,0:03:20.84,Default,,0000,0000,0000,,tell you that your Dialogue: 0,0:03:20.84,0:03:24.25,Default,,0000,0000,0000,,voice, should you ask a question, may actually be recorded as part of the Dialogue: 0,0:03:24.25,0:03:25.31,Default,,0000,0000,0000,,video. Dialogue: 0,0:03:25.31,0:03:29.08,Default,,0000,0000,0000,,As a result, your voice may end up going out to thousands of people or millions Dialogue: 0,0:03:29.08,0:03:30.55,Default,,0000,0000,0000,,of people in the world. Dialogue: 0,0:03:30.55,0:03:33.02,Default,,0000,0000,0000,,If you have an issue with that, come talk to me. Dialogue: 0,0:03:33.02,0:03:37.00,Default,,0000,0000,0000,,If you don't, everything is just fine, all right? Don't worry. We're not gonna put your picture up Dialogue: 0,0:03:37.00,0:03:39.75,Default,,0000,0000,0000,,or anything like that. You might wanna be on the video, like, "Hey, Dialogue: 0,0:03:39.75,0:03:40.61,Default,,0000,0000,0000,,ma, I'm on Dialogue: 0,0:03:40.61,0:03:43.89,Default,,0000,0000,0000,,TV." We decided that we're just gonna not show anyone actually on the video, Dialogue: 0,0:03:43.89,0:03:46.13,Default,,0000,0000,0000,,but your voice may actually get recorded, okay? Dialogue: 0,0:03:46.13,0:03:49.83,Default,,0000,0000,0000,,Now, along those lines, you may also notice there are some microphones in the room. Dialogue: 0,0:03:49.83,0:03:52.71,Default,,0000,0000,0000,,So when you wanna ask a question, please make sure to use the microphone Dialogue: 0,0:03:52.71,0:03:56.21,Default,,0000,0000,0000,,because that's not only good for people in here to be able to hear your question, Dialogue: 0,0:03:56.21,0:03:59.58,Default,,0000,0000,0000,,it's also good for all the folks that this is getting broadcast to because not Dialogue: 0,0:03:59.58,0:04:02.29,Default,,0000,0000,0000,,only are we gonna broadcast to the world, but there's actually some folks who are sort Dialogue: 0,0:04:02.29,0:04:05.58,Default,,0000,0000,0000,,of watching this live now in various companies in Silicon Valley. Dialogue: 0,0:04:05.58,0:04:08.39,Default,,0000,0000,0000,,So it's real important that you actually use the microphone, so just remember that. And Dialogue: 0,0:04:08.39,0:04:11.13,Default,,0000,0000,0000,,every once in a while, I might get on your case and be, like, "Please use the microphone." Dialogue: 0,0:04:11.13,0:04:14.60,Default,,0000,0000,0000,,I'm not trying to be argumentative or anything. I just wanna make sure we Dialogue: 0,0:04:14.60,0:04:16.49,Default,,0000,0000,0000,,pick up all the audio, all Dialogue: 0,0:04:16.49,0:04:19.56,Default,,0000,0000,0000,,right? So with that said, a little bit of an introduction. That's kind of a way of background. Dialogue: 0,0:04:19.56,0:04:22.55,Default,,0000,0000,0000,,I didn't give you any sort of introduction. So just to introduce myself, my name's Dialogue: 0,0:04:22.55,0:04:25.38,Default,,0000,0000,0000,,Mehran Sahami. I'm the professor for the class. Dialogue: 0,0:04:25.38,0:04:28.23,Default,,0000,0000,0000,,Don't call my Professor Sahami, way too formal. Dialogue: 0,0:04:28.23,0:04:31.90,Default,,0000,0000,0000,,Don't call me Mr. Sahami. That, I think of my dad. Dialogue: 0,0:04:31.90,0:04:35.10,Default,,0000,0000,0000,,And don't call me Mrs. Sahami, or we're gonna have issues, all right? Dialogue: 0,0:04:35.10,0:04:36.22,Default,,0000,0000,0000,,So just call me Dialogue: 0,0:04:36.22,0:04:40.52,Default,,0000,0000,0000,,Mehran. We'll get along. It's just fine, all right? It's to keep things a little bit more Dialogue: 0,0:04:40.52,0:04:43.49,Default,,0000,0000,0000,,informal, but that way it's a little bit easier to discuss stuff as you go along. Dialogue: 0,0:04:43.49,0:04:46.95,Default,,0000,0000,0000,,There is also a head TA for the class, Ben Newman, who's standing up there. Get to know Dialogue: 0,0:04:46.95,0:04:47.98,Default,,0000,0000,0000,,Ben. Dialogue: 0,0:04:47.98,0:04:51.70,Default,,0000,0000,0000,,He has all the real power in this class. I'm just kind of the monkey that gets up here and Dialogue: 0,0:04:51.70,0:04:54.16,Default,,0000,0000,0000,,gives the lectures. But Ben really is the one who's got all the Dialogue: 0,0:04:54.16,0:04:55.19,Default,,0000,0000,0000,,power. Dialogue: 0,0:04:55.19,0:04:57.83,Default,,0000,0000,0000,,Along with the head TA for the class, we have a large section leading staff. So Dialogue: 0,0:04:57.83,0:05:03.52,Default,,0000,0000,0000,,the section leaders here, could you stand up if you're here? They're kind Dialogue: 0,0:05:03.52,0:05:06.41,Default,,0000,0000,0000,,of all over the place, some over here, some over there, and some over there. As Dialogue: 0,0:05:06.41,0:05:09.89,Default,,0000,0000,0000,,you can see, there's a pretty large number of folks. And this isn't even all of them. Dialogue: 0,0:05:09.89,0:05:12.76,Default,,0000,0000,0000,,We sort of have more - we just can't stuff them all into the room - Dialogue: 0,0:05:12.76,0:05:16.80,Default,,0000,0000,0000,,who are section leaders for the class, and these folks are all here to make sure Dialogue: 0,0:05:16.80,0:05:20.19,Default,,0000,0000,0000,,that everyone in this class has as good an experience as possible when Dialogue: 0,0:05:20.19,0:05:22.89,Default,,0000,0000,0000,,we're sort of going through the class. And the best way to reach all of us is Dialogue: 0,0:05:22.89,0:05:26.30,Default,,0000,0000,0000,,email. So on Handout No. 1, you get my email and Ben's email. Dialogue: 0,0:05:26.30,0:05:30.09,Default,,0000,0000,0000,,We'll tell you how to sign up for section. That's how you'll meet your section leader and get your section Dialogue: 0,0:05:30.09,0:05:33.81,Default,,0000,0000,0000,,leader's email. That will all be coming soon. But email really is kind of a happy form of Dialogue: 0,0:05:33.81,0:05:35.25,Default,,0000,0000,0000,,communication to Dialogue: 0,0:05:35.25,0:05:37.06,Default,,0000,0000,0000,,get a hold of us, okay? Dialogue: 0,0:05:37.06,0:05:40.46,Default,,0000,0000,0000,,So with that said, I wanna tell you a little bit about this class and kind of Dialogue: 0,0:05:40.46,0:05:43.48,Default,,0000,0000,0000,,what we're gonna do in here and what you should expect and make sure that Dialogue: 0,0:05:43.48,0:05:43.93,Default,,0000,0000,0000,, Dialogue: 0,0:05:43.93,0:05:47.52,Default,,0000,0000,0000,,you don't feel scared off by this class, okay? Because it really is meant to sort of be an Dialogue: 0,0:05:47.52,0:05:48.75,Default,,0000,0000,0000,,interesting time. Dialogue: 0,0:05:48.75,0:05:52.58,Default,,0000,0000,0000,,But one question that comes up is why is this class called Programming Dialogue: 0,0:05:52.58,0:05:53.22,Default,,0000,0000,0000,,Methodology, Dialogue: 0,0:05:53.22,0:05:56.26,Default,,0000,0000,0000,,right? Why don't we just call this class, like, Dialogue: 0,0:05:56.26,0:05:57.68,Default,,0000,0000,0000,,Programming with Java? Dialogue: 0,0:05:57.68,0:06:00.77,Default,,0000,0000,0000,,And the real reason for that is that programming methodology is about good Dialogue: 0,0:06:00.77,0:06:03.76,Default,,0000,0000,0000,,software engineering principles. It's about something that's much larger than Dialogue: 0,0:06:03.76,0:06:07.14,Default,,0000,0000,0000,,just programming. So some people, like, they'll go and get a book somewhere and they'll Dialogue: 0,0:06:07.14,0:06:09.86,Default,,0000,0000,0000,,think they learned how to program by just reading the book. And they're, Dialogue: 0,0:06:09.86,0:06:12.69,Default,,0000,0000,0000,,like, "Oh, I know how to program. Isn't that great?" And it's, like, Dialogue: 0,0:06:12.69,0:06:15.73,Default,,0000,0000,0000,,yeah, you might know the mechanics of the language, but the mechanics of the Dialogue: 0,0:06:15.73,0:06:18.83,Default,,0000,0000,0000,,language are nothing compared to understanding the software engineering Dialogue: 0,0:06:18.83,0:06:19.66,Default,,0000,0000,0000,,principles Dialogue: 0,0:06:19.66,0:06:23.06,Default,,0000,0000,0000,,that go into actually developing a software system. And that's what you're gonna Dialogue: 0,0:06:23.06,0:06:26.19,Default,,0000,0000,0000,,learn about in this class. You're gonna learn a lot of those principles. But in order Dialogue: 0,0:06:26.19,0:06:27.01,Default,,0000,0000,0000,,to be able to use Dialogue: 0,0:06:27.01,0:06:30.62,Default,,0000,0000,0000,,those principles and apply them, you also need to have the language to program in, Dialogue: 0,0:06:30.62,0:06:33.85,Default,,0000,0000,0000,,and that language that we're gonna use in this class is Java. So the way I like to Dialogue: 0,0:06:33.85,0:06:36.93,Default,,0000,0000,0000,,think about it and the way I tell a lot of people is writing a good program or Dialogue: 0,0:06:36.93,0:06:40.31,Default,,0000,0000,0000,,learning how to program is like learning to be a good Dialogue: 0,0:06:40.31,0:06:41.65,Default,,0000,0000,0000,,essay writer. And you're, like, "Oh, but part Dialogue: 0,0:06:41.65,0:06:45.52,Default,,0000,0000,0000,,of the reason I'm taking this class, Mehran, is that I don't like writing essays." That's fine. Dialogue: 0,0:06:45.52,0:06:49.03,Default,,0000,0000,0000,,It's okay. Trust me. I didn't like writing essays either. But Dialogue: 0,0:06:49.03,0:06:52.39,Default,,0000,0000,0000,,the whole point is that when you write an essay, it's not a formulated kind of Dialogue: 0,0:06:52.39,0:06:55.54,Default,,0000,0000,0000,,thing. You're, like, "Well, what about five-paragraph essays?" Yeah, just block that from Dialogue: 0,0:06:55.54,0:06:59.82,Default,,0000,0000,0000,,your mind. That was a bad time, right? That was just, like, '70s education at work. Dialogue: 0,0:06:59.82,0:07:02.97,Default,,0000,0000,0000,,It's not a formulated kind of thing. There's an art to writing an essay, Dialogue: 0,0:07:02.97,0:07:05.96,Default,,0000,0000,0000,,right? In order to write an essay, you need to know a language. You need to know English or German or Dialogue: 0,0:07:05.96,0:07:08.08,Default,,0000,0000,0000,,Hindi or whatever language you wanna use, Dialogue: 0,0:07:08.08,0:07:10.66,Default,,0000,0000,0000,,but then you use that language to write an essay. Dialogue: 0,0:07:10.66,0:07:13.71,Default,,0000,0000,0000,,Just knowing the language doesn't make you a good essay writer though. Being Dialogue: 0,0:07:13.71,0:07:16.50,Default,,0000,0000,0000,,a good essay writer makes you a good essay writer. Dialogue: 0,0:07:16.50,0:07:19.71,Default,,0000,0000,0000,,So that's the same difference in programming and software engineering. Knowing the Dialogue: 0,0:07:19.71,0:07:23.23,Default,,0000,0000,0000,,language, in order to be a good programmer, like a good essayist, Dialogue: 0,0:07:23.23,0:07:26.83,Default,,0000,0000,0000,,you need to know a language to write your programs in, whether that be Java or C or Dialogue: 0,0:07:26.83,0:07:29.61,Default,,0000,0000,0000,,C++ or whatever. Here we're gonna use Java. Dialogue: 0,0:07:29.61,0:07:33.23,Default,,0000,0000,0000,,But just knowing the language doesn't make you a good software engineer and Dialogue: 0,0:07:33.23,0:07:36.48,Default,,0000,0000,0000,,doesn't make you understand what the principles are of writing good software, Dialogue: 0,0:07:36.48,0:07:39.56,Default,,0000,0000,0000,,which is what you're also gonna get in this class in addition to the language, and that's kind of Dialogue: 0,0:07:39.56,0:07:41.72,Default,,0000,0000,0000,,a key thing to stress. Dialogue: 0,0:07:41.72,0:07:44.76,Default,,0000,0000,0000,,So if you're sort of worried, if you were kind of looking around and you saw a bunch of people raising Dialogue: 0,0:07:44.76,0:07:46.16,Default,,0000,0000,0000,,their hands when I asked, "Do Dialogue: 0,0:07:46.16,0:07:49.08,Default,,0000,0000,0000,,you have any previous programming experience?" and some folks raised their Dialogue: 0,0:07:49.08,0:07:53.08,Default,,0000,0000,0000,,hands, and you got a little worried and you're like, "Oh, am I gonna be in some sense at Dialogue: 0,0:07:53.08,0:07:56.66,Default,,0000,0000,0000,,a disadvantage because I haven't done any programming before?" The answer, plain and Dialogue: 0,0:07:56.66,0:07:58.41,Default,,0000,0000,0000,,simple, is no, okay? You're Dialogue: 0,0:07:58.41,0:08:00.82,Default,,0000,0000,0000,,gonna learn everything you need to learn from the first principle because as a Dialogue: 0,0:08:00.82,0:08:01.90,Default,,0000,0000,0000,,matter of fact, Dialogue: 0,0:08:01.90,0:08:05.58,Default,,0000,0000,0000,,in some cases you might be in slightly better shape. That's not necessarily to say Dialogue: 0,0:08:05.58,0:08:07.68,Default,,0000,0000,0000,,that that's the way it will be. But Dialogue: 0,0:08:07.68,0:08:11.23,Default,,0000,0000,0000,,how many people are Star Wars fans? Just wondering. Anyone? I'm Dialogue: 0,0:08:11.23,0:08:14.31,Default,,0000,0000,0000,,talking about the old-school, original, like, three movies. Those were so good, and Dialogue: 0,0:08:14.31,0:08:17.95,Default,,0000,0000,0000,,we're not - no George R. Binks here, all right? Dialogue: 0,0:08:17.95,0:08:22.09,Default,,0000,0000,0000,,So if you remember - and sort of I'm a big Star Wars fan, and that's just a whole Dialogue: 0,0:08:22.09,0:08:22.92,Default,,0000,0000,0000,,separate point. Dialogue: 0,0:08:22.92,0:08:26.46,Default,,0000,0000,0000,,But in the second movie, Yoda actually said something which I thought was quite Dialogue: 0,0:08:26.46,0:08:27.98,Default,,0000,0000,0000,,profound, which is he says Dialogue: 0,0:08:27.98,0:08:31.03,Default,,0000,0000,0000,,sometimes you have to unlearn what you have learned. Dialogue: 0,0:08:31.03,0:08:34.45,Default,,0000,0000,0000,,And one of the things we actually find is that some people who are self-taught programmers, Dialogue: 0,0:08:34.45,0:08:36.91,Default,,0000,0000,0000,,some of them are just fine, and some of them are very good. Dialogue: 0,0:08:36.91,0:08:39.83,Default,,0000,0000,0000,,But some of them have picked up some really bad habits along the way, and it's Dialogue: 0,0:08:39.83,0:08:41.46,Default,,0000,0000,0000,,like being a bad essay writer. Dialogue: 0,0:08:41.46,0:08:45.07,Default,,0000,0000,0000,,And to go from being a bad essay writer to a good essay writer, in some cases, can Dialogue: 0,0:08:45.07,0:08:46.28,Default,,0000,0000,0000,,actually be harder Dialogue: 0,0:08:46.28,0:08:49.35,Default,,0000,0000,0000,,than from not being an essay writer to being a good essay writer because you Dialogue: 0,0:08:49.35,0:08:51.34,Default,,0000,0000,0000,,have to unlearn the bad habits. Dialogue: 0,0:08:51.34,0:08:54.45,Default,,0000,0000,0000,,So if you're worried about, "Oh, I've had no previous experience," Dialogue: 0,0:08:54.45,0:08:57.46,Default,,0000,0000,0000,,don't worry. You're okay, blank slate, you're just fine. And now if you're thinking, Dialogue: 0,0:08:57.46,0:09:00.94,Default,,0000,0000,0000,,"Oh, I have some previous experience. Do I have bad habits?" Don't worry. You'll be Dialogue: 0,0:09:00.94,0:09:04.88,Default,,0000,0000,0000,,fine, too, okay? So it's all gonna work out. Dialogue: 0,0:09:04.88,0:09:07.72,Default,,0000,0000,0000,,So the next question that kind of comes up - hopefully that helps put some of your fears Dialogue: 0,0:09:07.72,0:09:08.30,Default,,0000,0000,0000,,aside. Dialogue: 0,0:09:08.30,0:09:12.12,Default,,0000,0000,0000,,Another one of the things is that we really strive to make everyone successful in this Dialogue: 0,0:09:12.12,0:09:13.67,Default,,0000,0000,0000,,class, okay? At some other schools, Dialogue: 0,0:09:13.67,0:09:16.70,Default,,0000,0000,0000,,people wanna do computer science or they wanna do an Dialogue: 0,0:09:16.70,0:09:19.44,Default,,0000,0000,0000,,engineering major or whatever. And you come into the first day of class, and they say, Dialogue: 0,0:09:19.44,0:09:23.09,Default,,0000,0000,0000,,"Oh, only one third of you are actually gonna make it through this program. And Dialogue: 0,0:09:23.09,0:09:25.80,Default,,0000,0000,0000,,look to the person to your left and look to the person to your right, and only one Dialogue: 0,0:09:25.80,0:09:28.37,Default,,0000,0000,0000,,of you will make it through." And you're, like, "Oh, Dialogue: 0,0:09:28.37,0:09:29.95,Default,,0000,0000,0000,,man, that's real nice." Dialogue: 0,0:09:29.95,0:09:33.44,Default,,0000,0000,0000,,It's not like that here. As a matter of fact, we want all of you to be extremely Dialogue: 0,0:09:33.44,0:09:37.25,Default,,0000,0000,0000,,successful in this class, which is why we have a huge course staff, which is why over years Dialogue: 0,0:09:37.25,0:09:40.38,Default,,0000,0000,0000,,and years we've refined how we do a lot of the teaching in this class Dialogue: 0,0:09:40.38,0:09:43.73,Default,,0000,0000,0000,,to make sure you have the best possible experience and to make sure that everyone Dialogue: 0,0:09:43.73,0:09:44.99,Default,,0000,0000,0000,,gets through. Dialogue: 0,0:09:44.99,0:09:48.78,Default,,0000,0000,0000,,And the important thing about that is that you're not competing against anyone Dialogue: 0,0:09:48.78,0:09:51.34,Default,,0000,0000,0000,,except yourself in this class. It's not like we're gonna have a curve and Dialogue: 0,0:09:51.34,0:09:54.35,Default,,0000,0000,0000,,we're gonna say, "Oh, we have a certain number of "F"s and a certain number of Dialogue: 0,0:09:54.35,0:09:56.13,Default,,0000,0000,0000,,"D"s and a certain number of "C"s." Dialogue: 0,0:09:56.13,0:09:59.12,Default,,0000,0000,0000,,All we really have going into it is an expectation that when you get out of Dialogue: 0,0:09:59.12,0:10:01.50,Default,,0000,0000,0000,,here, there's a set of stuff we want you to know. Dialogue: 0,0:10:01.50,0:10:03.22,Default,,0000,0000,0000,,And if you know that stuff well, Dialogue: 0,0:10:03.22,0:10:04.17,Default,,0000,0000,0000,,you get an "A." Dialogue: 0,0:10:04.17,0:10:06.68,Default,,0000,0000,0000,,And if everyone knows that stuff well, Dialogue: 0,0:10:06.68,0:10:07.80,Default,,0000,0000,0000,,everyone gets an "A." Dialogue: 0,0:10:07.80,0:10:11.02,Default,,0000,0000,0000,,And I got no problems with that. Registrar might have a problem with that, but that's okay. Dialogue: 0,0:10:11.02,0:10:12.72,Default,,0000,0000,0000,,You don't need to worry about that. Dialogue: 0,0:10:12.72,0:10:14.99,Default,,0000,0000,0000,,So you don't need to think about, oh, Dialogue: 0,0:10:14.99,0:10:18.38,Default,,0000,0000,0000,,is someone else doing better than you or whatever. And we'll talk about Dialogue: 0,0:10:18.38,0:10:21.34,Default,,0000,0000,0000,,issues of collaboration in just a little bit. All you need to think about is Dialogue: 0,0:10:21.34,0:10:24.67,Default,,0000,0000,0000,,learning the stuff yourself as well as you possibly can, and you'll be just fine Dialogue: 0,0:10:24.67,0:10:26.73,Default,,0000,0000,0000,,and you'll get a good grade, okay? Dialogue: 0,0:10:26.73,0:10:28.91,Default,,0000,0000,0000,,So that's really all we ask, Dialogue: 0,0:10:28.91,0:10:29.91,Default,,0000,0000,0000,,which is not Dialogue: 0,0:10:29.91,0:10:33.38,Default,,0000,0000,0000,,a trivial amount, right? It requires you to really understand the material. Dialogue: 0,0:10:33.38,0:10:36.34,Default,,0000,0000,0000,,So another question that comes up is are you in the right place, right? This Dialogue: 0,0:10:36.34,0:10:39.07,Default,,0000,0000,0000,,isn't the only introductory programming class at Stanford. And so I wanna spend a Dialogue: 0,0:10:39.07,0:10:41.89,Default,,0000,0000,0000,,little bit of time making sure you actually are in the right place Dialogue: 0,0:10:41.89,0:10:44.52,Default,,0000,0000,0000,,by going over some of the different options. So right Dialogue: 0,0:10:44.52,0:10:47.40,Default,,0000,0000,0000,,now, as you know, you're in CS106A. Dialogue: 0,0:10:47.40,0:10:50.48,Default,,0000,0000,0000,,And CS106A, we're sort of happy over here, Dialogue: 0,0:10:50.48,0:10:51.05,Default,,0000,0000,0000,,right? As Dialogue: 0,0:10:51.05,0:10:54.87,Default,,0000,0000,0000,,a matter of fact, we're not only happy, we're happy and we're also a little bit loopy, Dialogue: 0,0:10:54.87,0:10:56.92,Default,,0000,0000,0000,,right? Dialogue: 0,0:10:56.92,0:11:00.04,Default,,0000,0000,0000,,There is no previous programming experience required, as I mentioned, right? All you Dialogue: 0,0:11:00.04,0:11:04.23,Default,,0000,0000,0000,,need to know is basically if you can get to a computer and know how to Dialogue: 0,0:11:04.23,0:11:06.71,Default,,0000,0000,0000,,figure out that it's on, you're in good shape. Dialogue: 0,0:11:06.71,0:11:10.85,Default,,0000,0000,0000,,But what 106A does is it's a real rigorous class. You learn programming in Dialogue: 0,0:11:10.85,0:11:14.33,Default,,0000,0000,0000,,here, and you learn it in a way that makes you ready to be an engineer if you so Dialogue: 0,0:11:14.33,0:11:15.83,Default,,0000,0000,0000,,choose to be an engineer. Dialogue: 0,0:11:15.83,0:11:18.22,Default,,0000,0000,0000,,That's not to say you're all gonna be engineers. I would love for all of you to Dialogue: 0,0:11:18.22,0:11:21.31,Default,,0000,0000,0000,,be computer science majors, but statistics in the past show only about Dialogue: 0,0:11:21.31,0:11:24.28,Default,,0000,0000,0000,,6 percent of you will be computer science majors. That's not because we Dialogue: 0,0:11:24.28,0:11:25.96,Default,,0000,0000,0000,,turn anyone off to computer science; Dialogue: 0,0:11:25.96,0:11:29.17,Default,,0000,0000,0000,,it's because we make programming accessible to so many people Dialogue: 0,0:11:29.17,0:11:32.10,Default,,0000,0000,0000,,that you don't have to be a computer science or a Double E or even an Dialogue: 0,0:11:32.10,0:11:34.96,Default,,0000,0000,0000,,engineering major to do extremely well in the class. And we actually have sort Dialogue: 0,0:11:34.96,0:11:38.73,Default,,0000,0000,0000,,of a significant percentage of the entire campus undergraduate student body Dialogue: 0,0:11:38.73,0:11:42.36,Default,,0000,0000,0000,,at Stanford actually goes through this class and does well, okay? Dialogue: 0,0:11:42.36,0:11:45.78,Default,,0000,0000,0000,,So don't worry if you're, like, "Oh, but I'm not really a CS person." I hope Dialogue: 0,0:11:45.78,0:11:49.41,Default,,0000,0000,0000,,we'll turn you into one by the end of the class. No, it's okay. But Dialogue: 0,0:11:49.41,0:11:53.36,Default,,0000,0000,0000,,you'll be prepared if that's what you wanna do. So this leads into a whole Dialogue: 0,0:11:53.36,0:11:54.45,Default,,0000,0000,0000,,engineering sequence Dialogue: 0,0:11:54.45,0:11:58.80,Default,,0000,0000,0000,,that can go on to other engineering majors or the computer science majors. Dialogue: 0,0:11:58.80,0:12:02.02,Default,,0000,0000,0000,,If you're, like, "Huh, I'm not sure if that's really what I wanna do. As a matter of fact, Dialogue: 0,0:12:02.02,0:12:04.60,Default,,0000,0000,0000,,I'm so sure that's not what I wanna do, Dialogue: 0,0:12:04.60,0:12:07.30,Default,,0000,0000,0000,,I only wanna get the general educational requirement out of the way, and Dialogue: 0,0:12:07.30,0:12:11.05,Default,,0000,0000,0000,,I'm positive there is nothing else I wanna do. Really, no matter how much I like Dialogue: 0,0:12:11.05,0:12:15.09,Default,,0000,0000,0000,,it, like, there is no way you're gonna drag me into anything that would involve Dialogue: 0,0:12:15.09,0:12:17.04,Default,,0000,0000,0000,,anything remotely techie." Dialogue: 0,0:12:17.04,0:12:21.88,Default,,0000,0000,0000,,They're the class CS105. And this is happy, Dialogue: 0,0:12:21.88,0:12:22.49,Default,,0000,0000,0000,,yeah, Dialogue: 0,0:12:22.49,0:12:25.99,Default,,0000,0000,0000,,this is kind of, oh, we're happy in our little happy world. Dialogue: 0,0:12:25.99,0:12:30.50,Default,,0000,0000,0000,,And I don't wanna say it's holding hands and singing, "Kumbaya," because that's not what it is. It's a real Dialogue: 0,0:12:30.50,0:12:34.12,Default,,0000,0000,0000,,class. Dialogue: 0,0:12:34.12,0:12:38.06,Default,,0000,0000,0000,,But it's meant to be a general educational requirement, right? It Dialogue: 0,0:12:38.06,0:12:41.99,Default,,0000,0000,0000,,doesn't lead into the 106s. It's meant to be its own self-contained class. Dialogue: 0,0:12:41.99,0:12:45.46,Default,,0000,0000,0000,,You do some Java script in there. You do a little bit of what computers are about. Dialogue: 0,0:12:45.46,0:12:48.54,Default,,0000,0000,0000,,Computers in society is a good time. We all hold hands. We're all happy. I don't Dialogue: 0,0:12:48.54,0:12:50.84,Default,,0000,0000,0000,,teach the class, so I don't actually hold hands. Dialogue: 0,0:12:50.84,0:12:54.43,Default,,0000,0000,0000,,But it's a fun time, okay? It just doesn't lead to anything else. So think of this as Dialogue: 0,0:12:54.43,0:12:57.96,Default,,0000,0000,0000,,kind of a terminal class, right? So it's sort of like, well, we'll hook you up to the Dialogue: 0,0:12:57.96,0:12:59.57,Default,,0000,0000,0000,,IV drip. And Dialogue: 0,0:12:59.57,0:13:02.39,Default,,0000,0000,0000,,you're, like, "Well, 106A, you told me I don't need any previous background. Dialogue: 0,0:13:02.39,0:13:03.10,Default,,0000,0000,0000,,Well, Dialogue: 0,0:13:03.10,0:13:07.59,Default,,0000,0000,0000,,hey, Mehran, I got lots of background. I got so much background, it hurts. I got AP Dialogue: 0,0:13:07.59,0:13:09.75,Default,,0000,0000,0000,,background, I got working through school doing software engineering Dialogue: 0,0:13:09.75,0:13:10.68,Default,,0000,0000,0000,,background. Dialogue: 0,0:13:10.68,0:13:12.76,Default,,0000,0000,0000,,I'm not sure I should be here." Dialogue: 0,0:13:12.76,0:13:16.71,Default,,0000,0000,0000,,That could be the case. We have another class called CS106X, and as Dialogue: 0,0:13:16.71,0:13:21.56,Default,,0000,0000,0000,,the "X" kind of implies, it's sort of the extreme games version of the class. No, it Dialogue: 0,0:13:21.56,0:13:23.89,Default,,0000,0000,0000,,stands for accelerated, right, because Dialogue: 0,0:13:23.89,0:13:28.58,Default,,0000,0000,0000,,"A" was already taken, so we had to come up with something else. Dialogue: 0,0:13:28.58,0:13:33.25,Default,,0000,0000,0000,,So the way CS106X works is it really is a very fast-paced class. It's Dialogue: 0,0:13:33.25,0:13:35.65,Default,,0000,0000,0000,,meant for people who've got previous AP exam Dialogue: 0,0:13:35.65,0:13:37.66,Default,,0000,0000,0000,,credit, like, got a 4 or 5 on the AP, Dialogue: 0,0:13:37.66,0:13:41.11,Default,,0000,0000,0000,,or have had significant and prior programming experience before. Dialogue: 0,0:13:41.11,0:13:44.46,Default,,0000,0000,0000,,If you're not sure which one of these classes is for you, you can come talk to me Dialogue: 0,0:13:44.46,0:13:47.53,Default,,0000,0000,0000,,afterwards, or I'd also encourage you, you could go to pick up the syllabus for Dialogue: 0,0:13:47.53,0:13:50.40,Default,,0000,0000,0000,,CS106X and compare it to CS106A. Dialogue: 0,0:13:50.40,0:13:55.46,Default,,0000,0000,0000,,This class is all in C++. And if you're thinking, "Hey, Mehran, I'm doing 106A. I wanna learn Dialogue: 0,0:13:55.46,0:13:59.28,Default,,0000,0000,0000,,Java and C++," don't worry. You'll eventually, if you so choose, take a Dialogue: 0,0:13:59.28,0:14:03.05,Default,,0000,0000,0000,,class called CS106B, which is where this class sort of leads to, which Dialogue: 0,0:14:03.05,0:14:03.91,Default,,0000,0000,0000,,is Dialogue: 0,0:14:03.91,0:14:07.20,Default,,0000,0000,0000,,C++ and all of the other stuff you would have learned in this accelerated Dialogue: 0,0:14:07.20,0:14:08.06,Default,,0000,0000,0000,,class, Dialogue: 0,0:14:08.06,0:14:11.46,Default,,0000,0000,0000,,okay? So you still certainly have that course path. So don't let anyone make you think - Dialogue: 0,0:14:11.46,0:14:14.85,Default,,0000,0000,0000,,I know a lot of times, and especially for Stanford students, you come in here and you're, like, "Well, Dialogue: 0,0:14:14.85,0:14:17.80,Default,,0000,0000,0000,,every class I took in high school was like an honors or an AP class, Dialogue: 0,0:14:17.80,0:14:20.97,Default,,0000,0000,0000,,or if it wasn't an honors or an AP class, like, I had to tie half my brain Dialogue: 0,0:14:20.97,0:14:23.46,Default,,0000,0000,0000,,before my head because I'm just that hardcore." Dialogue: 0,0:14:23.46,0:14:25.56,Default,,0000,0000,0000,,And so everyone just wants to, like, do Dialogue: 0,0:14:25.56,0:14:29.66,Default,,0000,0000,0000,,the most hardcore thing they can, right? And what I'm here to tell you is that Dialogue: 0,0:14:29.66,0:14:32.35,Default,,0000,0000,0000,,you shouldn't necessarily think about it that way. You should think about it as where Dialogue: 0,0:14:32.35,0:14:34.65,Default,,0000,0000,0000,,you feel most comfortable. Dialogue: 0,0:14:34.65,0:14:38.46,Default,,0000,0000,0000,,Some number of years ago, let's just say greater than 10, maybe 15, I was Dialogue: 0,0:14:38.46,0:14:40.53,Default,,0000,0000,0000,,sitting where you're sitting right now, Dialogue: 0,0:14:40.53,0:14:40.81,Default,,0000,0000,0000,,literally. Dialogue: 0,0:14:40.81,0:14:44.86,Default,,0000,0000,0000,,I was in CS106A in Terman Auditorium as a freshman, Dialogue: 0,0:14:44.86,0:14:49.28,Default,,0000,0000,0000,,okay? It was perfectly fine. It worked out. I went to grad school, did the faculty Dialogue: 0,0:14:49.28,0:14:53.55,Default,,0000,0000,0000,,thing. It's just fine. It will open your doors to CS. You're not at any kind of Dialogue: 0,0:14:53.55,0:14:56.54,Default,,0000,0000,0000,,disadvantage by starting here. So know where you've been, literally. Like, that seat Dialogue: 0,0:14:56.54,0:14:58.44,Default,,0000,0000,0000,,right there was where I was Dialogue: 0,0:14:58.44,0:15:00.28,Default,,0000,0000,0000,,most of the time. Dialogue: 0,0:15:00.28,0:15:03.26,Default,,0000,0000,0000,,So just something to keep in mind in terms of the different options that are actually Dialogue: 0,0:15:03.26,0:15:04.32,Default,,0000,0000,0000,,available to you. Dialogue: 0,0:15:04.32,0:15:07.67,Default,,0000,0000,0000,,Now, with that said, let's just assume for the rest of this lecture that this is the Dialogue: 0,0:15:07.67,0:15:11.03,Default,,0000,0000,0000,,right place for you. And if it's not, well, afterwards we can kind of talk about it, Dialogue: 0,0:15:11.03,0:15:13.97,Default,,0000,0000,0000,,or if you really are convinced now that it's not the right place, you can feel free and try Dialogue: 0,0:15:13.97,0:15:14.98,Default,,0000,0000,0000,,to Dialogue: 0,0:15:14.98,0:15:17.65,Default,,0000,0000,0000,,scramble over 20 of your classmates and actually leave the room, which is Dialogue: 0,0:15:17.65,0:15:20.07,Default,,0000,0000,0000,,probably impossible. All right. Dialogue: 0,0:15:20.07,0:15:23.15,Default,,0000,0000,0000,,So a few other things you should know, some mechanics. So Handout No. 1, should Dialogue: 0,0:15:23.15,0:15:25.27,Default,,0000,0000,0000,,you wanna follow along at home, Dialogue: 0,0:15:25.27,0:15:27.43,Default,,0000,0000,0000,,is the class web page. Dialogue: 0,0:15:27.43,0:15:32.04,Default,,0000,0000,0000,,And so all the stuff that we think of as course materials, including online Dialogue: 0,0:15:32.04,0:15:34.99,Default,,0000,0000,0000,,copies of the handouts, things that you'll need to do for the assignments, announcements Dialogue: 0,0:15:34.99,0:15:36.22,Default,,0000,0000,0000,,related to the class Dialogue: 0,0:15:36.22,0:15:37.99,Default,,0000,0000,0000,,are all on the class web page, Dialogue: 0,0:15:37.99,0:15:44.99,Default,,0000,0000,0000,,which is Dialogue: 0,0:15:46.75,0:15:48.84,Default,,0000,0000,0000,,www.stanford.edu/class/cs106a. Dialogue: 0,0:15:48.84,0:15:52.23,Default,,0000,0000,0000,,And because that's just kind of a whole bunch to remember, we make your life easy Dialogue: 0,0:15:52.23,0:15:56.95,Default,,0000,0000,0000,,and so there is an equivalent form of the URL, which is just Dialogue: 0,0:15:56.95,0:16:00.86,Default,,0000,0000,0000,,cs106a.stanford.edu, which is the easy thing to remember. You put that in, it'll take Dialogue: 0,0:16:00.86,0:16:03.04,Default,,0000,0000,0000,,you to the class web page, okay? Dialogue: 0,0:16:03.04,0:16:05.73,Default,,0000,0000,0000,,And you should check that regularly because all the Dialogue: 0,0:16:05.73,0:16:09.06,Default,,0000,0000,0000,,announcements and handouts - we'll give out hard copies of all the handouts in class, but Dialogue: 0,0:16:09.06,0:16:11.69,Default,,0000,0000,0000,,should you happen to miss class for whatever reason, you wanna go print Dialogue: 0,0:16:11.69,0:16:14.81,Default,,0000,0000,0000,,whatever copies of the handouts we're actually giving out, you can find them all on Dialogue: 0,0:16:14.81,0:16:16.44,Default,,0000,0000,0000,,the web page, okay? Dialogue: 0,0:16:16.44,0:16:20.44,Default,,0000,0000,0000,,Now, there's this funky thing about units. So you may have noticed that this class is for three Dialogue: 0,0:16:20.44,0:16:23.80,Default,,0000,0000,0000,,to five units, and that kind of brings up the natural question, "Should I take it for three Dialogue: 0,0:16:23.80,0:16:25.33,Default,,0000,0000,0000,,or five units?" Dialogue: 0,0:16:25.33,0:16:29.30,Default,,0000,0000,0000,,If you're an undergrad, you take it for five units, end of story. That's life in the city. Dialogue: 0,0:16:29.30,0:16:30.61,Default,,0000,0000,0000,,Congratulations. Five units. Dialogue: 0,0:16:30.61,0:16:34.28,Default,,0000,0000,0000,,If you're a graduate student, you can have the option of taking it for three Dialogue: 0,0:16:34.28,0:16:38.13,Default,,0000,0000,0000,,units if you want, if you're gonna run into some unit cap. Dialogue: 0,0:16:38.13,0:16:41.36,Default,,0000,0000,0000,,It doesn't change the amount of work you have to do. Dialogue: 0,0:16:41.36,0:16:42.82,Default,,0000,0000,0000,,Welcome to graduate school. Dialogue: 0,0:16:42.82,0:16:44.51,Default,,0000,0000,0000,,Same work, fewer units. Dialogue: 0,0:16:44.51,0:16:47.64,Default,,0000,0000,0000,,So that's just the way life is. If you have a unit cap and you're a grad student, in Dialogue: 0,0:16:47.64,0:16:50.92,Default,,0000,0000,0000,,three units you can take it if you want. You can take it for five if you want as well. If you're an Dialogue: 0,0:16:50.92,0:16:53.24,Default,,0000,0000,0000,,undergrad, you take it for five, all right? Dialogue: 0,0:16:53.24,0:16:55.94,Default,,0000,0000,0000,,So why is it five units? And you might think, "Hey, Dialogue: 0,0:16:55.94,0:16:59.43,Default,,0000,0000,0000,,this class only meets three times a week. How come it's five units?" Well, it actually Dialogue: 0,0:16:59.43,0:17:02.58,Default,,0000,0000,0000,,has a fourth meeting every week, which is your section, and that's something you Dialogue: 0,0:17:02.58,0:17:04.28,Default,,0000,0000,0000,,should sign up for. Dialogue: 0,0:17:04.28,0:17:06.51,Default,,0000,0000,0000,,So how you actually sign up for your section Dialogue: 0,0:17:06.51,0:17:10.62,Default,,0000,0000,0000,,is sections are at a bunch of different times. You don't sign up for them in Dialogue: 0,0:17:10.62,0:17:13.12,Default,,0000,0000,0000,,Axess, even though they're all kind of listed in the time schedule. That's not where Dialogue: 0,0:17:13.12,0:17:16.07,Default,,0000,0000,0000,,you sign up for them. In Axess, you just sign up for the class. Dialogue: 0,0:17:16.07,0:17:20.90,Default,,0000,0000,0000,,How you sign up for a section is you go to a website, cs198.stanford.edu/section Dialogue: 0,0:17:20.90,0:17:22.00,Default,,0000,0000,0000,, Dialogue: 0,0:17:22.00,0:17:24.92,Default,,0000,0000,0000,, Dialogue: 0,0:17:24.92,0:17:30.52,Default,,0000,0000,0000,,and this will give us a list of preferences for Dialogue: 0,0:17:30.52,0:17:33.73,Default,,0000,0000,0000,,section times that you wanna sign up for, and there's some matching process that goes on. Dialogue: 0,0:17:33.73,0:17:37.45,Default,,0000,0000,0000,,It takes all your preferences into consideration with the whole system, and Dialogue: 0,0:17:37.45,0:17:39.19,Default,,0000,0000,0000,,eventually you get an email Dialogue: 0,0:17:39.19,0:17:42.46,Default,,0000,0000,0000,,by sometime early next week that tells you what section you're in. And section's 50 Dialogue: 0,0:17:42.46,0:17:45.66,Default,,0000,0000,0000,,minutes, once a week. It's required to go to. It's actually gonna be part of your class Dialogue: 0,0:17:45.66,0:17:48.64,Default,,0000,0000,0000,,participation grade, which we'll talk about in just a bit, okay? Dialogue: 0,0:17:48.64,0:17:52.92,Default,,0000,0000,0000,,When do these sign-ups happen? They happen between 5:00 p.m. this Thursday Dialogue: 0,0:17:52.92,0:17:56.13,Default,,0000,0000,0000,,is when they go up. So if you try to go there now, you can't sign up. Remember 5:00 Dialogue: 0,0:17:56.13,0:17:59.15,Default,,0000,0000,0000,,p.m. Thursday. So they're up, and then they're down Dialogue: 0,0:17:59.15,0:18:03.98,Default,,0000,0000,0000,,at 5:00 p.m. on Sunday, okay? So Dialogue: 0,0:18:03.98,0:18:06.77,Default,,0000,0000,0000,,make sure you sign up probably this weekend. If you're planning on being out of Dialogue: 0,0:18:06.77,0:18:09.99,Default,,0000,0000,0000,,town this weekend, you wanna sign up before you go. Sign up early, but don't Dialogue: 0,0:18:09.99,0:18:13.53,Default,,0000,0000,0000,,sign up often because you only need one section, okay? Dialogue: 0,0:18:13.53,0:18:17.12,Default,,0000,0000,0000,,If you're an SCPD student - every once in a while you'll hear me refer to SCPD Dialogue: 0,0:18:17.12,0:18:20.12,Default,,0000,0000,0000,,students. That stands for Stanford Center for Professional Development. Dialogue: 0,0:18:20.12,0:18:23.11,Default,,0000,0000,0000,,They are the folks in industry who actually take this class Dialogue: 0,0:18:23.11,0:18:26.39,Default,,0000,0000,0000,,via broadcast. If you're an SCPD student, you're automatically enrolled for a section, Dialogue: 0,0:18:26.39,0:18:30.26,Default,,0000,0000,0000,,so you don't actually need to do this, and your section will meet at - so for SCPD Dialogue: 0,0:18:30.26,0:18:33.93,Default,,0000,0000,0000,,- and if you're wondering what an SCPD student is, you're not one, okay? Dialogue: 0,0:18:33.93,0:18:40.26,Default,,0000,0000,0000,,So SCPD section meets Friday from 1:15 to 2:05. It meets Dialogue: 0,0:18:40.26,0:18:44.09,Default,,0000,0000,0000,,live, if you wanna go there live, in Skilling Auditorium. But if you're Dialogue: 0,0:18:44.09,0:18:48.27,Default,,0000,0000,0000,,watching it remotely, it meets on Channel E2. I Dialogue: 0,0:18:48.27,0:18:52.61,Default,,0000,0000,0000,,know it seems weird to say it meets on channel - what does that mean? It meets on Dialogue: 0,0:18:52.61,0:18:56.87,Default,,0000,0000,0000,,Channel E2, okay? That is grammatically the correct way of saying it. Dialogue: 0,0:18:56.87,0:18:57.62,Default,,0000,0000,0000,,All right. Dialogue: 0,0:18:57.62,0:19:01.53,Default,,0000,0000,0000,,So there's a little bit more administrative stuff. Now, Dialogue: 0,0:19:01.53,0:19:05.05,Default,,0000,0000,0000,,textbooks, right? Textbooks, there's nothing quite like the extortion that is Dialogue: 0,0:19:05.05,0:19:07.04,Default,,0000,0000,0000,,textbooks. So there are Dialogue: 0,0:19:07.04,0:19:09.54,Default,,0000,0000,0000,,two textbooks that are required for this class. Well, one's a course reader and Dialogue: 0,0:19:09.54,0:19:12.79,Default,,0000,0000,0000,,one's a textbook. The course reader is called, Karel the Robot Learns Java. You Dialogue: 0,0:19:12.79,0:19:16.08,Default,,0000,0000,0000,,can pick it up at the bookstore. It's relatively cheap. It was actually written by Eric Dialogue: 0,0:19:16.08,0:19:19.80,Default,,0000,0000,0000,,Roberts here. And surprisingly enough, the textbook for the class was also written by Dialogue: 0,0:19:19.80,0:19:23.18,Default,,0000,0000,0000,,Eric Roberts, The Art and Science of Java, which is available now in your local Dialogue: 0,0:19:23.18,0:19:24.63,Default,,0000,0000,0000,,bookstore, Dialogue: 0,0:19:24.63,0:19:27.71,Default,,0000,0000,0000,,including the bookstore on campus, so you can go and pick up a copy of this. Dialogue: 0,0:19:27.71,0:19:30.69,Default,,0000,0000,0000,,So both these things you actually wanna have because they're required for the Dialogue: 0,0:19:30.69,0:19:33.76,Default,,0000,0000,0000,,class. We'll go through all of them. We'll go through basically everything except Dialogue: 0,0:19:33.76,0:19:35.73,Default,,0000,0000,0000,,the last chapter of this book. So you Dialogue: 0,0:19:35.73,0:19:38.36,Default,,0000,0000,0000,,sort of get your money's worth. We're just gonna do it a little bit out of Dialogue: 0,0:19:38.36,0:19:40.69,Default,,0000,0000,0000,,order, but we'll go through the whole thing, Dialogue: 0,0:19:40.69,0:19:42.81,Default,,0000,0000,0000,,okay? So email, Dialogue: 0,0:19:42.81,0:19:45.87,Default,,0000,0000,0000,,how many of you have email accounts? All Dialogue: 0,0:19:45.87,0:19:48.69,Default,,0000,0000,0000,,right. I will ask the reverse question because I think at this point, some people just don't Dialogue: 0,0:19:48.69,0:19:49.80,Default,,0000,0000,0000,,wanna put up their hands. Dialogue: 0,0:19:49.80,0:19:53.23,Default,,0000,0000,0000,,How many people don't have email accounts? Dialogue: 0,0:19:53.23,0:19:56.24,Default,,0000,0000,0000,,Odd how that is not the complement of the folks who had their hands up Dialogue: 0,0:19:56.24,0:19:57.22,Default,,0000,0000,0000,,previously. Dialogue: 0,0:19:57.22,0:20:00.91,Default,,0000,0000,0000,,Email's required for this class. Chances are, by being at Stanford, you've already gotten an Dialogue: 0,0:20:00.91,0:20:03.77,Default,,0000,0000,0000,,email account through your SUNet ID, but if you don't have an email account, get Dialogue: 0,0:20:03.77,0:20:06.21,Default,,0000,0000,0000,,an email account and that's how you'll stay in contact with us. That's how we'll stay in Dialogue: 0,0:20:06.21,0:20:09.06,Default,,0000,0000,0000,,contact with you, except we'll also meet with you live in person, Dialogue: 0,0:20:09.06,0:20:12.11,Default,,0000,0000,0000,,but email is kind of the general method for communication. As a matter of fact, for your Dialogue: 0,0:20:12.11,0:20:15.18,Default,,0000,0000,0000,,first assignment, and part of your first assignment is to send us an email, Dialogue: 0,0:20:15.18,0:20:16.90,Default,,0000,0000,0000,,just because we love you Dialogue: 0,0:20:16.90,0:20:18.74,Default,,0000,0000,0000,,and we don't get enough email as it is. Dialogue: 0,0:20:18.74,0:20:21.47,Default,,0000,0000,0000,,So you need to have an email account to be able to do that. So if you have not Dialogue: 0,0:20:21.47,0:20:24.25,Default,,0000,0000,0000,,already, you can kind of get ahead of the game and go set up your email Dialogue: 0,0:20:24.25,0:20:26.72,Default,,0000,0000,0000,,account. Now, don't worry. You'll get the first assignment next time. So you still get, like, Dialogue: 0,0:20:26.72,0:20:30.35,Default,,0000,0000,0000,,two days of breathing space before your assignment goes out, okay? Dialogue: 0,0:20:30.35,0:20:33.15,Default,,0000,0000,0000,,There is also gonna be lots of handouts in the class. They'll be either given out in class, Dialogue: 0,0:20:33.15,0:20:36.97,Default,,0000,0000,0000,,well, they will be given out in class, but we'll also post them online in case you miss them. Dialogue: 0,0:20:36.97,0:20:40.56,Default,,0000,0000,0000,,And how much real work do you do in this class? That's always kind of an interesting Dialogue: 0,0:20:40.56,0:20:40.90,Default,,0000,0000,0000,,question. Dialogue: 0,0:20:40.90,0:20:43.38,Default,,0000,0000,0000,,So let's talk a little bit about assignments Dialogue: 0,0:20:43.38,0:20:46.62,Default,,0000,0000,0000,,and a little bit of other logistical things. Dialogue: 0,0:20:46.62,0:20:49.68,Default,,0000,0000,0000,,So assignments, Dialogue: 0,0:20:49.68,0:20:54.43,Default,,0000,0000,0000,,we'll just call them the dreaded assigns. There are seven programming assignments. Dialogue: 0,0:20:54.43,0:20:57.12,Default,,0000,0000,0000,,And if you look at the syllabus Handout No. 2, it tells you when all of them Dialogue: 0,0:20:57.12,0:21:01.15,Default,,0000,0000,0000,,are due all the way through by day, so you can plan out your whole quarter. It's Dialogue: 0,0:21:01.15,0:21:03.67,Default,,0000,0000,0000,,just that much fun, okay? Dialogue: 0,0:21:03.67,0:21:07.27,Default,,0000,0000,0000,,And these seven programming assignments are weighted slightly more toward the Dialogue: 0,0:21:07.27,0:21:09.93,Default,,0000,0000,0000,,last assignments because the assignments will tend to get more complicated. That doesn't Dialogue: 0,0:21:09.93,0:21:11.99,Default,,0000,0000,0000,,necessarily mean there'll be more programming; Dialogue: 0,0:21:11.99,0:21:14.59,Default,,0000,0000,0000,,it just means conceptually, they'll become more complicated, Dialogue: 0,0:21:14.59,0:21:17.79,Default,,0000,0000,0000,,so we tend to weigh them more toward the end of the class. So the later assignments count Dialogue: 0,0:21:17.79,0:21:19.88,Default,,0000,0000,0000,,more than the early assignments. Dialogue: 0,0:21:19.88,0:21:25.15,Default,,0000,0000,0000,,How you're gonna be actually doing your programming is using a little tool called Eclipse. Dialogue: 0,0:21:25.15,0:21:28.48,Default,,0000,0000,0000,,And Eclipse thankfully is free, so you don't have to pay for it. As a matter of Dialogue: 0,0:21:28.48,0:21:31.45,Default,,0000,0000,0000,,fact, you can download it from the CS106A website. And if you're wondering Dialogue: 0,0:21:31.45,0:21:34.60,Default,,0000,0000,0000,,how you do that, don't worry. We'll give you a handout next class that explains Dialogue: 0,0:21:34.60,0:21:36.70,Default,,0000,0000,0000,,to you the whole grueling process Dialogue: 0,0:21:36.70,0:21:38.51,Default,,0000,0000,0000,,of downloading and installing Eclipse. Dialogue: 0,0:21:38.51,0:21:43.23,Default,,0000,0000,0000,,And you can use this either on the Mac or the PC. So if you have your own Dialogue: 0,0:21:43.23,0:21:46.48,Default,,0000,0000,0000,,computer, you can certainly work on this yourself. You just download it to your Dialogue: 0,0:21:46.48,0:21:49.11,Default,,0000,0000,0000,,own machine. We'll explain the whole process in a handout. Dialogue: 0,0:21:49.11,0:21:52.65,Default,,0000,0000,0000,,If you don't have your own computer, the public computer clusters on campus Dialogue: 0,0:21:52.65,0:21:55.71,Default,,0000,0000,0000,,will have Eclipse installed on them, and so you can use Eclipse there. So you're Dialogue: 0,0:21:55.71,0:21:58.73,Default,,0000,0000,0000,,sort of happy to go either way, okay? Now, Dialogue: 0,0:21:58.73,0:22:01.43,Default,,0000,0000,0000,,the important thing, remember I mentioned that whole notion of software Dialogue: 0,0:22:01.43,0:22:03.78,Default,,0000,0000,0000,,engineering in the class, and that's something we take really seriously, so Dialogue: 0,0:22:03.78,0:22:06.35,Default,,0000,0000,0000,,seriously as a matter of fact that when you turn in your assignments, one thing we could do is we could take Dialogue: 0,0:22:06.35,0:22:07.27,Default,,0000,0000,0000,,your assignments Dialogue: 0,0:22:07.27,0:22:11.35,Default,,0000,0000,0000,,and we could just kind of look at it and go, "Yeah, interesting, 'B.' Here you go. Dialogue: 0,0:22:11.35,0:22:12.59,Default,,0000,0000,0000,,Thanks for playing." Dialogue: 0,0:22:12.59,0:22:16.65,Default,,0000,0000,0000,,And you don't learn a whole lot from them. So in order to actually learn a lot from Dialogue: 0,0:22:16.65,0:22:19.28,Default,,0000,0000,0000,,your assignments, we could take your assignment and write a whole bunch of Dialogue: 0,0:22:19.28,0:22:22.68,Default,,0000,0000,0000,,comments on it and hand it back to you. Even that's kind of not enough. Dialogue: 0,0:22:22.68,0:22:26.53,Default,,0000,0000,0000,,What really is a little bit more that makes it more fun is every week after Dialogue: 0,0:22:26.53,0:22:29.77,Default,,0000,0000,0000,,you turn in your assignment and your section leader looks it over and grades it, Dialogue: 0,0:22:29.77,0:22:32.94,Default,,0000,0000,0000,,you'll actually meet with your section leader for about 10 to 15 minutes Dialogue: 0,0:22:32.94,0:22:35.28,Default,,0000,0000,0000,,every week or every time an assignment is due Dialogue: 0,0:22:35.28,0:22:38.04,Default,,0000,0000,0000,,to actually go over in something referred to as interactive grading. And it's Dialogue: 0,0:22:38.04,0:22:41.45,Default,,0000,0000,0000,,a chance to sit there and talk with an actual human being about what's good in Dialogue: 0,0:22:41.45,0:22:44.74,Default,,0000,0000,0000,,your assignment, what are some of the things you need to work on, what are some of the Dialogue: 0,0:22:44.74,0:22:47.94,Default,,0000,0000,0000,,software engineering principles you need to develop. And that way, you can really Dialogue: 0,0:22:47.94,0:22:52.50,Default,,0000,0000,0000,,sort of get more detailed information and be able to ask questions to develop Dialogue: 0,0:22:52.50,0:22:55.73,Default,,0000,0000,0000,,yourself as a programmer as well as get help if you need help, Dialogue: 0,0:22:55.73,0:22:59.76,Default,,0000,0000,0000,,okay? And that's in addition to going to section, going to class and all that stuff. So Dialogue: 0,0:22:59.76,0:23:02.87,Default,,0000,0000,0000,,it's another 15 minutes a week. You'll actually schedule that time with your Dialogue: 0,0:23:02.87,0:23:04.52,Default,,0000,0000,0000,,section leader on a regular basis Dialogue: 0,0:23:04.52,0:23:07.67,Default,,0000,0000,0000,,when you're gonna have interactive grading or just affectionately Dialogue: 0,0:23:07.67,0:23:11.56,Default,,0000,0000,0000,,referred to as IGs because at Stanford, everything's just short and we just can't Dialogue: 0,0:23:11.56,0:23:13.81,Default,,0000,0000,0000,,say, like, psychology; we have to say psyche. Dialogue: 0,0:23:13.81,0:23:17.47,Default,,0000,0000,0000,,So it's IG. Just remember that, all right? Dialogue: 0,0:23:17.47,0:23:20.45,Default,,0000,0000,0000,,And then how are these things graded? So the other thing we could do is I told you Dialogue: 0,0:23:20.45,0:23:22.60,Default,,0000,0000,0000,,we could just write "B" and hand it back to you. Dialogue: 0,0:23:22.60,0:23:25.31,Default,,0000,0000,0000,,But we found that that's not really great because people get all wrapped Dialogue: 0,0:23:25.31,0:23:27.34,Default,,0000,0000,0000,,around the axle about the grade. Dialogue: 0,0:23:27.34,0:23:30.99,Default,,0000,0000,0000,,And so for a while, we did numbers and we're, like, huh, why don't we give a number between 1 and Dialogue: 0,0:23:30.99,0:23:33.08,Default,,0000,0000,0000,,20? And so what happens there? Dialogue: 0,0:23:33.08,0:23:35.80,Default,,0000,0000,0000,,People get all wrapped around the axle about numbers. Dialogue: 0,0:23:35.80,0:23:39.10,Default,,0000,0000,0000,,So then we thought, huh, what was a happier time when we were in school? Dialogue: 0,0:23:39.10,0:23:42.73,Default,,0000,0000,0000,,I remember when we were in school, and we used to get back assignments and they Dialogue: 0,0:23:42.73,0:23:45.29,Default,,0000,0000,0000,,had, like, smiley faces on them. Dialogue: 0,0:23:45.29,0:23:48.66,Default,,0000,0000,0000,,Well, we can't do that because then it doesn't appear to be a rigorous Stanford Dialogue: 0,0:23:48.66,0:23:49.41,Default,,0000,0000,0000,,class. Dialogue: 0,0:23:49.41,0:23:52.44,Default,,0000,0000,0000,,So instead of the smiley face, Dialogue: 0,0:23:52.44,0:23:54.33,Default,,0000,0000,0000,,we come up with something else, Dialogue: 0,0:23:54.33,0:23:59.01,Default,,0000,0000,0000,,which looks surprisingly like this. It's kind of involved to actually draw, so I need to Dialogue: 0,0:23:59.01,0:24:04.98,Default,,0000,0000,0000,,erase the board to do it. Check. Dialogue: 0,0:24:04.98,0:24:07.49,Default,,0000,0000,0000,,That's kind of the beginning of our grading scale, okay? Dialogue: 0,0:24:07.49,0:24:11.53,Default,,0000,0000,0000,,And the way our grading scale works is we start off with a check in the middle, Dialogue: 0,0:24:11.53,0:24:14.90,Default,,0000,0000,0000,,which says this is a pretty solid program. It meets all the requirements Dialogue: 0,0:24:14.90,0:24:19.17,Default,,0000,0000,0000,,for the program. Maybe it's got a little problem here or there, but it's a check. Dialogue: 0,0:24:19.17,0:24:22.95,Default,,0000,0000,0000,,Then we have sort of two grades on the two sides of it: check plus and check Dialogue: 0,0:24:22.95,0:24:23.98,Default,,0000,0000,0000,,minus. Dialogue: 0,0:24:23.98,0:24:26.05,Default,,0000,0000,0000,,Check plus is, like, Dialogue: 0,0:24:26.05,0:24:27.17,Default,,0000,0000,0000,,solid. Dialogue: 0,0:24:27.17,0:24:31.52,Default,,0000,0000,0000,,You did a great job; you got everything right; things look good, a nice style in Dialogue: 0,0:24:31.52,0:24:35.62,Default,,0000,0000,0000,,your program, nice software engineering, and the program works flawlessly. Dialogue: 0,0:24:35.62,0:24:39.31,Default,,0000,0000,0000,,Good job. This is like total "A." Dialogue: 0,0:24:39.31,0:24:42.92,Default,,0000,0000,0000,,Check is kind of like, yeah, you're sort of there. It's kind of like "A" minus, "B" plus, Dialogue: 0,0:24:42.92,0:24:45.11,Default,,0000,0000,0000,,maybe on some occasions "B." Dialogue: 0,0:24:45.11,0:24:47.40,Default,,0000,0000,0000,,But it's kind of like it's pretty good work; you're in pretty good Dialogue: 0,0:24:47.40,0:24:48.71,Default,,0000,0000,0000,,shape here. Dialogue: 0,0:24:48.71,0:24:52.44,Default,,0000,0000,0000,,And so a lot of grades in this class ends up being check pluses and checks, and if that's Dialogue: 0,0:24:52.44,0:24:55.07,Default,,0000,0000,0000,,the case, you're perfectly fine grade-wise. Dialogue: 0,0:24:55.07,0:24:59.01,Default,,0000,0000,0000,,Check minus, as you can imagine, this is kind of thinking about "B," "B" minus. It's, Dialogue: 0,0:24:59.01,0:25:02.73,Default,,0000,0000,0000,,yeah, there are some slightly more significant problems with your program. Dialogue: 0,0:25:02.73,0:25:05.13,Default,,0000,0000,0000,,But that's not where it ends, right, because we wanna Dialogue: 0,0:25:05.13,0:25:09.09,Default,,0000,0000,0000,,be able to even shoot for in some sense bigger gustoes. There was a plus Dialogue: 0,0:25:09.09,0:25:10.48,Default,,0000,0000,0000,,and a minus. Dialogue: 0,0:25:10.48,0:25:12.45,Default,,0000,0000,0000,,So plus is like, Dialogue: 0,0:25:12.45,0:25:15.66,Default,,0000,0000,0000,,oh, nice job, kind of a hearty Dialogue: 0,0:25:15.66,0:25:18.15,Default,,0000,0000,0000,,pat on the back. If you get Dialogue: 0,0:25:18.15,0:25:20.94,Default,,0000,0000,0000,,pluses all the way through on all your assignments, you're in a pretty good Dialogue: 0,0:25:20.94,0:25:22.54,Default,,0000,0000,0000,,candidate to get an "A" plus. Dialogue: 0,0:25:22.54,0:25:26.57,Default,,0000,0000,0000,,And minus, like, just take good over here and replace it with bad, it's kind of like, Dialogue: 0,0:25:26.57,0:25:28.25,Default,,0000,0000,0000,,oh, Dialogue: 0,0:25:28.25,0:25:31.73,Default,,0000,0000,0000,,bad times, right, Dialogue: 0,0:25:31.73,0:25:36.67,Default,,0000,0000,0000,,or maybe, you know - but Dialogue: 0,0:25:36.67,0:25:40.03,Default,,0000,0000,0000,,even there was, like, more significant problems with this program or just the Dialogue: 0,0:25:40.03,0:25:42.76,Default,,0000,0000,0000,,style on the program is just really bad. Dialogue: 0,0:25:42.76,0:25:46.88,Default,,0000,0000,0000,,But even there, we don't stop. And you're, like, "Come on, man. Like, I thought the whole reason Dialogue: 0,0:25:46.88,0:25:51.49,Default,,0000,0000,0000,,was to simplify this." Don't worry. And it gets even better because we have a plus-plus Dialogue: 0,0:25:51.49,0:25:55.60,Default,,0000,0000,0000,,and a minus-minus. And at this point, we've run out of board space, so we can't go any further. Dialogue: 0,0:25:55.60,0:25:57.01,Default,,0000,0000,0000,,But a plus-plus Dialogue: 0,0:25:57.01,0:25:59.25,Default,,0000,0000,0000,,is just outrageous, Dialogue: 0,0:25:59.25,0:26:02.41,Default,,0000,0000,0000,,right? It's the kind of thing - so this is the kind of thing your section leader can't Dialogue: 0,0:26:02.41,0:26:03.40,Default,,0000,0000,0000,,actually give you Dialogue: 0,0:26:03.40,0:26:05.68,Default,,0000,0000,0000,,without coming and talking to Ben and I first Dialogue: 0,0:26:05.68,0:26:09.48,Default,,0000,0000,0000,,because they get a program that just goes - it has to actually exceed the Dialogue: 0,0:26:09.48,0:26:11.86,Default,,0000,0000,0000,,requirements for the assignment. It's by a long shot. Dialogue: 0,0:26:11.86,0:26:14.76,Default,,0000,0000,0000,,Like, you'll get all your assignment requirements, and what we encourage you Dialogue: 0,0:26:14.76,0:26:18.43,Default,,0000,0000,0000,,to do is you can do a grade assignment and get everything right and have good style, Dialogue: 0,0:26:18.43,0:26:21.71,Default,,0000,0000,0000,,and you'll be in this category. And for the later assignments, you may be in this category if it's Dialogue: 0,0:26:21.71,0:26:22.39,Default,,0000,0000,0000,,flawless. Dialogue: 0,0:26:22.39,0:26:25.66,Default,,0000,0000,0000,,But we'll actually - if you want to go for the plus-plus, Dialogue: 0,0:26:25.66,0:26:28.74,Default,,0000,0000,0000,,go beyond the assignment requirements. And the way we think about the plus-plus, it's a Dialogue: 0,0:26:28.74,0:26:30.66,Default,,0000,0000,0000,,program that makes you weep Dialogue: 0,0:26:30.66,0:26:32.04,Default,,0000,0000,0000,,in a good way. Dialogue: 0,0:26:32.04,0:26:35.00,Default,,0000,0000,0000,,It's just like your section leader sees it, and they're just, like, Dialogue: 0,0:26:35.00,0:26:38.56,Default,,0000,0000,0000,,this is so good, I've gotta show someone else. And they come and show Ben and Dialogue: 0,0:26:38.56,0:26:42.47,Default,,0000,0000,0000,,I, and we're, like, sitting there looking at this on a monitor, and, like, tears are just welling in our eyes, and there was, Dialogue: 0,0:26:42.47,0:26:43.38,Default,,0000,0000,0000,,like, Dialogue: 0,0:26:43.38,0:26:46.81,Default,,0000,0000,0000,,soft violin music playing in the background and we get out the wine and Dialogue: 0,0:26:46.81,0:26:47.72,Default,,0000,0000,0000,,cheese. Dialogue: 0,0:26:47.72,0:26:52.88,Default,,0000,0000,0000,,So this is just, like, this is the kind of thing that gets you, like, Dialogue: 0,0:26:52.88,0:26:56.35,Default,,0000,0000,0000,,remembered and the, oh, if you want a letter of recommendation, just ask because you got Dialogue: 0,0:26:56.35,0:26:59.35,Default,,0000,0000,0000,,a plus-plus. Like, oh, Dialogue: 0,0:26:59.35,0:27:03.17,Default,,0000,0000,0000,,it's awesome, right? There are very few of these in a quarter. So just by sort of Dialogue: 0,0:27:03.17,0:27:06.46,Default,,0000,0000,0000,,way of comparison, in a class this size, probably throughout the span of the Dialogue: 0,0:27:06.46,0:27:09.95,Default,,0000,0000,0000,,whole quarter, I'd expect there to be maybe ten plus-pluses, Dialogue: 0,0:27:09.95,0:27:13.61,Default,,0000,0000,0000,,I mean, ten assignment plus-pluses, not ten students who get plus-pluses across the Dialogue: 0,0:27:13.61,0:27:13.96,Default,,0000,0000,0000,,board. Dialogue: 0,0:27:13.96,0:27:16.81,Default,,0000,0000,0000,,So it's really something to strive for, but if you strive for it, Dialogue: 0,0:27:16.81,0:27:20.60,Default,,0000,0000,0000,,like, we're giving you the credit for it. And this gets remembered and you get, like, Dialogue: 0,0:27:20.60,0:27:22.70,Default,,0000,0000,0000,,extra credit and everything. Dialogue: 0,0:27:22.70,0:27:25.02,Default,,0000,0000,0000,,So we're left with this, Dialogue: 0,0:27:25.02,0:27:29.85,Default,,0000,0000,0000,,right? This assignment also makes you weep, Dialogue: 0,0:27:29.85,0:27:33.31,Default,,0000,0000,0000,,but not in the good way, right? It makes you kind of weep in the sense, like, I look at Dialogue: 0,0:27:33.31,0:27:34.77,Default,,0000,0000,0000,,them and I'm, like, Dialogue: 0,0:27:34.77,0:27:39.32,Default,,0000,0000,0000,,oh, man, like, what did I teach? Like, where did I go wrong, right? I, like, Dialogue: 0,0:27:39.32,0:27:40.62,Default,,0000,0000,0000,,blame myself. Dialogue: 0,0:27:40.62,0:27:44.63,Default,,0000,0000,0000,,I blame you a little bit, but I blame myself. Dialogue: 0,0:27:44.63,0:27:47.45,Default,,0000,0000,0000,,And this is really just, like, the program is just, like, it's a Dialogue: 0,0:27:47.45,0:27:50.83,Default,,0000,0000,0000,,shell. Like, there really wasn't much effort that was put into it. Yeah, you slapped something together Dialogue: 0,0:27:50.83,0:27:53.14,Default,,0000,0000,0000,,or it doesn't really work, Dialogue: 0,0:27:53.14,0:27:56.03,Default,,0000,0000,0000,,that whole deal. And then if you don't turn anything in, we do kind of reserve the Dialogue: 0,0:27:56.03,0:27:58.58,Default,,0000,0000,0000,,zero to distinguish from the Dialogue: 0,0:27:58.58,0:28:02.72,Default,,0000,0000,0000,,"made really bad effort" versus "didn't make any effort at all." Dialogue: 0,0:28:02.72,0:28:06.41,Default,,0000,0000,0000,,And we just won't talk about these, right? Let's just hope we can avoid those Dialogue: 0,0:28:06.41,0:28:10.10,Default,,0000,0000,0000,,if possible. But that's kind of how the grading scale works now. Now, Dialogue: 0,0:28:10.10,0:28:13.86,Default,,0000,0000,0000,,at the same time, I trust all of you to be responsible people. Dialogue: 0,0:28:13.86,0:28:17.33,Default,,0000,0000,0000,,And every once in a while, something bad happens to a good person, and Dialogue: 0,0:28:17.33,0:28:20.56,Default,,0000,0000,0000,,there's an assignment that you'd like to be able to turn in, but for whatever reason, you Dialogue: 0,0:28:20.56,0:28:23.71,Default,,0000,0000,0000,,can't turn in on time. And I just wanna treat you like adults. Dialogue: 0,0:28:23.71,0:28:27.70,Default,,0000,0000,0000,,I don't want you to have to worry about coming in and asking for an extension Dialogue: 0,0:28:27.70,0:28:31.30,Default,,0000,0000,0000,,or, like, "Oh, I had this really hard thing in another class, and I couldn't do it at the same time." Up Dialogue: 0,0:28:31.30,0:28:32.11,Default,,0000,0000,0000,,front, Dialogue: 0,0:28:32.11,0:28:34.23,Default,,0000,0000,0000,,everyone gets two free extensions, okay? So Dialogue: 0,0:28:34.23,0:28:38.93,Default,,0000,0000,0000,,in terms of late days - we refer to these as late days, strangely enough - you Dialogue: 0,0:28:38.93,0:28:40.51,Default,,0000,0000,0000,,get two free ones. Dialogue: 0,0:28:40.51,0:28:44.44,Default,,0000,0000,0000,,What a late day is, is a class day. They're not 24-hour days, but class days. Dialogue: 0,0:28:44.44,0:28:48.06,Default,,0000,0000,0000,,So if something is due on a Wednesday, you turned in on a Friday, that's a late Dialogue: 0,0:28:48.06,0:28:49.06,Default,,0000,0000,0000,,day. That's one. Dialogue: 0,0:28:49.06,0:28:51.89,Default,,0000,0000,0000,,You turn it in on the following Monday, that's two late days. Dialogue: 0,0:28:51.89,0:28:54.60,Default,,0000,0000,0000,,You can split up your two late days among two different assignments. You can use Dialogue: 0,0:28:54.60,0:28:56.15,Default,,0000,0000,0000,,them both on one assignment. Dialogue: 0,0:28:56.15,0:28:59.82,Default,,0000,0000,0000,,But we encourage you to not use them at all because if you use your late days, you fall behind Dialogue: 0,0:28:59.82,0:29:00.87,Default,,0000,0000,0000,,in the class. Dialogue: 0,0:29:00.87,0:29:05.04,Default,,0000,0000,0000,,The way you should think about these things are these are pre-approved extensions. Dialogue: 0,0:29:05.04,0:29:08.19,Default,,0000,0000,0000,,They're not the kind of thing where you just think, "Oh, yeah, I'm not gonna do the Dialogue: 0,0:29:08.19,0:29:11.19,Default,,0000,0000,0000,,assignment because I wanna go and play Frisbee golf," right? Dialogue: 0,0:29:11.19,0:29:14.33,Default,,0000,0000,0000,,Think of it, well, you wouldn't come ask me for an extension - you might, but you probably wouldn't Dialogue: 0,0:29:14.33,0:29:17.62,Default,,0000,0000,0000,,ask me for an extension if you're, like, "Hey, hey, Mehran, can I turn in the Dialogue: 0,0:29:17.62,0:29:19.60,Default,,0000,0000,0000,,assignment, like, on Wednesday because Dialogue: 0,0:29:19.60,0:29:22.72,Default,,0000,0000,0000,,I'm playing Frisbee golf this afternoon," right? If you would feel embarrassed Dialogue: 0,0:29:22.72,0:29:25.80,Default,,0000,0000,0000,,asking that question, you probably don't wanna use one of your free late days. Dialogue: 0,0:29:25.80,0:29:27.46,Default,,0000,0000,0000,,But something happens like, Dialogue: 0,0:29:27.46,0:29:30.81,Default,,0000,0000,0000,,oh, it's a tough week, you've got midterms in other classes and you got this assignment Dialogue: 0,0:29:30.81,0:29:32.88,Default,,0000,0000,0000,,due or whatever, that's a good time to use it. Dialogue: 0,0:29:32.88,0:29:36.28,Default,,0000,0000,0000,,So we just trust you. And most people, we actually encourage you not to use them Dialogue: 0,0:29:36.28,0:29:39.17,Default,,0000,0000,0000,,because it just makes you fall behind in the class. Dialogue: 0,0:29:39.17,0:29:42.20,Default,,0000,0000,0000,,Because we trust you and we give you these two up front, getting extensions Dialogue: 0,0:29:42.20,0:29:45.81,Default,,0000,0000,0000,,beyond your two free class days is virtually impossible because we sort of Dialogue: 0,0:29:45.81,0:29:46.54,Default,,0000,0000,0000,,up front said, Dialogue: 0,0:29:46.54,0:29:49.21,Default,,0000,0000,0000,,hey, it's your responsibility. We're giving you two freebies. Dialogue: 0,0:29:49.21,0:29:52.47,Default,,0000,0000,0000,,We're not gonna give you a third extension. Imagine if you had to come ask us for three Dialogue: 0,0:29:52.47,0:29:55.54,Default,,0000,0000,0000,,extensions. By the third one, we'd be, like, okay, what's going on, which is why Dialogue: 0,0:29:55.54,0:29:57.71,Default,,0000,0000,0000,,we don't necessarily give extensions beyond these two. Dialogue: 0,0:29:57.71,0:30:00.86,Default,,0000,0000,0000,,The only time we might give an extension beyond the two free ones is for Dialogue: 0,0:30:00.86,0:30:02.15,Default,,0000,0000,0000,,something major, like Dialogue: 0,0:30:02.15,0:30:06.30,Default,,0000,0000,0000,,death in the family or, like, serious medical problems that might require surgery or Dialogue: 0,0:30:06.30,0:30:07.25,Default,,0000,0000,0000,,something like that. Dialogue: 0,0:30:07.25,0:30:10.35,Default,,0000,0000,0000,,Every once in a while, unfortunately, that happens. I hope it doesn't happen in this Dialogue: 0,0:30:10.35,0:30:10.74,Default,,0000,0000,0000,,class. Dialogue: 0,0:30:10.74,0:30:13.87,Default,,0000,0000,0000,,But those are the only kinds of things that we give extensions to beyond the two Dialogue: 0,0:30:13.87,0:30:15.06,Default,,0000,0000,0000,,free late days. Dialogue: 0,0:30:15.06,0:30:18.74,Default,,0000,0000,0000,,Importantly, don't ask your section leader for extensions. They cannot grant you Dialogue: 0,0:30:18.74,0:30:22.25,Default,,0000,0000,0000,,extensions. Only Ben, who has all the power in this class, can give extensions, which Dialogue: 0,0:30:22.25,0:30:25.31,Default,,0000,0000,0000,,is why you should get to know Ben and then hopefully you won't need to talk to him about Dialogue: 0,0:30:25.31,0:30:27.63,Default,,0000,0000,0000,,extensions, okay? So Dialogue: 0,0:30:27.63,0:30:31.61,Default,,0000,0000,0000,,other thing to keep in mind is that three days late is the max. Dialogue: 0,0:30:31.61,0:30:36.13,Default,,0000,0000,0000,,Beyond three days late, which is basically one class week, if you think Dialogue: 0,0:30:36.13,0:30:39.39,Default,,0000,0000,0000,,about late days being class days, we will not accept an assignment. And the reason Dialogue: 0,0:30:39.39,0:30:42.13,Default,,0000,0000,0000,,for that is at a certain point, you're so late, you're better off just doing the Dialogue: 0,0:30:42.13,0:30:44.12,Default,,0000,0000,0000,,next assignment, letting the old one go. Dialogue: 0,0:30:44.12,0:30:48.41,Default,,0000,0000,0000,,So to sort of enforce that policy, after three days, we don't accept that Dialogue: 0,0:30:48.41,0:30:51.26,Default,,0000,0000,0000,,assignment late anymore. It's just gonna be a zero if it's not turned in, okay? Dialogue: 0,0:30:51.26,0:30:53.20,Default,,0000,0000,0000,,And that just kind of forces you to keep up. Dialogue: 0,0:30:53.20,0:30:56.87,Default,,0000,0000,0000,,Couple other minor things, well, I shouldn't say they're minor things. They're actually kind of important. Exams: There's Dialogue: 0,0:30:56.87,0:30:59.54,Default,,0000,0000,0000,,two exams in this class. There's a midterm and a final. Dialogue: 0,0:30:59.54,0:31:04.26,Default,,0000,0000,0000,,Both of them are, well, I shouldn't say both. The midterm is out of class. It's Dialogue: 0,0:31:04.26,0:31:07.73,Default,,0000,0000,0000,,from 7:00 to 8:30 p.m. Dialogue: 0,0:31:07.73,0:31:13.25,Default,,0000,0000,0000,,on Tuesday, October 30. And it's on the syllabus. It's there. It's on the syllabus; it's Dialogue: 0,0:31:13.25,0:31:16.63,Default,,0000,0000,0000,,on Handout No. 1. We repeat it multiple times. The date will eventually be announced Dialogue: 0,0:31:16.63,0:31:18.02,Default,,0000,0000,0000,,when we get close to the midterm. Dialogue: 0,0:31:18.02,0:31:22.46,Default,,0000,0000,0000,,But if you have a conflict with this time, you need to send me email, okay? Dialogue: 0,0:31:22.46,0:31:26.67,Default,,0000,0000,0000,,You can send me email a little closer to the midterm because I'll announce it again for people who have Dialogue: 0,0:31:26.67,0:31:27.18,Default,,0000,0000,0000,,conflicts. Dialogue: 0,0:31:27.18,0:31:31.76,Default,,0000,0000,0000,,But since it's an out-of-class exam, you need to send me email if you have a conflict. Dialogue: 0,0:31:31.76,0:31:34.87,Default,,0000,0000,0000,,I'll get all the constraints from people who have conflicts and try to schedule an Dialogue: 0,0:31:34.87,0:31:36.81,Default,,0000,0000,0000,,alternate time if there's enough people with conflicts. Dialogue: 0,0:31:36.81,0:31:40.88,Default,,0000,0000,0000,,But 7:00 to 8:30 is when you need to know about the midterm. And to make up for Dialogue: 0,0:31:40.88,0:31:43.42,Default,,0000,0000,0000,,the fact that we have an out-of-class midterm, I actually give you sort of Dialogue: 0,0:31:43.42,0:31:46.77,Default,,0000,0000,0000,,a belated free day, which is the Friday of the week of the midterm, we don't have Dialogue: 0,0:31:46.77,0:31:50.11,Default,,0000,0000,0000,,class to make up for the fact that we made you come to the midterm outside of class. Dialogue: 0,0:31:50.11,0:31:53.31,Default,,0000,0000,0000,,But the midterm's an hour and a half, and we can't compress time. If we could, we'd Dialogue: 0,0:31:53.31,0:31:54.48,Default,,0000,0000,0000,,have different issues. Dialogue: 0,0:31:54.48,0:31:57.31,Default,,0000,0000,0000,,We can't compress time and fit it into a 50 minute class, which is why it's Dialogue: 0,0:31:57.31,0:31:59.40,Default,,0000,0000,0000,,out of class, but you get a free day for it, Dialogue: 0,0:31:59.40,0:32:01.75,Default,,0000,0000,0000,,all right? Last but not least, Dialogue: 0,0:32:01.75,0:32:03.97,Default,,0000,0000,0000,,few things about grading. Dialogue: 0,0:32:03.97,0:32:06.49,Default,,0000,0000,0000,,Grading, one of those things as you might be able to tell from this little board Dialogue: 0,0:32:06.49,0:32:09.62,Default,,0000,0000,0000,,over here or something, if I didn't have to do it, I wouldn't do it Dialogue: 0,0:32:09.62,0:32:13.78,Default,,0000,0000,0000,,because honestly, as corny as this sounds, I just believe in the love of learning. Dialogue: 0,0:32:13.78,0:32:16.55,Default,,0000,0000,0000,,Like, I think if you're passionate about something, you just go do it and you Dialogue: 0,0:32:16.55,0:32:17.63,Default,,0000,0000,0000,,learn it. Dialogue: 0,0:32:17.63,0:32:21.55,Default,,0000,0000,0000,,But I'm na?ve, and so that's not the way learning always works. So sometimes we Dialogue: 0,0:32:21.55,0:32:24.86,Default,,0000,0000,0000,,actually need grading to make sure that learning takes place. And so this is how your Dialogue: 0,0:32:24.86,0:32:26.38,Default,,0000,0000,0000,,grade breaks down: Dialogue: 0,0:32:26.38,0:32:30.76,Default,,0000,0000,0000,,Forty-five percent of your grade is on the programming assignments, okay? Dialogue: 0,0:32:30.76,0:32:34.74,Default,,0000,0000,0000,,Fifteen percent is the midterm, which we'll just call the mid because we like to Dialogue: 0,0:32:34.74,0:32:36.38,Default,,0000,0000,0000,,abbreviate everything. Dialogue: 0,0:32:36.38,0:32:41.02,Default,,0000,0000,0000,,Thirty percent is the final. It's a three-hour final exam in the regular final Dialogue: 0,0:32:41.02,0:32:42.53,Default,,0000,0000,0000,,time slot for this class. Dialogue: 0,0:32:42.53,0:32:45.62,Default,,0000,0000,0000,,If you think or are under the delusion that you should take two Dialogue: 0,0:32:45.62,0:32:47.27,Default,,0000,0000,0000,,classes at the same time, Dialogue: 0,0:32:47.27,0:32:50.27,Default,,0000,0000,0000,,that's a bad idea because their final exams are at the same time, Dialogue: 0,0:32:50.27,0:32:54.35,Default,,0000,0000,0000,,okay? So you should not take two classes as the same time Dialogue: 0,0:32:54.35,0:32:57.65,Default,,0000,0000,0000,,because our final exam is scheduled for - I believe it's December 13, which Dialogue: 0,0:32:57.65,0:32:58.08,Default,,0000,0000,0000,,is a Dialogue: 0,0:32:58.08,0:33:01.73,Default,,0000,0000,0000,,Thursday, 12:15 to 3:15. That's the regular final exam slot for Dialogue: 0,0:33:01.73,0:33:05.21,Default,,0000,0000,0000,,this class. And any other class at the same time will conflict with that slot. Thirty Dialogue: 0,0:33:05.21,0:33:08.56,Default,,0000,0000,0000,,percent of your grade is the final. And that, if you add it all up, Dialogue: 0,0:33:08.56,0:33:12.59,Default,,0000,0000,0000,,it's not just that I'm bad with math. It's because 10 percent of your grade is actually Dialogue: 0,0:33:12.59,0:33:16.13,Default,,0000,0000,0000,,participation. And this is things like Dialogue: 0,0:33:16.13,0:33:19.24,Default,,0000,0000,0000,,did you go to your interactive grading sessions? Did you regularly attend Dialogue: 0,0:33:19.24,0:33:22.74,Default,,0000,0000,0000,,section? Did you participate in section? Did you participate in class, right? Dialogue: 0,0:33:22.74,0:33:26.26,Default,,0000,0000,0000,,And so, in order to help you participate in class, Dialogue: 0,0:33:26.26,0:33:29.89,Default,,0000,0000,0000,,there's a little incentive to participate in class, which is sugar in the afternoon. Dialogue: 0,0:33:29.89,0:33:32.98,Default,,0000,0000,0000,,So someone raise their hand. All Dialogue: 0,0:33:32.98,0:33:35.77,Default,,0000,0000,0000,,right. Dialogue: 0,0:33:35.77,0:33:38.22,Default,,0000,0000,0000,,Yeah, sometimes I'm not a good shot. And this will tell you, if you're sitting in Dialogue: 0,0:33:38.22,0:33:43.31,Default,,0000,0000,0000,,the back of the room, I can't throw a Kit Kat back there because they're a little Dialogue: 0,0:33:43.31,0:33:44.60,Default,,0000,0000,0000,, Dialogue: 0,0:33:44.60,0:33:45.28,Default,,0000,0000,0000,,too light. Oh, yeah, sorry. Dialogue: 0,0:33:45.28,0:33:49.28,Default,,0000,0000,0000,,If you sit in the back of the room, the roof prevents me from actually being able to hit Dialogue: 0,0:33:49.28,0:33:53.36,Default,,0000,0000,0000,,you. So if you want the food, come up. But if you ask questions in class, Dialogue: 0,0:33:53.36,0:33:56.77,Default,,0000,0000,0000,,hey, that's a good time. It's just a little way to be able to reward you for Dialogue: 0,0:33:56.77,0:33:58.44,Default,,0000,0000,0000,,actually participating in class Dialogue: 0,0:33:58.44,0:34:01.14,Default,,0000,0000,0000,,or to keep your blood sugar up if you need it, all right? Dialogue: 0,0:34:01.14,0:34:05.01,Default,,0000,0000,0000,,So that's participation. It's 10 percent of your grade, and as a matter of fact, at the end of the quarter, I ask Dialogue: 0,0:34:05.01,0:34:08.60,Default,,0000,0000,0000,,every one of your section leaders to actually tell me how much you participated in class, and Dialogue: 0,0:34:08.60,0:34:11.92,Default,,0000,0000,0000,,some of them just say, "Oh, this person was wonderful. They came every time. They participated. Dialogue: 0,0:34:11.92,0:34:13.13,Default,,0000,0000,0000,,It's just a great thing." Dialogue: 0,0:34:13.13,0:34:15.86,Default,,0000,0000,0000,,And that helps your grade out a lot, okay? Dialogue: 0,0:34:15.86,0:34:17.47,Default,,0000,0000,0000,,Now, the final thing, Dialogue: 0,0:34:17.47,0:34:18.97,Default,,0000,0000,0000,,and as you can kind of tell, Dialogue: 0,0:34:18.97,0:34:21.40,Default,,0000,0000,0000,,most of the time, I'm not the most serious person in the world. I just like Dialogue: 0,0:34:21.40,0:34:24.06,Default,,0000,0000,0000,,to have fun with things, and I think it's important for you to have fun with Dialogue: 0,0:34:24.06,0:34:24.96,Default,,0000,0000,0000,,things. Dialogue: 0,0:34:24.96,0:34:28.28,Default,,0000,0000,0000,,There is just one place where I get real serious, and it's one place where Stanford Dialogue: 0,0:34:28.28,0:34:29.73,Default,,0000,0000,0000,,gets real serious. Dialogue: 0,0:34:29.73,0:34:32.85,Default,,0000,0000,0000,,Anyone wanna guess what that is? Dialogue: 0,0:34:32.85,0:34:35.90,Default,,0000,0000,0000,,Plagiarism and the honor code. As a matter of fact, that's what we call a social. So we Dialogue: 0,0:34:35.90,0:34:38.99,Default,,0000,0000,0000,,had someone down here who got it and then a whole bunch of people who I don't Dialogue: 0,0:34:38.99,0:34:44.97,Default,,0000,0000,0000,,know, so we just spray. All right. Dialogue: 0,0:34:44.97,0:34:47.97,Default,,0000,0000,0000,,So the honor code, Dialogue: 0,0:34:47.97,0:34:50.37,Default,,0000,0000,0000,,in terms of the honor code, the Dialogue: 0,0:34:50.37,0:34:54.56,Default,,0000,0000,0000,,question comes up is what is the honor code all about, and how does that affect working Dialogue: 0,0:34:54.56,0:34:57.61,Default,,0000,0000,0000,,in groups and computer science, etc.? Dialogue: 0,0:34:57.61,0:35:00.06,Default,,0000,0000,0000,,Does that mean we shouldn't talk to each other? Dialogue: 0,0:35:00.06,0:35:03.99,Default,,0000,0000,0000,,No. The answer to all those is no, okay? If you look at Handout No. 4, Dialogue: 0,0:35:03.99,0:35:05.81,Default,,0000,0000,0000,,which is all about the honor code, Dialogue: 0,0:35:05.81,0:35:08.85,Default,,0000,0000,0000,,we encourage you to talk to each other. We encourage you to talk about concepts Dialogue: 0,0:35:08.85,0:35:12.11,Default,,0000,0000,0000,,in the class, talk about different strategies to problems, to think about Dialogue: 0,0:35:12.11,0:35:14.66,Default,,0000,0000,0000,,the ways that you could potentially approach some problem or Dialogue: 0,0:35:14.66,0:35:17.74,Default,,0000,0000,0000,,the way different control constructs when we eventually get to them work in the Dialogue: 0,0:35:17.74,0:35:20.66,Default,,0000,0000,0000,,class. And discussion is perfectly fine, Dialogue: 0,0:35:20.66,0:35:23.73,Default,,0000,0000,0000,,especially among the course staff, but also amongst yourselves. That's a great Dialogue: 0,0:35:23.73,0:35:24.58,Default,,0000,0000,0000,,thing. Dialogue: 0,0:35:24.58,0:35:28.36,Default,,0000,0000,0000,,So where do we draw the line? And we try to make a bright line for where you've Dialogue: 0,0:35:28.36,0:35:31.93,Default,,0000,0000,0000,,crossed the line for the honor code, which is Dialogue: 0,0:35:31.93,0:35:35.32,Default,,0000,0000,0000,,don't share code, Dialogue: 0,0:35:35.32,0:35:36.43,Default,,0000,0000,0000,,plain and simple, Dialogue: 0,0:35:36.43,0:35:38.45,Default,,0000,0000,0000,,in any respect, okay? Dialogue: 0,0:35:38.45,0:35:41.85,Default,,0000,0000,0000,,Don't give a file to someone else that's got your code in it. Don't get code Dialogue: 0,0:35:41.85,0:35:45.23,Default,,0000,0000,0000,,from someone else. Don't look at someone else's printout. Don't give them a Dialogue: 0,0:35:45.23,0:35:45.66,Default,,0000,0000,0000,,printout. Dialogue: 0,0:35:45.66,0:35:49.19,Default,,0000,0000,0000,,If you have two people who are sitting looking at the same screen together, Dialogue: 0,0:35:49.19,0:35:51.16,Default,,0000,0000,0000,,that code can't belong to both of you. Dialogue: 0,0:35:51.16,0:35:52.36,Default,,0000,0000,0000,,It belongs to one of you. Dialogue: 0,0:35:52.36,0:35:56.03,Default,,0000,0000,0000,,I don't know which one, but it becomes an honor code violation. So you shouldn't Dialogue: 0,0:35:56.03,0:35:59.06,Default,,0000,0000,0000,,both - two people shouldn't be staring at the monitor together. Dialogue: 0,0:35:59.06,0:36:02.83,Default,,0000,0000,0000,,If it ever gets to the point where you're looking at someone else's code, that's Dialogue: 0,0:36:02.83,0:36:05.23,Default,,0000,0000,0000,,where you're gonna reach an issue, okay? Dialogue: 0,0:36:05.23,0:36:07.41,Default,,0000,0000,0000,,Discuss as much as you want. That's great. Dialogue: 0,0:36:07.41,0:36:10.43,Default,,0000,0000,0000,,Write your own code. That's all we care about. And you're, like, "Well, what is Dialogue: 0,0:36:10.43,0:36:14.88,Default,,0000,0000,0000,,code, Mehran? What does that word mean?" Code is geek speak for your program, Dialogue: 0,0:36:14.88,0:36:18.08,Default,,0000,0000,0000,,so when you program, the program that you write is what we affectionately refer to Dialogue: 0,0:36:18.08,0:36:19.33,Default,,0000,0000,0000,,as code. Dialogue: 0,0:36:19.33,0:36:23.03,Default,,0000,0000,0000,,And the idea of programming is what we refer to as coding, Dialogue: 0,0:36:23.03,0:36:25.64,Default,,0000,0000,0000,,strangely enough. Computer scientists need to make everything Dialogue: 0,0:36:25.64,0:36:28.16,Default,,0000,0000,0000,,more complicated than it really is so we can Dialogue: 0,0:36:28.16,0:36:31.45,Default,,0000,0000,0000,,get people under the illusion that they should pay us lots of money to do what we do. Dialogue: 0,0:36:31.45,0:36:35.41,Default,,0000,0000,0000,,I mean, you're, like, "Oh, I just write programs." And they're, like, "Oh, yeah, I should pay you Dialogue: 0,0:36:35.41,0:36:38.35,Default,,0000,0000,0000,,half." And you're, like, "No, no, no. I write code." And they're, like, "Oh, yeah." Suddenly, it's much more Dialogue: 0,0:36:38.35,0:36:40.01,Default,,0000,0000,0000,,impressive. So Dialogue: 0,0:36:40.01,0:36:40.92,Default,,0000,0000,0000,,don't share code. Dialogue: 0,0:36:40.92,0:36:44.78,Default,,0000,0000,0000,,The other thing is if you talk to other people, like if you have a study group to Dialogue: 0,0:36:44.78,0:36:48.22,Default,,0000,0000,0000,,talk about solution approaches or you go, let's say, talk to the TA or your section Dialogue: 0,0:36:48.22,0:36:48.65,Default,,0000,0000,0000,,leader Dialogue: 0,0:36:48.65,0:36:51.32,Default,,0000,0000,0000,,to how you should approach a problem, and they give you a lot of hints as to how Dialogue: 0,0:36:51.32,0:36:52.74,Default,,0000,0000,0000,,to do it, Dialogue: 0,0:36:52.74,0:36:55.53,Default,,0000,0000,0000,,cite collaboration. Dialogue: 0,0:36:55.53,0:37:00.12,Default,,0000,0000,0000,,So cite and collaboration gets you out of trouble. Any collaboration that you cite Dialogue: 0,0:37:00.12,0:37:03.25,Default,,0000,0000,0000,,you cannot be held responsible for under the honor code. Dialogue: 0,0:37:03.25,0:37:06.95,Default,,0000,0000,0000,,You can actually copy someone else's program and say, "I copied this program Dialogue: 0,0:37:06.95,0:37:08.23,Default,,0000,0000,0000,,from Mary Smith." Dialogue: 0,0:37:08.23,0:37:09.75,Default,,0000,0000,0000,,And I'll look at that and say, Dialogue: 0,0:37:09.75,0:37:12.60,Default,,0000,0000,0000,,"They cited it," and it will warm the cockles of my heart. Dialogue: 0,0:37:12.60,0:37:15.77,Default,,0000,0000,0000,,And Mary Smith will get full credit, and you'll get a zero because you copied your Dialogue: 0,0:37:15.77,0:37:17.22,Default,,0000,0000,0000,,program from Mary Smith, Dialogue: 0,0:37:17.22,0:37:22.29,Default,,0000,0000,0000,,but it's not an honor code violation because you cited the work, okay? So Dialogue: 0,0:37:22.29,0:37:26.93,Default,,0000,0000,0000,,the bottom line is keep yourself safe and cite your collaborations. And I Dialogue: 0,0:37:26.93,0:37:29.45,Default,,0000,0000,0000,,guarantee you most of the time, you'll be just fine. Dialogue: 0,0:37:29.45,0:37:32.44,Default,,0000,0000,0000,,Now, you might wonder why do I make such a big deal about this. And the reason I Dialogue: 0,0:37:32.44,0:37:35.47,Default,,0000,0000,0000,,make a big deal about this is for a while, thankfully it's not true anymore, but Dialogue: 0,0:37:35.47,0:37:36.36,Default,,0000,0000,0000,,for a while, Dialogue: 0,0:37:36.36,0:37:39.89,Default,,0000,0000,0000,,the computer science department actually had more honor code violations than the Dialogue: 0,0:37:39.89,0:37:43.12,Default,,0000,0000,0000,,rest of the university combined. Dialogue: 0,0:37:43.12,0:37:45.52,Default,,0000,0000,0000,,Take everything else in the university, put them all together, they were like over Dialogue: 0,0:37:45.52,0:37:48.81,Default,,0000,0000,0000,,here. And we're, like, we're computer science, Dialogue: 0,0:37:48.81,0:37:52.45,Default,,0000,0000,0000,,which is not a fun distinction to have, let me tell you. Dialogue: 0,0:37:52.45,0:37:55.37,Default,,0000,0000,0000,,And you might wonder why is that? Is that because computer science people are just Dialogue: 0,0:37:55.37,0:37:58.03,Default,,0000,0000,0000,,mischievous and dishonest? No. Dialogue: 0,0:37:58.03,0:38:01.90,Default,,0000,0000,0000,,It's because it's easier to catch honor code violations in computer science. We have a Dialogue: 0,0:38:01.90,0:38:05.12,Default,,0000,0000,0000,,whole bunch of tools that allow us - then we take all your programs and we run them through Dialogue: 0,0:38:05.12,0:38:07.81,Default,,0000,0000,0000,,this tool, and it compares them not only to everyone else in here, but, like, Dialogue: 0,0:38:07.81,0:38:11.12,Default,,0000,0000,0000,,to everyone from the last, like, X years where X is the large number of people who've Dialogue: 0,0:38:11.12,0:38:13.21,Default,,0000,0000,0000,,ever gone through the classes, right? Dialogue: 0,0:38:13.21,0:38:16.59,Default,,0000,0000,0000,,And it's an extremely good tool from finding where honor code violations Dialogue: 0,0:38:16.59,0:38:17.03,Default,,0000,0000,0000,,happen, Dialogue: 0,0:38:17.03,0:38:18.91,Default,,0000,0000,0000,,from where they don't. And it Dialogue: 0,0:38:18.91,0:38:23.14,Default,,0000,0000,0000,,doesn't find spurious violations. To be honest, I've never lost an honor code Dialogue: 0,0:38:23.14,0:38:24.35,Default,,0000,0000,0000,,case. When I Dialogue: 0,0:38:24.35,0:38:26.48,Default,,0000,0000,0000,,find an honor code case, Dialogue: 0,0:38:26.48,0:38:27.63,Default,,0000,0000,0000,,it is blatant. Dialogue: 0,0:38:27.63,0:38:30.11,Default,,0000,0000,0000,,And you take it to judicial affairs, and they look at it, and they're, like, Dialogue: 0,0:38:30.11,0:38:31.27,Default,,0000,0000,0000,,yeah, this is blatant. Dialogue: 0,0:38:31.27,0:38:34.32,Default,,0000,0000,0000,,And I take it to the student, and every student I've ever confronted them Dialogue: 0,0:38:34.32,0:38:38.14,Default,,0000,0000,0000,,with never said, "No, no, no. I didn't cheat." They said, "You caught me," okay? Dialogue: 0,0:38:38.14,0:38:41.64,Default,,0000,0000,0000,,So it's blatant. It's not like, oh, there's some little line in it, "Oh, am I gonna need to Dialogue: 0,0:38:41.64,0:38:43.64,Default,,0000,0000,0000,,worry about an honor code violation?" Dialogue: 0,0:38:43.64,0:38:47.25,Default,,0000,0000,0000,,Remember those rules, you have nothing to worry about in this class. It's people who go and, Dialogue: 0,0:38:47.25,0:38:50.75,Default,,0000,0000,0000,,like, fish out printouts from the recycle bins and copy other people's Dialogue: 0,0:38:50.75,0:38:53.33,Default,,0000,0000,0000,,code that are the people we catch, right? It's blatant cheating Dialogue: 0,0:38:53.33,0:38:54.18,Default,,0000,0000,0000,,that we catch. Dialogue: 0,0:38:54.18,0:38:55.09,Default,,0000,0000,0000,,But we catch it. Dialogue: 0,0:38:55.09,0:38:59.30,Default,,0000,0000,0000,,We catch it all the time. So I hope, I pray it doesn't happen in this class. Dialogue: 0,0:38:59.30,0:39:02.04,Default,,0000,0000,0000,,But the reason I make a big deal about it is historically if I look at the Dialogue: 0,0:39:02.04,0:39:05.63,Default,,0000,0000,0000,,evidence, it happens and we catch it. And when we catch it, we're required by the Dialogue: 0,0:39:05.63,0:39:09.09,Default,,0000,0000,0000,,university to prosecute. And I feel bad because usually it's someone who just made a Dialogue: 0,0:39:09.09,0:39:10.18,Default,,0000,0000,0000,,bad call, like, Dialogue: 0,0:39:10.18,0:39:13.29,Default,,0000,0000,0000,,they were up way too late the night before working on something else, and Dialogue: 0,0:39:13.29,0:39:16.91,Default,,0000,0000,0000,,they're not thinking straight. And rather than just taking a late day or turning in their Dialogue: 0,0:39:16.91,0:39:19.61,Default,,0000,0000,0000,,assignment late and getting a slight penalty on it beyond their two free late Dialogue: 0,0:39:19.61,0:39:20.37,Default,,0000,0000,0000,,days, Dialogue: 0,0:39:20.37,0:39:23.47,Default,,0000,0000,0000,,they decide to cheat. And that's just always the wrong call, okay? Dialogue: 0,0:39:23.47,0:39:26.88,Default,,0000,0000,0000,,So you just don't wanna put yourself in that situation. So I get real serious Dialogue: 0,0:39:26.88,0:39:31.78,Default,,0000,0000,0000,,about it for a moment, and hopefully it won't be an issue and we can just kind of go on, okay? Dialogue: 0,0:39:31.78,0:39:35.09,Default,,0000,0000,0000,,So with that said, that's a whole bunch of logistical stuff. Dialogue: 0,0:39:35.09,0:39:38.11,Default,,0000,0000,0000,,Any questions about the logistics of this class or anything I just talked Dialogue: 0,0:39:38.11,0:39:42.93,Default,,0000,0000,0000,,about? Uh huh? You had briefly mentioned the late penalty. Dialogue: 0,0:39:42.93,0:39:44.41,Default,,0000,0000,0000,,Oh, the late penalty, good point. Dialogue: 0,0:39:44.41,0:39:46.40,Default,,0000,0000,0000,,So remember our little bucket scale. Dialogue: 0,0:39:46.40,0:39:50.35,Default,,0000,0000,0000,,If you go beyond your two free late days, every day you turn in an assignment late beyond Dialogue: 0,0:39:50.35,0:39:52.32,Default,,0000,0000,0000,,those, it drops down one bucket. Dialogue: 0,0:39:52.32,0:39:55.55,Default,,0000,0000,0000,,So let's say you already used your two free late days on Assignment No. 1. And on Dialogue: 0,0:39:55.55,0:39:58.31,Default,,0000,0000,0000,,Assignment No. 2, you turned in something one day late and you would have gotten a Dialogue: 0,0:39:58.31,0:40:00.18,Default,,0000,0000,0000,,check normally, it becomes a check minus. Dialogue: 0,0:40:00.18,0:40:06.11,Default,,0000,0000,0000,,So that's how it is. It's one bucket per late day beyond your two free ones. Uh huh? Are the sections first come, first served? Dialogue: 0,0:40:06.11,0:40:09.31,Default,,0000,0000,0000,,Yeah, the sign-ups, well, they take into consideration your preference, but Dialogue: 0,0:40:09.31,0:40:12.37,Default,,0000,0000,0000,,part of your preference is to do the match is first come, first served. Dialogue: 0,0:40:12.37,0:40:14.90,Default,,0000,0000,0000,,So you wanna sign up early. Dialogue: 0,0:40:14.90,0:40:15.78,Default,,0000,0000,0000,,Oh, Dialogue: 0,0:40:15.78,0:40:17.52,Default,,0000,0000,0000,,thanks for your honesty. As a matter of fact, Dialogue: 0,0:40:17.52,0:40:20.70,Default,,0000,0000,0000,,I dig honesty, all right? Dialogue: 0,0:40:20.70,0:40:23.68,Default,,0000,0000,0000,,Any other questions? Dialogue: 0,0:40:23.68,0:40:29.06,Default,,0000,0000,0000,,It's just honesty's cool. Uh huh? How much time should we plan on studying [inaudible]? Dialogue: 0,0:40:29.06,0:40:32.04,Default,,0000,0000,0000,,Oh, good question. How much time should you plan? And this is something that I say for Dialogue: 0,0:40:32.04,0:40:34.47,Default,,0000,0000,0000,,classes in general at Stanford, which is not always true, Dialogue: 0,0:40:34.47,0:40:37.56,Default,,0000,0000,0000,,which is take the number of units that a class is, Dialogue: 0,0:40:37.56,0:40:43.13,Default,,0000,0000,0000,,multiply it by three. That's how many hours you'll spend per week in that class, total, Dialogue: 0,0:40:43.13,0:40:44.23,Default,,0000,0000,0000,,on average. Dialogue: 0,0:40:44.23,0:40:47.72,Default,,0000,0000,0000,,So what that means is in 106A, a 5 unit class, you multiply by 3, you Dialogue: 0,0:40:47.72,0:40:49.03,Default,,0000,0000,0000,,get 15. Dialogue: 0,0:40:49.03,0:40:52.39,Default,,0000,0000,0000,,Five of those hours are roughly spent between class, section, interactive grading, Dialogue: 0,0:40:52.39,0:40:53.29,Default,,0000,0000,0000,,other stuff. Dialogue: 0,0:40:53.29,0:40:57.05,Default,,0000,0000,0000,,That means on average about ten hours a week will be spent on your assignments Dialogue: 0,0:40:57.05,0:40:58.31,Default,,0000,0000,0000,,in this class. Dialogue: 0,0:40:58.31,0:41:01.69,Default,,0000,0000,0000,,Again, that's an average. Sometimes when I go to computer science conferences, I sit there and joke Dialogue: 0,0:41:01.69,0:41:04.38,Default,,0000,0000,0000,,around with plans. And we're, like, "Oh, how long did your assignments take?" Dialogue: 0,0:41:04.38,0:41:07.62,Default,,0000,0000,0000,,And I say, "Oh, on average, ten hours." And what I really mean when I say on average 10 Dialogue: 0,0:41:07.62,0:41:07.100,Default,,0000,0000,0000,,hours Dialogue: 0,0:41:07.100,0:41:10.86,Default,,0000,0000,0000,,is they take between 3 and 45, Dialogue: 0,0:41:10.86,0:41:14.06,Default,,0000,0000,0000,,okay? It's a large variance event, right? Dialogue: 0,0:41:14.06,0:41:17.44,Default,,0000,0000,0000,,Ten is the average. Some people take a really long time. Some people get through it Dialogue: 0,0:41:17.44,0:41:21.36,Default,,0000,0000,0000,,really quickly, but that's about the average you can plan for. Uh huh? Dialogue: 0,0:41:21.36,0:41:27.60,Default,,0000,0000,0000,,Another question? [Inaudible] late days [inaudible] class days? Dialogue: 0,0:41:27.60,0:41:32.01,Default,,0000,0000,0000,,Yeah, all late days are class days, so the free ones - Dialogue: 0,0:41:32.01,0:41:35.58,Default,,0000,0000,0000,,the halfway mark's really my reach. That's about it. Dialogue: 0,0:41:35.58,0:41:39.90,Default,,0000,0000,0000,,All right. So I do wanna give you your very beginning of an introduction to Dialogue: 0,0:41:39.90,0:41:42.78,Default,,0000,0000,0000,,programming before we sort of break for the day. How Dialogue: 0,0:41:42.78,0:41:45.88,Default,,0000,0000,0000,,are we doing on time? Dialogue: 0,0:41:45.88,0:41:49.11,Default,,0000,0000,0000,,And so in order to kind of see this, Dialogue: 0,0:41:49.11,0:41:51.74,Default,,0000,0000,0000,,there's a few things that we wanna keep in mind. Actually, let me show you a Dialogue: 0,0:41:51.74,0:41:54.99,Default,,0000,0000,0000,,little picture, okay? Dialogue: 0,0:41:54.99,0:41:56.83,Default,,0000,0000,0000,,Sometimes Dialogue: 0,0:41:56.83,0:41:59.24,Default,,0000,0000,0000,,when we talk about writing programs, Dialogue: 0,0:41:59.24,0:42:01.54,Default,,0000,0000,0000,,we talk about debugging programs, Dialogue: 0,0:42:01.54,0:42:04.73,Default,,0000,0000,0000,,right? How many people ever heard the term debugging or bugs in programs? Dialogue: 0,0:42:04.73,0:42:08.21,Default,,0000,0000,0000,,A bug in a program is an error in a program, so sometimes when you hear us Dialogue: 0,0:42:08.21,0:42:12.68,Default,,0000,0000,0000,,say, "Oh, come see," like, your section leader to help debug or see the helpers in LaIR. Dialogue: 0,0:42:12.68,0:42:16.04,Default,,0000,0000,0000,,That's another thing. In the Tresidder computer cluster is the LaIR. Dialogue: 0,0:42:16.04,0:42:18.58,Default,,0000,0000,0000,,It's a computer cluster that we have helpers there to help you get through Dialogue: 0,0:42:18.58,0:42:21.19,Default,,0000,0000,0000,,this class. What is it? Dialogue: 0,0:42:21.19,0:42:21.98,Default,,0000,0000,0000,,Sunday through Dialogue: 0,0:42:21.98,0:42:26.67,Default,,0000,0000,0000,,Thursday, every week, from around 2:00 in the afternoon 'til midnight every day, okay, Dialogue: 0,0:42:26.67,0:42:29.67,Default,,0000,0000,0000,,to help you get through the class. So that's a good place if, you know, you can Dialogue: 0,0:42:29.67,0:42:32.56,Default,,0000,0000,0000,,work in your dorm room certainly, but if you also want help, go to the Tresidder Dialogue: 0,0:42:32.56,0:42:36.15,Default,,0000,0000,0000,,computer cluster, and there will be helpers there. There's a little queue you sign up for Dialogue: 0,0:42:36.15,0:42:38.59,Default,,0000,0000,0000,,to get help, and that's a great place, and it's all explained in Handout Dialogue: 0,0:42:38.59,0:42:39.35,Default,,0000,0000,0000,,No. 1, Dialogue: 0,0:42:39.35,0:42:41.20,Default,,0000,0000,0000,,but that's just something to keep in mind. Dialogue: 0,0:42:41.20,0:42:44.51,Default,,0000,0000,0000,,Where the term debugging comes from, it turns out this is an apocryphal story, but I'll tell Dialogue: 0,0:42:44.51,0:42:45.43,Default,,0000,0000,0000,,you anyway. Dialogue: 0,0:42:45.43,0:42:48.68,Default,,0000,0000,0000,,Back in the days of yore, in 1945 actually, there was a computer called the Dialogue: 0,0:42:48.68,0:42:52.08,Default,,0000,0000,0000,,Mark II at Harvard. And there was a woman named Grace Murray Hopper. Anyone ever Dialogue: 0,0:42:52.08,0:42:54.17,Default,,0000,0000,0000,,heard of Grace Murray Hopper? Dialogue: 0,0:42:54.17,0:42:58.33,Default,,0000,0000,0000,,A few folks. She was actually the first woman who was an admiral in the navy. Dialogue: 0,0:42:58.33,0:43:01.86,Default,,0000,0000,0000,,And she was also one of the very early pioneers of computer programming. She did Dialogue: 0,0:43:01.86,0:43:05.07,Default,,0000,0000,0000,,a lot of computer programming when she was actually a captain, and she was stationed Dialogue: 0,0:43:05.07,0:43:08.83,Default,,0000,0000,0000,,at Harvard as part of some sort of navy thing. I don't know why, but that's what Dialogue: 0,0:43:08.83,0:43:09.44,Default,,0000,0000,0000,,happened. Dialogue: 0,0:43:09.44,0:43:12.04,Default,,0000,0000,0000,,And they had this huge computer there, and they were noticing the computer was Dialogue: 0,0:43:12.04,0:43:14.90,Default,,0000,0000,0000,,on the fritz, and they couldn't understand what was wrong. And this is one of these Dialogue: 0,0:43:14.90,0:43:17.97,Default,,0000,0000,0000,,big old machines in the days of yore that has vacuum tubes and stuff inside it. Dialogue: 0,0:43:17.97,0:43:21.08,Default,,0000,0000,0000,,So they walked inside the computer, right, because then you could actually open it up Dialogue: 0,0:43:21.08,0:43:23.01,Default,,0000,0000,0000,,and walk inside your computer. Dialogue: 0,0:43:23.01,0:43:25.25,Default,,0000,0000,0000,,And they saw this, Dialogue: 0,0:43:25.25,0:43:27.89,Default,,0000,0000,0000,,and I don't know if you can see that, but that's a moth. Dialogue: 0,0:43:27.89,0:43:31.86,Default,,0000,0000,0000,,It was a moth that had sort of given its life to be immortalized because it had actually Dialogue: 0,0:43:31.86,0:43:35.03,Default,,0000,0000,0000,,shorted out across two relays in the computer Dialogue: 0,0:43:35.03,0:43:36.58,Default,,0000,0000,0000,,and was causing these sort of Dialogue: 0,0:43:36.58,0:43:39.83,Default,,0000,0000,0000,,errors to happen on the fritz. And so they took the bug out, and once Dialogue: 0,0:43:39.83,0:43:43.38,Default,,0000,0000,0000,,they actually plucked this little charred bug out of there, the computer started Dialogue: 0,0:43:43.38,0:43:47.91,Default,,0000,0000,0000,,working fine again, and she taped it in her log book. And this log book's actually Dialogue: 0,0:43:47.91,0:43:51.59,Default,,0000,0000,0000,,preserved in the Smithsonian Institution now, which is where all this comes Dialogue: 0,0:43:51.59,0:43:54.53,Default,,0000,0000,0000,,from. Here's all the standard disclaimer information: "Image used under fair use for Dialogue: 0,0:43:54.53,0:43:58.08,Default,,0000,0000,0000,,education purposes. Use of this image is exempt from Creative Commons Dialogue: 0,0:43:58.08,0:43:59.88,Default,,0000,0000,0000,,and other licenses," just so you know. Dialogue: 0,0:43:59.88,0:44:02.04,Default,,0000,0000,0000,,Now the lawyers are happy. Dialogue: 0,0:44:02.04,0:44:06.12,Default,,0000,0000,0000,,But this is where we think of sort of the modern term debugging actually came from. Dialogue: 0,0:44:06.12,0:44:09.44,Default,,0000,0000,0000,,Now, it turns out the actual story is that the term debugging came from the Dialogue: 0,0:44:09.44,0:44:11.18,Default,,0000,0000,0000,,1800s, in the late 1800s Dialogue: 0,0:44:11.18,0:44:15.09,Default,,0000,0000,0000,,from mechanical devices. People actually referred to debugging as fixing mechanical Dialogue: 0,0:44:15.09,0:44:15.74,Default,,0000,0000,0000,,devices. Dialogue: 0,0:44:15.74,0:44:20.04,Default,,0000,0000,0000,,But this is kind of the apocryphal story for how it comes up in computer science. Now, Dialogue: 0,0:44:20.04,0:44:21.85,Default,,0000,0000,0000,,with that said, Dialogue: 0,0:44:21.85,0:44:25.11,Default,,0000,0000,0000,,what is the platform in which you're gonna sort of do your first debugging or Dialogue: 0,0:44:25.11,0:44:28.06,Default,,0000,0000,0000,,your first work on? We talked about Java, but in fact in this class, we're not Dialogue: 0,0:44:28.06,0:44:29.37,Default,,0000,0000,0000,,gonna start with Java. Dialogue: 0,0:44:29.37,0:44:32.78,Default,,0000,0000,0000,,We're gonna start with something even sort of simpler than Java because as I Dialogue: 0,0:44:32.78,0:44:36.26,Default,,0000,0000,0000,,mentioned, sometimes what happens in computer science is people learn all the features Dialogue: 0,0:44:36.26,0:44:39.75,Default,,0000,0000,0000,,of some language. And they think just knowing the language makes them a good Dialogue: 0,0:44:39.75,0:44:40.68,Default,,0000,0000,0000,,software engineer. Dialogue: 0,0:44:40.68,0:44:43.66,Default,,0000,0000,0000,,And they get so worried about all the features of the language Dialogue: 0,0:44:43.66,0:44:46.07,Default,,0000,0000,0000,,that they don't kind of think about the big picture. Dialogue: 0,0:44:46.07,0:44:49.26,Default,,0000,0000,0000,,And so there was a guy named Rich Pattis, who oddly enough was actually a grad Dialogue: 0,0:44:49.26,0:44:51.25,Default,,0000,0000,0000,,student at the time at Dialogue: 0,0:44:51.25,0:44:51.86,Default,,0000,0000,0000,,Stanford, Dialogue: 0,0:44:51.86,0:44:55.21,Default,,0000,0000,0000,,and he said, "You know what? If we're gonna teach computer science, when we first start out, why don't Dialogue: 0,0:44:55.21,0:44:58.60,Default,,0000,0000,0000,,we have people not worry about all of the different Dialogue: 0,0:44:58.60,0:45:00.78,Default,,0000,0000,0000,,commands of the language and all the different things they can do? Dialogue: 0,0:45:00.78,0:45:04.39,Default,,0000,0000,0000,,Let's start with something really simple so you can learn all the commands Dialogue: 0,0:45:04.39,0:45:08.17,Default,,0000,0000,0000,,real quick. And then you've mastered everything there is to master about that Dialogue: 0,0:45:08.17,0:45:11.71,Default,,0000,0000,0000,,language, and you can focus on the software engineering concepts." And it turns out to Dialogue: 0,0:45:11.71,0:45:15.05,Default,,0000,0000,0000,,be a brilliant idea, which has actually been adopted by a bunch of people. Dialogue: 0,0:45:15.05,0:45:19.41,Default,,0000,0000,0000,,And so Rich, who's a wonderfully friendly guy - sometime if we get him to Dialogue: 0,0:45:19.41,0:45:22.82,Default,,0000,0000,0000,,come to Stanford, I'll introduce you; he's just very nice - Dialogue: 0,0:45:22.82,0:45:27.32,Default,,0000,0000,0000,,came up with this thing called Karel the Robot. And Dialogue: 0,0:45:27.32,0:45:29.26,Default,,0000,0000,0000,,the term, "Karel" Dialogue: 0,0:45:29.26,0:45:31.75,Default,,0000,0000,0000,,actually comes from Dialogue: 0,0:45:31.75,0:45:36.31,Default,,0000,0000,0000,,Karel Capek. Dialogue: 0,0:45:36.31,0:45:40.04,Default,,0000,0000,0000,,Anyone know who he is? Oh, free candy. Uh huh? He coined the term, Dialogue: 0,0:45:40.04,0:45:42.95,Default,,0000,0000,0000,,"robot." Dialogue: 0,0:45:42.95,0:45:45.96,Default,,0000,0000,0000,,He coined the term, "robot." He was a Czech playwright who actually wrote a play Dialogue: 0,0:45:45.96,0:45:48.20,Default,,0000,0000,0000,,called, "RUR," Dialogue: 0,0:45:48.20,0:45:52.41,Default,,0000,0000,0000,,which was about robots. And the word robot actually comes from a Czech word, the Dialogue: 0,0:45:52.41,0:45:53.97,Default,,0000,0000,0000,,Czech word for work. Dialogue: 0,0:45:53.97,0:45:57.94,Default,,0000,0000,0000,,And so the robot is named after Dialogue: 0,0:45:57.94,0:46:01.34,Default,,0000,0000,0000,,Karel. And some people say Karl, which is kind of actually closer to I believe if - I Dialogue: 0,0:46:01.34,0:46:03.97,Default,,0000,0000,0000,,don't know if there's anyone who speaks Czech in the room - but closer to the Dialogue: 0,0:46:03.97,0:46:06.44,Default,,0000,0000,0000,,actual pronunciation. But we say Karel these days because it's kind of like Dialogue: 0,0:46:06.44,0:46:07.91,Default,,0000,0000,0000,,gender neutral, okay? Dialogue: 0,0:46:07.91,0:46:09.87,Default,,0000,0000,0000,,And so Karel the Robot Dialogue: 0,0:46:09.87,0:46:13.32,Default,,0000,0000,0000,,is basically this robot that lives in a really simple world. And so I'll show you Dialogue: 0,0:46:13.32,0:46:16.29,Default,,0000,0000,0000,,all that you can meet Karel the Robot. He's friendly; he's fun. Dialogue: 0,0:46:16.29,0:46:18.59,Default,,0000,0000,0000,,I'll show you Karel the Robot. Dialogue: 0,0:46:18.59,0:46:21.24,Default,,0000,0000,0000,, Dialogue: 0,0:46:21.24,0:46:25.97,Default,,0000,0000,0000,,So we gotta get Karel running. He's at the factory. He's getting souped up. We're energizing Karel. Dialogue: 0,0:46:25.97,0:46:29.42,Default,,0000,0000,0000,,You gotta add some color to it. Otherwise - Dialogue: 0,0:46:29.42,0:46:31.25,Default,,0000,0000,0000,,all right. Dialogue: 0,0:46:31.25,0:46:34.56,Default,,0000,0000,0000,,We're begging for him. Come on, Karel. Dialogue: 0,0:46:34.56,0:46:37.46,Default,,0000,0000,0000,,There he is. Oh, Dialogue: 0,0:46:37.46,0:46:41.54,Default,,0000,0000,0000,,yeah. Dialogue: 0,0:46:41.54,0:46:45.26,Default,,0000,0000,0000,,That's Karel the Robot. He looks like one of the old Macintoshes if you remember the original Dialogue: 0,0:46:45.26,0:46:48.29,Default,,0000,0000,0000,,Macintoshes that look like a lunch pail, except he's got legs. Dialogue: 0,0:46:48.29,0:46:51.79,Default,,0000,0000,0000,,One sticks out his back. That's just the way it is. Dialogue: 0,0:46:51.79,0:46:56.82,Default,,0000,0000,0000,,And the way Karel works is he lives in a grid. To you, it may not be exciting, but to Dialogue: 0,0:46:56.82,0:46:58.63,Default,,0000,0000,0000,,Karel, it's way exciting. Dialogue: 0,0:46:58.63,0:47:03.18,Default,,0000,0000,0000,,So Karel lives in this little grid, and the way the grid works is there are streets and Dialogue: 0,0:47:03.18,0:47:06.79,Default,,0000,0000,0000,,avenues in the grid. Streets run horizontally, so this is First Street, Dialogue: 0,0:47:06.79,0:47:08.43,Default,,0000,0000,0000,,Second Street, Third Street. Dialogue: 0,0:47:08.43,0:47:11.56,Default,,0000,0000,0000,,And then over here, we have avenues, First Avenue, Second Avenue, Third Dialogue: 0,0:47:11.56,0:47:14.75,Default,,0000,0000,0000,,Avenue, Fourth Avenue, Fifth Avenue. It's kind of like Karel lives in Manhattan if you wanna Dialogue: 0,0:47:14.75,0:47:16.34,Default,,0000,0000,0000,,think about it that way, okay? Dialogue: 0,0:47:16.34,0:47:19.75,Default,,0000,0000,0000,,So Karel always is on one of these corners. So right now, he's at the corner of Dialogue: 0,0:47:19.75,0:47:22.79,Default,,0000,0000,0000,,First Street and First Avenue, or we just refer to it as 1 1 if you wanna Dialogue: 0,0:47:22.79,0:47:25.13,Default,,0000,0000,0000,,think about sort of Cartesian coordinates, right? But Dialogue: 0,0:47:25.13,0:47:26.78,Default,,0000,0000,0000,,just think of them as streets and avenues. Dialogue: 0,0:47:26.78,0:47:28.61,Default,,0000,0000,0000,,That's where Karel lives. Dialogue: 0,0:47:28.61,0:47:32.28,Default,,0000,0000,0000,,And Karel can move around in this world. There's a bunch of things that Karel can do. Dialogue: 0,0:47:32.28,0:47:33.89,Default,,0000,0000,0000,,He can take steps forward. Dialogue: 0,0:47:33.89,0:47:36.94,Default,,0000,0000,0000,,He can turn around to face different directions, and he can sense certain Dialogue: 0,0:47:36.94,0:47:38.29,Default,,0000,0000,0000,,things about his world. Dialogue: 0,0:47:38.29,0:47:41.40,Default,,0000,0000,0000,,So there's some things that exist in Karel's world, okay? Dialogue: 0,0:47:41.40,0:47:45.34,Default,,0000,0000,0000,,Things like walls that Karel cannot move through, right, so his world has Dialogue: 0,0:47:45.34,0:47:48.74,Default,,0000,0000,0000,,walls all around it that he can't go through, so he can't fall off the end of the Dialogue: 0,0:47:48.74,0:47:49.14,Default,,0000,0000,0000,,world. Dialogue: 0,0:47:49.14,0:47:52.63,Default,,0000,0000,0000,,And there's other walls like this one if Karel were over here, he can't step through Dialogue: 0,0:47:52.63,0:47:54.17,Default,,0000,0000,0000,,that wall. Dialogue: 0,0:47:54.17,0:47:57.77,Default,,0000,0000,0000,,There's also something referred to as beepers in Karel's world. And what a Dialogue: 0,0:47:57.77,0:48:00.49,Default,,0000,0000,0000,,beeper is, is it's like a big diamond, Dialogue: 0,0:48:00.49,0:48:03.91,Default,,0000,0000,0000,,okay? But what a beeper really is, is basically just some marker that he puts in Dialogue: 0,0:48:03.91,0:48:06.51,Default,,0000,0000,0000,,the world. You can think of a beeper like a piece of candy. Dialogue: 0,0:48:06.51,0:48:10.53,Default,,0000,0000,0000,,And Karel just goes around, like, putting pieces of candy in the world. As a matter of fact, not Dialogue: 0,0:48:10.53,0:48:12.100,Default,,0000,0000,0000,,only does he put pieces of candy in the world, Dialogue: 0,0:48:12.100,0:48:17.95,Default,,0000,0000,0000,,he carries around a whole bag of candy. So he has a beeper bag with him, and Dialogue: 0,0:48:17.95,0:48:21.10,Default,,0000,0000,0000,,sometimes that bag has a whole bunch of beepers in it; sometimes it only has one Dialogue: 0,0:48:21.10,0:48:22.32,Default,,0000,0000,0000,,beeper; sometimes, Dialogue: 0,0:48:22.32,0:48:25.100,Default,,0000,0000,0000,,it's sad Karel, and he has no beepers. But he's still got the bag. Dialogue: 0,0:48:25.100,0:48:28.80,Default,,0000,0000,0000,,There just don't happen to be any beepers in it. So he can potentially, if he Dialogue: 0,0:48:28.80,0:48:32.63,Default,,0000,0000,0000,,come across a beeper in his world, he can pick it up and put it in his bag, Dialogue: 0,0:48:32.63,0:48:35.51,Default,,0000,0000,0000,,or he can take, if he's got beepers in his bag, he can take them out of his bag Dialogue: 0,0:48:35.51,0:48:37.34,Default,,0000,0000,0000,,and put them places in the world. Dialogue: 0,0:48:37.34,0:48:40.86,Default,,0000,0000,0000,,And corners in the world can have either zero - if they have no beepers, they just appear Dialogue: 0,0:48:40.86,0:48:41.92,Default,,0000,0000,0000,,like a little dot - Dialogue: 0,0:48:41.92,0:48:44.06,Default,,0000,0000,0000,,or one or more beepers Dialogue: 0,0:48:44.06,0:48:47.20,Default,,0000,0000,0000,,on them that Karel can potentially pick up, okay? Dialogue: 0,0:48:47.20,0:48:51.23,Default,,0000,0000,0000,,So any questions about beepers or Karel having a little bag of beepers? Dialogue: 0,0:48:51.23,0:48:52.34,Default,,0000,0000,0000,,And that's it. Dialogue: 0,0:48:52.34,0:48:53.93,Default,,0000,0000,0000,,That's Karel. Dialogue: 0,0:48:53.93,0:48:57.30,Default,,0000,0000,0000,,That's his world. His world, we can make it larger if we want. We can put in walls in Dialogue: 0,0:48:57.30,0:49:00.22,Default,,0000,0000,0000,,different places. We can put beepers in different places. We can have Karel be in a Dialogue: 0,0:49:00.22,0:49:01.28,Default,,0000,0000,0000,,different place. Dialogue: 0,0:49:01.28,0:49:04.94,Default,,0000,0000,0000,,But starting next time, what you're gonna realize is with this extremely simple world, Dialogue: 0,0:49:04.94,0:49:08.56,Default,,0000,0000,0000,,there's actually some complicated things you can do. And after about a week - so Dialogue: 0,0:49:08.56,0:49:11.94,Default,,0000,0000,0000,,this first week, we're gonna focus on Karel - you'll notice that Karel is Dialogue: 0,0:49:11.94,0:49:15.66,Default,,0000,0000,0000,,actually a very nice, gentle introduction into Java. And a lot of the concepts that Dialogue: 0,0:49:15.66,0:49:20.15,Default,,0000,0000,0000,,we learn, sort of software engineering concepts using Karel, will translate over to the Dialogue: 0,0:49:20.15,0:49:21.97,Default,,0000,0000,0000,,Java world, okay? Dialogue: 0,0:49:21.97,0:49:25.34,Default,,0000,0000,0000,,So any questions about Karel or any of the other logistics that you've actually Dialogue: 0,0:49:25.34,0:49:28.60,Default,,0000,0000,0000,,heard about in the class? Dialogue: 0,0:49:28.60,0:49:33.62,Default,,0000,0000,0000,,Alrighty then. Welcome to 106A. I'll see you on Wednesday.