 Welcome to Computer Science E1. This is lecture 14, the conclusion of the course. My name is David Malin. And welcome and congrats, near congrats, on making it all this way through the course. What I thought we would do tonight, in addition to a sort of retrospective and clearly some sort of exciting demonstration here, is take a look at perhaps some of the more perplexing screens that you or others may have stumbled across in your days of computing. By far, one of the most common frustrations experienced by a typical user is these sort of blank stares when something goes wrong. And that's after all what we aspire to in this course, to redress, was to give you a bit more empowerment when it comes to actually understanding what this thing is telling you. So this is the proverbial blue screen of death. You don't see it so much anymore. Microsoft, I think, has gotten a little bit better about just immediately rebooting your computer if something goes wrong, rather than showing you this. But how many of you have seen such a screen? Recall a term or two ago, I mentioned that at the exam time, exam one fell on Halloween. And this was what that fellow came dressed as, the blue screen of death, the guy I described with the cardboard box painted blue on his face. So this is the blue screen of death. It comes in several forms. This one is, I think, from Windows 95 or Windows 98. You don't see these so much anymore with Windows XP. But what can we, at this point in the course, take away from this message? What has gone wrong? Well, we have done our job well. That's an OK takeaway, though, because it remains rather cryptic, right? Hopefully, the control-alt-delete suggestions should look familiar to you. And that will be a recurring theme later tonight. But the two tidbits that I might point out at this point, and we have not used these acronyms, even in this course, because they don't come up so much in typical computing, but there's two keywords up there. There are two key acronyms, VXD and then VMM. So the best conclusion that I might be able to draw from looking at this, and I don't even know where this particular screenshot came from, the context thereof, VXD stands for virtual device driver. Now, ignore maybe one of those words, because we haven't used it so much, but what was a device driver? Way back when we did lectures one and two. Perfect. So it's software that more generally allows your computer and external hardware, or internal hardware, to communicate. So typically, if you plug in a brand new external hard drive and, right, would you mind closing the back window? If you plug in a new USB external hard drive, you plug it into the back of your computer, and hopefully it just works. This, after all, is Microsoft's vision with the so-called plug-and-play technology, if you've ever heard that buzz term before. It's often somewhat facetiously described as plug-and-pay works. There's another one. Plug-and-wait might work, but it rhymes the one I'm thinking of. Plug-and-pre, because though the aspiration was to have things literally be as easily installed as simply plugging them in, it doesn't always quite work. And you'll get a little error message in the bottom corner of your PC, for instance, that says Windows does not recognize the new hardware, or a new hardware installation failed. Or if you go to your device manager, which we've glanced at, I think, on one occasion, way back when you'll often see a little yellow question mark, or an X, or just generally, you know that you're not seeing your hard drive on your desktop when you just plugged it in. So clearly something's wrong. So often the case is that you need to install some kind of driver, and this might be the case if you're plugging in not even a hard drive, because those actually usually work the first time you plug them in these days. But something like a digital camera, a printer, as Tara said, a scanner that you might install. Pretty much any piece of hardware that you might plug into your computer ideally should be plug and play, but sometimes you get an error message, or you get a non-functioning piece of hardware. So why is that sometimes the case? Why does new hardware, brand new, out of the box, plugged into your computer not sometimes work? It doesn't recognize, or it doesn't yet have, the requisite driver. After all, Windows XP came out a few years ago. Microsoft hasn't released a new version of their consumer operating system in quite some time, so even though Windows XP on your computer may have shipped with all of the requisite drivers for the hardware that existed several years ago, clearly Microsoft couldn't anticipate the sort of hardware that exists today, video iPods, for instance, that not exist, when Windows XP first was released. And so what do you get when you buy an iPod? Well, CD, with iTunes software, with driver software, and so forth. So the takeaway here, something's gone wrong, it seems, and some kind of driver. VMM stands for Virtual Memory Manager. Virtual Memory was what, way back when? Extra space or something, OK? Come on, the world is watching with these podcasts. Let's not, it's, I'm sorry? A cache, a use of the hard drive, extra space. So, OK, I hear it's not stored, it is stored. When the RAM gets full, OK, good. So in the event you begin to run low on RAM, that is, lots of programs, lots of documents are running or open, at some point you'll exhaust your finite amount of RAM. So Virtual Memory is the use of hard disk space as though it were RAM. And the computer creates that illusion by, for instance, if you've minimized iTunes and are not using your MP3 playing software, well, it doesn't need to stay in RAM most likely. The computer can simply move that program's bits that are currently in RAM to the hard disk so that a new program can fit in there. And that assumes, for instance, that you're not playing music with iTunes because even if it's minimized, it's probably being used to some extent. But this is why if the more programs you start to run on your computer at once, what begins to happen? It slows down. Well, why does it slow down? OK, so you're running out of RAM, so the implication is that on modern operating systems you begin to make use of Virtual Memory, so why the slowness? It seems we're compensating just fine. Sorry? Discuss slower. Discuss slower. Anything mechanical we've seen in this class tends to be slower than something purely electronic. RAM, were there any moving parts when we passed those RAM sims and dims around? No, it was just those little green logic boards with some chips on them and some gold contacts, no moving parts, hard disks by contrast. All they do is spin internally. They tend to be slower. So what's the takeaway here? Well, frankly, who knows. There's some kind of error, probably with the driver. Which driver? It's somewhat unclear. Maybe it's the Virtual Memory Manager. That is the software in the OS that handles the use of Virtual Memory. But for the typical user, and for each of us, I think admittedly, this just means that there's a bug in the software that you were just running. Is there anything you can do if there's a bug in the software to redress this problem? Reboot will be a necessary next step. What's your recourse, though, as a typical user? What's my recourse as a user of this software? Excellent. See if there is an update. How do you find the updates? These days, it's usually as simple as copying on the web, going to the manufacturer's website, clicking Support, clicking Drivers, clicking Download, whatever the link may be, but just generally figuring out what might have gone wrong. How do you know what program crashed? Well, most likely, you're the one that at least just double-clicked the program that somehow crashed. Yeah. Good question. So what are these hexadecimal numbers that appear just before the mention of VXD? Most likely, that is the address in RAM or the address in the program at which this error occurred. But without what's called a debugger, a special program that programmers use when developing software, it would be tough for any typical user to figure out exactly where that is or what it means. But if you were the author of the software, it might help. Excellent question. Good question. So is this kind of number likely to be a constant? Should you write it down before calling tech support? It depends. Frankly, the types of folks you're going to get on the other end of the tech support line aren't going to know either what this number means unless, frankly, they've been told that this is a recurring error in their product or they simply recognize that this is the symptom that a lot of people are experiencing. It's useful, frankly, when calling tech support to write down all this sort of information. And frankly, one of the takeaways I hope from this course, among other things, would be just if ever so slightly more of a comfort level when picking up the phone and making these calls and just navigating your way through one, just the damn numbers that you have to press to actually get a human being these days. But two, once you do, sort of convincing that person in an elegant enough way that you do actually know what you're talking about because you did take the effort to jot down these kinds of numbers. VXD, you can toss out words like driver. I mean, if you can take something away from E1 and you can find yourself now carrying on a conversation, even if it's a bit of smoke and mirrors, that for driver this, VMM this, OX234, conveying that honestly can get you a long way toward getting not just to the level one tech support person, but the level two and level three. And I say this nearly seriously. Simply talking fast and dropping a lot of technically accurate terms when carrying on conversations with tech support folks, I think helps usher you past the first level, which is usually just people following scripts, which might help with some problems, but perhaps not those that you yourself cannot solve anyway. So a little plug there. Well, what about another error message? Well, this is what it looks like in the world of Windows NT and Windows 2000. And if you do see such a screen, Windows XP and Windows 2003, this is the same sort of error message. It is intended not to be so user friendly, but to be diagnostic tool for whoever wrote the software and why it was assumed that users would appreciate seeing such detail when their software crashes is unclear. But I think that's why the world is migrating away from such details. But essentially, this is a partial dump of the contents of the computer's memory. You see at the top of this particular screen a whole bunch of mentions of files ending in .sys, which is usually the file extension used on Windows for files that are device drivers. So if you see a .sys file, that simply means it's some kind of device driver. What this is telling you is that these are most likely most, if not all, of the device drivers currently loaded in memory. Might not be so helpful to you, the typical user, but for the other person on the other end of the phone or the programmer who developed the software, that might in fact be quite useful indeed, just knowing the context in which they're working. You see a whole bunch of numbers. In what base do most of these numbers appear to be? Not 10. It's not two. Base two means you can only talk in what letters? Zeros and ones. And the screen is not filled with zeros and ones, even though if you're kind of zoning out at this point, it might as well be zeros and ones. It's hexadecimal. Why is it hex? Well, what numbers and letters are legitimate in a hexadecimal base? Zero through nine and A through F. And that looks like what we have here. So it's probably base 16, which is typical when you're not only developing web pages and typing in color codes, but trying to communicate codes on a computer screen. The takeaway from you, for you, the user, when you see something like this, what's your recourse? Quit. Call it a day. Pull the plug. Reboot the computer. Can we take anything away from here? Not particularly. Not really knowing what the context is. This one's even a little more abstract. But again, jotting down some of the salient words or key phrases like what you just did to trigger this or what relevant sys files you see on the screen. There's a short list, for instance, down here. Might actually be useful. But again, often I just scribble such things on a piece of paper. And if you need to relay them to the person on the other end of the phone, sometimes it's useful. Here's an easy one. Now the error messages get a little more goofy. Legitimate error messages that we have scraped off of the web over the past few years. Not so helpful. This was a error message gone wrong. It's a little too simplistic. So this is a little dialogue window that just lets you say, OK, but clearly not so communicative. What about this one? Sort of testament to the fact that not only does software tend to have errors, but it would seem that errors sometimes have errors. What about this one? What's wrong with this picture? Not quite. Not everything's destined for the wrong. The recycling bin, in fact, appears to be empty so far as we can see. Yeah, it looks like there's roughly 4 billion objects in the recycle bin. 4 billion. Where have we seen that before? Come on, there's one number I said you should remember, as computer science, but in computer scientists. It was roughly 4 billion. Why? All right. What was this value? More than 16 zeros. 32, roughly. And we said we could write this number out, but we simplified it as this is roughly 4 billion. So what might be the implication here? Well, not necessarily remembering even what the value is. Well, look, it's roughly 4 billion, though it appears to be using periods here instead of commas, maybe a European convention in this case. So 4 billion. Well, what does that suggest? Well, maybe, could be a coincidence, but maybe the means with which Microsoft implemented this counter of the number of files and directories inside of the recycle bin was simply to use a variable with how many bits? Well, 32, because if by accident all of that variable's bits got flipped to one, well, if you said a variable's bits to all ones, you're essentially saying store the biggest possible number in here. We know it's roughly 4 billion, so this is clearly some kind of programmatic error. This is not a feature, and there's clearly not 4 billion files in there. But not that this would even help you with tech support in any context, but at least it's kind of curious that there's a rationale, a technical rationale, for why this particular value might be popping up. This one's a little tougher to explain or guess, but this two clearly wrong. So some kind of error with Windows itself or with perhaps some add-on to Windows that was installed and somehow affected the recycle bin. This is a cute one. You might have received something like this as an internet forward if you're on all too many mailing lists. A few of you haven't quite chuckled yet. Is it not quite clear? Sort of catch 22 here. Unable to detect. OK, hopefully you've got it. Ask the person next to you if it's not quite clear. This is a little scary. When you start to see real world devices, an apartment building it would seem here, exhibiting a blue screen of death, none so impressive. But there are a lot of systems out there from ATM machines to the arrivals screens and departure screens in an airport that even though they don't look like Windows, because no start menu is obvious, well that's just because the window has been maximized to fill the screen, but underneath things is Windows 95, Windows 98. In fact, if you've ever gone to South Station, unless they've changed things, I believe the little Greyhound and Peter Pan bus kiosks with which you can print out electronic tickets powered by Windows NT or Windows 2000. And you can see this when the things freeze up ever so frequently and simply don't work. It's just a computer underneath there. Case in point, not so good when you want to catch your flight when the departure screen is blue screen, but just means Windows is Intel inside, Windows inside. Sorry? No, these are all scraped off of various people who have taken the photo's website. So this one is some kind of customs computer, similarly, not so useful. And then this is a mock-up of a device, either someone Photoshopped together or actually built, but I thought it was quite cute and suggests that you might as well have one of these devices connected to your computer. So how did we get here? Well, we started many, many, many weeks ago with lecture one in which we introduced hardware. And just as a trivia challenge here, name one topic that we covered in lecture one, binary. OK, excellent. So it's a bit of a leading question here. So a more interesting question might be, what was one of the first things we spelled out with binary? We did my phone number, as I recall quite late at night, several nights in a row, on a problem set. But here, we depicted using the notion of light bulbs on off switches, zeros and ones. What value? A year. And not quite a year. There was a group of people up here. We spelled out bow, but also not related to what's on the screen. Now mind you, you could just figure this out by translating this back to decimal, yes? We'll start with the bottom first. What's this row represent? OK, zero. What about the second to last? OK, what about the first one? Not two. Nine. I think we're going to rewrite next year's lecture. Just me talking. OK, so we've got a nine. We've got a one. We've got a zero. What about the second and third values? OK, we've got a zero. Two, so that gives us, OK, 90210, which if I had the sound, we would queue up the music. But yes, 90210. Let's move on to lecture two. So lecture two, we continued our discussion of hardware and talked about, particularly toward the end and in the associated problems, where to go to buy a computer. So just out of curiosity, how many of you have actually had opportunities to purchase hardware of any sort since the course first began? Any tail or comments you'd like to share related there to? Excellent. And you actually then purchased a whole new computer? Excellent, a new Dell desktop. Other tails? Chris? OK. OK, so blue screen of death led to new hard drive. Any other tails? I had a year ago, and I learned more about this in the past with Supery, what it already is, what it works, any other that I would work with, and everything, I didn't know about what is not going through this. Excellent, so you're back on track with your wireless network. For those of you who like dabbling in the purchases of hardware and like to save money, I should admit to a bit of a addiction that I've had on surfing the web lately. There are so many websites these days dedicated, as you know, perhaps from section to price comparisons and discounts and so forth. And also, I think a useful takeaway for a course like this, if you're particularly price sensitive, is that the places to buy hardware these days tend not to be Micro Center down the street, and tend not to be CompUSA, and tend not to be Radio Shack. And God forbid, not Radio Shack. But it does behoove you often to go and take a look online. So one of the useful tidbits that I might share, and you may have also looked at this in section, for instance, are websites like this, techbargans.com. And I say this is an addiction because I don't need any piece of hardware particularly, and yet every night I find myself looking at such websites as these. But the beauty of these kinds of websites is that there are people with even more of an addiction than I, who not only look at such sites, but scour the web, scour the circulars they receive each weekend, and actually post mentions of the best possible price that they have seen on this particular model of hard drive this week. And you'll actually get comments of such specificity that the listings will say this is the cheapest price by $4 that we've seen in the past five months. And it gets a little obsessive, but the takeaway is that you, the reader, or really the moochier, end up saving money. So for instance, just skimming this, for instance, we've got a DLT, let's say, a Dane Electric 1 gigabyte secure digital memory card with an MP3 player for $69.99. That might not be particularly interesting if not in the market. But you can see such things as, say, the Xbox 360 is in stock, and you can find it at walmart.com for the rather high price of almost $600. But for those of you who are looking for things, for instance, digital cameras, or printers, or computers, checking out sites like this is a wonderful approach. Another one that's a little more chatty that I've similarly found myself using quite a bit to browse and save money via is one called fatwallet.com. This one is more of a bulletin board type. But if you click on the main forums link at the top of fatwallet.com, at left you'll see a bunch of main menu links, hot deals, travel deals, financial deals. So not only are people talking on the web these days about where you can get the cheapest hard drive in digital camera, but on a site like this under the finance section, you actually get really interesting threads that are useful, not so much to read in their entirety, but the skim, on people posting mentions of credit card offers that have come out, where you can say, for instance, 5% cashback on this or that, or credit cards where you can sign up and get $100 after spending the first $25. And this is not to promote the accumulation of credit cards, but there are so many people on the internet these days, and so many people interested in talking about stuff like this, that hopefully, again, one of the takeaways from this course is that you'll know, or at least you'll be inclined to, seek out such mentions these days. And you won't necessarily think, I need a piece of computer equipment, I'll drive to CompUSA, because almost always you'll end up paying higher price. Unless you're buying, for instance, from one of their often impressive circulars in which they do run particularly good deals, especially when rebates are involved. Well, lecture three, we took a bit of a respite, sat back with no popcorn, no soda was in the room, and as we attended this particular lecture and watched Pirates of Silicon Valley, which was meant to be a fun glimpse into the world and the rise of both Microsoft and Apple. For those of you who like that general material and are interested in learning more, not so much through a Noah Wiley dramatization, but through actual footage and interviews, there's a wonderful movie that's been linked on our SAP's Pix page all semester called Triumph of the Nerds. It's a little hard to get. I think it might be available on PBS video. You might be able to get it from Netflix these days or Blockbuster.com, or maybe even locally. But it is a similar film, but it's more of a documentary nature, where you actually have interviews with Steve Jobs and with Bill Gates. And it's quite fun, actually, to watch. And related to that film was a sort of follow-up, also linked on our SAP's Pix page called Nerds 2.0.1, which focuses not so much on the rise of computers and those who popularized them but with the rise of the internet and those who architected the internet from the days of ARPANET on forward. Well, in lecture four, we took a look at the internet. SPAM was one topic we discussed during that lecture. I'll steal your thunder. What was another topic that came up during our internet lectures? OK, phishing attacks, which we then followed up again on in our security lectures. What else? Networks. OK, we talked about LANs, WANs, wireless LANs. Sure. What else? Communication protocols. Talked briefly about TCPIP. Talked a little bit about HTTP, FTP, instant messaging protocols, and so forth. Good. In lecture five, we followed this up with more of a underneath-the-hood approach. How many of you remember with fondness your crimping of ethernet cables in the classroom? Not bad for. How many of you remember crimping ethernet cables? So I will admit that we do this in class not because I ever think you should be crimping your own ethernet cables. It is far too easy and cheap to just buy premade ones. I will say and will admit to my own defeat this past weekend when all we had lying around the office was a broken ethernet cable, the little plastic tabs that hold it in the wall had broken out. And me being a little anal about things like that decided, well, I'll just cut off the heads of these things entirely and put on new ones. I then bought a new ethernet cable after that didn't work out so well. So I empathize with those of you who did not quite succeed at that task. It's hard. And it's damn frustrating aligning eight little wires, not only correctly once, but twice on the same cable. But those of you who did succeed, congrats. It's hopefully a fun little souvenir. Well, in lecture six, we had what we hoped was a bit of a surprise in which we pitted TFs against students. And as I recall, I think the TFs called the TFs that night did win for the first time in recent memory. Though my suspicion is that previous semesters TFs have been throwing the games, but that's just conjecture. But we spent a bit of time on these categories here and generally capped off exam one with a bit of review that night. But then we moved on to multimedia. We made things like this. And frankly, I actually think this semester's crop of banners were, and I don't say this every semester, were the best yet. They were really some sharp looking banners. And that is why they're still on the website to this day. What else did we do in our discussion of multimedia video? So we talked about video. Give me three file formats for video. ABI, real video, QuickTime, three. How about two audio file formats from this side of the room? Wave, good. And then P3, excellent. Give me one vector based file format. Oh, sorry? GIF is actually a bitmap file format. Flash, the flash technology. We recall our singing horses, our acapella horses. We're done with flash. And that's why I was able to resize it from something very small that looked pretty sharp to full screen. And it still looked pretty sharp. Larry Summers' video was similarly in flash. That's why he too scaled so well onto the screen. And there weren't too many file formats other than that that we discussed in the context of vectors. Well, then we spent and led up to the much anticipated chats about security. And in security, we talked about viruses and worms and spyware. What's a virus? Come on, you know you're going to be quizzed on this stuff at the dinner table, henceforth. So what's a virus? Malicious piece of software. Excellent. How does it spread from computer to computer? Self replicates. Be more specific. How does it physically get from one computer to another? Human intervention. It's got to attach itself to an email. Maybe it has to infect a floppy disk or be resident on a CD. But generally, some human has to be involved in a clicking process, in an insertion of a disk process. There typically is human intervention involved. Contrast this now with worms, which are much scarier, because they can spread entirely on their own. How many of you maybe a year or two ago experienced one such worm whereby a symptom was if you turned on your computer, it would automatically reboot within 15 seconds? So Romans is the only one. That too, similar to our error message before, is a bit of catch-22 if there is a flaw in Windows, which there was, the result of which is that someone exploited that bug, wrote a worm that essentially attacked the ethernet card of any computer on the internet simply by guessing an IP address and trying to jump into that computer through its network port. Well, if you only have 15 seconds to mitigate that problem, but the solution to the problem is to what? F4, close the window, but we're not talking pop-ups now. We're talking about a computer determined to reboot. What do you normally do when there's a security hole in your computer or there's a bug in some software? Download the fix. You download the fix. Now how many of you can navigate to windowsupdate.Microsoft.com can click Express Update, or whatever the link is called, can review the list of possible updates, click OK, download that software, install it, and then click OK in 15 seconds. Hence the sort of catch 22. And this was a frustrating worm for most people to solve because most people cannot do such a process in only 15 seconds, physically even, over their particular network connection. It's gotten to the point even with viruses and worms these days where I often get invitations to people's homes for dinner and some computer questions. And this particular computer question involved helping a friend of mine remove a particularly determined virus from his computer. The computer, though, was so infected that, and this happens very rarely, that even Spibot, AVG, the other one, McAfee virus scan, nor in antivirus, all four or five of those products failed to actually clean this computer, even though it was the latest and greatest versions. And that's a tricky thing when you even have people the teaching fellows and myself would like to think that, at least, even if we fail, we're going to try every possible solution or failing to remove viruses and worms from computers, spending hours on end at this. We're entering a scary time, I think, when computers can become so infected that you really, like my friend's situation, had no recourse but to take out the Dell recovery disks or the IBM recovery disks that, in effect, erase the whole hard drive, put it back to its original state, sans viruses, but that you pay a hefty price for restoring back to your life as it was on disk a year or so ago, unless you actually back up your data. So beware, but frankly, another takeaway I think from this course too, I would hope, is that even if you have AVG installed or nor in antivirus or McAfee virus scan, Spibot, all of these software programs, by far the best way of protecting yourself, the play on a commonly used word, is just safe computing. Like be ever so careful when you're opening up emails not to actually click. When you're visiting websites and automatically there's some pop up that says yes or no, usually you don't even necessarily want to click yes or no. You want to hit, as you suggest, Alt F4, which is the close window command, or you want to click the X in the window to actually close it and just hit escape to usually close windows by default. That is perhaps the best way, frankly, of not getting infected with viruses and worms, just being ever so slightly more savvy than those who are aspiring to infect you. Well, in lecture 10 and to this day, you've been dabbling probably with XHTML and CSS and SSIs and so forth. And hopefully you're having fun with that. An oft-asked question is, well, why learn HTML or XHTML by hand when there's so many programs? Dreamweaver and Clara's homepage and even Microsoft Word front page these days with which you can design web pages but just by clicking, pointing, clicking, WYSIWYG editors, if you will. Frankly, I'm still convinced that learning things from the ground up and understanding how to edit things from the ground up really gives you, one, much more control over the aesthetics of your website. And most programmers, certainly, even if they're developing websites, might use such tools as the ones I enumerated to speed the process up, because it's a lot quicker to develop websites when you have such tools at your fingertips. If you don't actually understand what's going on underneath the hood, it's very hard to actually generate things dynamically, fix problems when they exist, to ever so slightly tweak or shift things on the page if you don't actually understand what those programs are doing, because they are, after all, fallible and certainly not perfect. And so what we hope you're having is even if you are not wowing your friends quite yet with the beauty of your web pages, well, perhaps soon you will with practice. Now this, I won't make you go through this. This was to recall our example of self-counting. And this, too, was the very first semester in memory in which we got a perfect count, which is a testament, I think, to the caliber of our programmers this semester. But we also talked in this lecture about JavaScript. You dabbled with that a bit in one of the more recent problem sets, probably a little bit with the final project. But that, too, was just meant to be a teaser. You should not exit this course thinking or saying on your CV, I know programming, or I know JavaScript. I'm sorry to burst any bubbles, but there do exist entire courses, or at least books, with which you can go on, I think, to acquire a bit more savvy with something like this. And that's not to say that this is not sufficient background for learning to program, but I think a little bit more practice than two hours is appropriate before you start applying for those developer positions. But you have definitely gotten a representative taste of what it's like to be a programmer. And now, apparently, is peanut butter jelly time. Well, what ever does that mean? Well, we have here a link. Let's click this link and see where it leads us. And not the laughter we expected at this point in the lecture. But for peanut butter jelly time, I'm going to need one volunteer from the audience who, let's say, takes things a little too literally. And doesn't mind appearing on film up here behind this big table. You won't be doing that, don't worry. Just need one volunteer. Sorry? This I don't know. I haven't clicked the page yet, to the next slide. And this is going to loop until we have a volunteer. Just need one volunteer. OK, we have our one volunteer. I actually need three more, and I'm going to coax these three. And let me just ask that you position yourselves one on this end, one on that end, and two on this side. Because it just so happens that in grading one of your more recent problem sets, recall there was a little something about peanut butter and jelly. And we, the staff, like, it gets very boring grading dozens of problem sets, late at night, long computer science problems, no less. So we tend to find it more fun to actually reenact what the students were themselves thinking. It just so happens that we came prepared this evening, the little care packages for each of these volunteers. So I'm going to hand each of them a little grab bag of goodies here. Now, you, the audience, should certainly not feel left out, because, one, you're going to be eating these sandwiches in a minute. But two, it is in fact your very submission that we have come prepared with tonight. In fact, at take one here, we have a submission from this semester student body anonymized here and reformatted to fit on this screen. But what I thought would be fun, for at least one of us in the room, would be to reenact this actual program and see what sort of grade you, the audience, would give these individuals. But now, remember, our charge in our programming lecture was to bear in mind that computers interpret things ever so literally. There is no human judgment exercised, and so all I would ask of our four volunteers is that quite simply, you do, as you are told. So with that said, I'll need the audience's help in executing this program. This is take one, peanut butter jelly time. Audience, anyone, if you could, call out the first instruction to our four volunteers this evening. OK. Can we get maybe? That would be fine. I'll start off with line one, because, recall, line one would, given to you in the problem, say that in step one was, volunteers, locate jars of peanut butter and jelly, a loaf of bread, and a knife. Someone from the audience want to give them their second directive? Yes. Jars, loaf of bread, and a knife on a clean counter. We'll hope it's clean. Sure. All right, step three, take two slices of bread, just literally no skipping ahead visually there, take two slices of bread from the loaf and place them on the clean counter. I can tell you only what the students told us. Well, the audience, of course. All right, they have taken two slices of bread from the loaf and placed them on the clean counter. At this point in the grading process, there would have been a little note in the column, perhaps open bag of bread, perhaps. All right, step four was take the knife and scoop out just enough peanut butter to cover the blade of the knife. This is, yeah, this is when the grade starts declining. Again, take the knife and scoop out just enough peanut butter to cover the blade of the knife. Well, some things go without saying. Not so much in the computer world, though. Actually, don't do yourself that. Those jars were, it doesn't seem to have happened tonight, but those jars were strength tested to see if those knives would penetrate. And they would penetrate the plastic lids, but it's OK. All right, step five, spread the peanut butter on the knife onto one of the slices of bread. Step six, next, take the knife and scoop out just enough jelly to cover the blade of the knife. That was not strength tested. Step seven, spread the jelly on the knife onto one of the slices of bread. Step eight, pick up the slice of bread with the peanut butter on it. Step nine, and final. This is the end, realize. Place it with the peanut butter side down on the slice covered with jelly. And that completes the program. And so I need one, two, three, four more volunteers. No, these didn't work out too well. So let's do this. If the volunteers could quickly restore as best they can to a pristine state, we'll try one last take from this semester's submissions, which, again, will have us starting at the same point, which in a moment will involve, again, locating the jar of peanut butter and jelly, a loaf of bread, and a knife. Believe it or not, this is actually the first semester that we thought to bring paper towel for this example. We're close enough, I think, to our original state. Take two has us proceeding to, if an order arrives requesting a PBJ sandwich, remove the lid from the peanut butter jar. So already we seem to be off to a slightly better start. Step three, then remove lid from jelly jar. Again, step four, then remove two slices of bread from bread container. Then place knife in hand and scoop out portion of peanut butter. It does not say which end of the knife, nor does it say how much. Step six, spread the peanut butter on one slice of bread. Step seven, then scoop out portion of jelly from jar. OK, step eight, then spread jelly on other slice of bread. Step nine, pick up slices and place the side of peanut butter together with the jelly. Good? Step 10, and final, put sandwich on plate and inform hostess PBJ is ready to serve. Excellent. A round of applause if we could for our volunteers. I think, though, that we do still have one gap here in the slides, and so there's clearly some chuckles at the expense of two of your fellow students. So I think it only fair that you now take charge and instruct these four volunteers on how to properly make a peanut butter and jelly sandwich, since clearly no one's eating these sandwiches yet. So let's see if we can output a sandwich that at least one person here will eat. So step one, locate jars of peanut butter and jelly, a loaf of bread, and a knife. A voice from the audience. Step two, open jar of peanut butter is our step two. It's like an easy one. All right, step three, someone else. Flux off the easy one. Open jar of jelly. Step three, I hear open loaf of bread. Step three, open jar of peanut butter. Step four, carefully, I hear. Thank you. Step five, take handle end of knife in hand. Remove two slices of bread from the package. Put it side by side on the work space in front of you. And place them side by side on the work space in front of you. We do have plates, folks. OK. Large side down. Large side down. Good. All right, we're coming along. Next step, insert knife in the peanut butter jar I heard. Peanut butter jar. Oh, well. It's a bug. Remove about one tablespoon of peanut butter. In scooping motion, mind you. With knife. With knife. With sharp end of knife, spread on one piece of the bread, covering all of the top of it, I assume, the wide portion of the top of the bread. Next step, bring us home, someone. Insert knife into jelly jar. With sharp end of knife, oh, I'm sorry. With sharp end of knife into jar of jelly, into jelly jar. I'm sorry? Remove one tablespoon of jelly. Remove one tablespoon of jelly, that. Place it on one side of the bread with the jelly side up. Spread it evenly. OK. This is sort of every exam taker's dream come true, right? Everybody gets to contribute a little to the answer. OK, Chris, sorry. Place knife on table. Take peanut butter, cover bread, and place face to face with jelly side of other piece of bread. Covering them exactly so that they meet. Even edges. Trim the crust. Chris wants her sandwich. Anything else? Oh, a dare, if you will. And a round of applause, if we could. Thank you very much to our volunteers. Sandwiches will be available on the way out. Well, we've just, and that's OK. We'll tidy up after. We've just a couple of lectures that followed our use of programming and deployment of peanut butter and jelly. We had Mr. Omri Traub join us for a chit chat about the rise and ultimate success of his little startup. But then we counter balanced this recall with last week when we did not have popcorn or soda in this room, but only watched startup.com. We said last time we would reserve a moment for any comments or questions you might have. And I know there were one or more such comments or query in the whole sandwich. That's fantastic. What was your reaction ultimately to the movie? Since I know being that the problem says not yet do, I think it's fair to ask these questions now. Startup.com, discussed. And they ended up starting up a company together after that. Acrimonious gravy on their friendship. They did. They started their own company after that. In fact, what kind of company was it? Yeah, it may have been a nonprofit. But yeah, it's the last sentence in the movie said on the screen. It was a startup to help struggling.com, which frankly always struck me as rather the blind leading the blind. But I think to this day, they are actually still involved in that. Though Google can perhaps answer that for you for the extra credit question. Other comments? Rather positive reaction to, let's say, govworks.com. Good idea? Yeah. Yeah? Billion dollar idea? Remember that line where Tom Herman said, parking tickets. That's the best idea I've ever heard. OK, so it kind of worked, the idea, you think. How about the personalities involved in the startup? The idea, but they just didn't have the expertise to pull off more the mechanics of it. OK, so great idea didn't necessarily have the expertise to pull off the mechanics of it, the execution of the business plan. If you get a parking ticket today in Cambridge or wherever you live, how do you pay your parking ticket? OK, by mail or online? OK, online on the city of Cambridge's website. So at least there does exist this technology, though perhaps not in the form of one giant portal that these guys perhaps envisioned. By the end of the movie, the failure of it all, what was your takeaway? What were the thoughts that you had exiting the classroom that time? I was very pleased that their friendship actually got them through this. I don't know, at the end, I thought that Tom's one that really understood that their friendship was more important than the business and making millions of bucks or whatever it was that they were playing. True, Tom definitely understood the value of friendship, but perhaps to the detriment, I think, of their investors, as I recall, one particular line where I think maximization of their investors' profits was not foremost on their mind and daresay should have been when they're playing with someone else's money. Yeah, I felt sorry for the investors because I thought these guys, they were losing their people's money. That's where I thought their lack of expertise in this area. Oh, but the business dementia capitalists should have understood that. Absolutely. That's their role as part of their business. There is certainly the risk from the get-go. I mean, one of the most striking scenes or sequences in the film that I thought, and even though most of the movie was footage of people talking and so forth, was the right end of the movie when they just showed the empty cubes, having throughout the movie depicted or put on the screen how many employees they had. I mean, that alone, I think, was very powerful and sad, certainly. I'm very important. The thing that I got from it all was that there was a beginning, a middle, and an end through something that actually started. Usually, there's a beginning and a bust, and that's it. But that actually was a follow-up in the end. And I felt that it was brilliant. It was very courageous to kind of go through with that. Yeah, no, absolutely. I feel you're out of the data, you know, somehow made it. I don't think they really understood how they started off in the beginning. No, I mean, it is certainly wonderful having shot that footage. And even though it didn't turn out the way that it hoped, I think they perhaps recouped at least their personal losses when this movie was playing in the theater near you. So we hope, then, that you ultimately enjoyed that. I think it's a rare opportunity to really get a sense of sort of good reality TV, if you will. So lecture 14 was tonight. Guy scratching his head here, wondering, perhaps, as you might be, what's next? Well, recall that after exam one, we distributed a handout entitled Life After Computer Science E1. This, frankly, might be, if we haven't done our job so well, this might be the very last class you ever take in computer science, or perhaps the extension tool. If you choose to go further, do think back on that handout. It's still available online. It's just a completely subjective list of suggestions, of course, is that we at least think that you would be prepared to take after this, subject, of course, to your interest. If you're looking for a more pointed suggestion, I can say such things as these. If you like the website aspect of this course, website development, web mastering, and so forth, computer science E12 at the Extension School, I hear good things about, and is historically huge in terms of its enrollment. I think this semester it's already up to 76 or so people, and that's coming up this spring, I believe, unless I'm misremembering. If you like the programmatic aspects of JavaScript, or really do want to embark on perhaps a new career, or perhaps a potential, therefore, for programming, something like computer science E50A, followed by computer science E50B, or in the summer, computer science S1, or S111, both of which are designed to teach you programming in more than just two hours. This certainly is not to plug the Extension School alone. I would say, frankly, anywhere in the Boston area, you can even find online courses these days in these areas, I think would be fun to pursue if you've actually found that you had an interest in this course, because if nothing else, I think what you find in this particular course is that we don't do a lot of depth, certainly, in a lot of the material, since we simply don't allow ourselves the time jumping from topic week to week, we try to give you breath, and give you a taste, really, of everything that's out there, and even the things we leave off the syllabus, hopefully now you have the comfort and or savvy to Google for that topic to go to some suite of websites that you're now comfortable with, you know how to find the information, and if nothing else, hopefully you know where you can take yourself next, even if we haven't supplied you with all of the answers. A big thank you, if I may, to the three people without whom this course would not have been possible. If these guys wouldn't mind coming up for just a moment to prepare, it's just a very, this has been a fantastic semester working with these guys, and this by no means, the little 99 cent thank you, I'm about to give them by no means captures my appreciation for what they've done, and hopefully for you, but I thought it was particularly apropos. I located some woolly-willies with which they can remember this particular semester, and thank you to each of them for all their time, and I appreciate it, sir. Well, you can go play now at your desk, thank you. There you go. I'll say it to them personally on his way out, but a big thanks to Chris, who's here tonight filming as well as to Ed, who is not here tonight, but sometimes filming without them, this certainly would not have been possible or a podcast, so perhaps a round of applause for them. And let's see, finally, oh, looks like we got a little something for you now. So recall that one of your takeaways from this class, besides a fire hydrant of information, is also a mouse pad. So it seems we have on the board here the blinking question mark of the day. We call that in a previous lecture we narrowed our mouse pad candidates down to these three particular options. It is with great glee and anticipation and excitement that I reveal to you for real this time that the winner of this year's mouse pad design, and the design you will all exit this classroom with tonight, is poorly set up, clearly, is, those are my Photoshop skills, Tara McCaffrey, for a particular mouse pad. A big thanks to her. We have it right here for you. Come on down, congratulations. She will be immortalized now, and she is here tonight, and I'd like to invite Carl down to receive one of his own mouse pads that we had printed special as well. So thank you to Carl as well. I don't believe our third finalist is here this evening, but we have here a double bag of mouse pads to give out. We've got plenty of peanut butter and jelly for everyone. It's been an absolute pleasure having you all on Computer Science E1, understanding computers in the internet. Congratulations, you survived E1, and hopefully we'll see you in some future term. So thank you.