[THEME MUSIC PLAYING] DAVID J MALAN: Hello world. This is CS50Live. So it's been brought to my attention that over the past few episodes I may have said a few things that are incorrect. Well, among the first for instance, was that this popular website we've been using for the courses discussions is not in fact called Redder. It's apparently called Reddit. Meanwhile, it is the case that for quite some time the United States was using 00000000 to protect its missiles. However those missiles were nuclear, and not apparently, "nuke-you-ler." Meanwhile. I love you. This is indeed currently, supposedly, the most popular password right now for people to be using. But this-- if we zoom in-- is not in fact how you make a heart. Lastly, CS50's own Shelley Westover, whom you may remember from such films as this one, noted that she is not in fact a camera "operater" but a camera operator. Now speaking of camera operators, the team has graciously allowed me to borrow this camera today, so that we can take a look at what's actually going on all this time behind the scenes. So if you will, shall we go ahead and take a tour of the studio? We're here in beautiful Hauser Studio, in Widener Library. Against the backdrop here is this green screen, otherwise known as a chroma-key, or cyc wall physically. And in fact, if I walk up closely to this, notice how the ball has a slight curve to it rather than a normal sharp angle. That allows us to keep shadows off of the edges, and it also allows us to make sure that we can superimpose almost anything we want nice and cleanly. Now up here is a whole bunch of lights controlled by a main panel of switches which we'll see in just a little bit. Up here is an LED light with so-called Barn Doors on it. This is what casts very directed light. Really gives me my glow during the show. And then over here we have a fluorescent light, which casts softer light. Now both of these are cheaper to operate, and a lot cooler to operate than more traditional incandescent bulbs that a lot of folks still tend to have in their homes. Now if we turn around here, you'll see what I see. So we have a couple of our cameras over here, one of which has a teleprompter on it. We actually don't really use a teleprompter in CS50Live, but for the shorts, against those white backdrops that you may recall, we actually use them quite a bit. Spending quite a bit of time in advance scripting the material so as to get it just right. Now over here, you'll actually see a camera up on the ceiling. Let's zoom in on that. That's the so-called bump cam that gets those shots that you see at the very beginning or the very end of CS50Live. And it's hard to see in the lighting up there, but it's actually hung upside down, and we're able to fix in software after the fact by flipping it vertically. Now-- hi [? Andrea-- ?] over here, let's head over to that light panel that I mentioned earlier. This light panel has a whole bunch of switches, and they hate it when I actually do this, but we can actually throw some lights up and down here. I can't quite see the effect, but we're kind of wreaking havoc on our cameras right now. But let's fix this. Oh boy, let's move on. So in here is the closet in which all of the studios wires are ultimately routed. And this is sort of the brains behind the operation, behind the scenes, huge fans in here. In fact, if I lean in you can hear quite a bit of noise. So there's actually quite a bit of insulation on these wall so as to keep that noise out when we do in fact shut the doors. But way up there you can see all the cables coming in and out of the closet. And over here you can see a copy of the teleprompter that we saw just a moment ago. Alright, let's head into the so-called control room. So over here, I still don't quite understand this one, this is where we keep our flammables apparently. But over here we have a whole bunch of workstations where the CS50's team and other HarvardX teams work. And over here we have our audio station. Let's take a look. Hey Patrick. So here we again have a whole bunch of dials we can move up and down to actually change the levels. This time for audio. And in fact, if I do this here-- I'm going to slowly bring down this audio level, and I'm going to keep talking in this usual voice of mine here in Hauser Studio for CS50 live, and at some point you're not going to be-- [VOLUME LOWERS UNTIL VOICE IS INAUDIBLE.] Now if I raise it back up you'll start to hear my voice again. Now, you don't have to do everything manually. In fact we have some presets. So if I go over here to the Layer menu, I can actually toggle between 1 in 16 and 7 in 32, and you'll see this happen. Actually pretty neat. I do this quite a bit as well-- watching. Anyhow, let's move over here and you'll see a whole bank of hard drives, really. These are all SSD's that you might have in today's laptops, and even some in today's desktops. And they store things like this-- which is actually just a hard drive, which is about 500 gigs in SSD. And you can see the interface there via which it connects to the innards of that. This is where all of our footage is ultimately stored, from one or more cameras that we might be using for a particular shoot. Now over here-- Oh, Hey Ramon. Thanks. Ramon's never really given me much attention there, but we'll just move on. If Ramon-- if I could take a look over here, we have a whole bunch of buttons that we can play with as well. And meanwhile there's a whole bunch of displays up here on two massive, big screens. And this is really like the innards of a television studio. All of the video signals come in here, and what we're able to do by touching the switches and dials is actually produce a show in real time. So for instance, we have this little throttle here, like you might see in a plane. If I start to gain this back, notice what happens on the two images up there. Fading between the two, and so we've gone from one to the other. And if I push that back up, now we've got back the original images. Meanwhile this joystick over here, like an old arcade console, allows us to do this with that bump cam. And there we go, there we go, there we go. And now we have fixed that-- pretty much good enough for the purposes of the show. Now finally-- sorry Ramon-- we also have some buttons here. DDR2, of my favorite games perhaps, and if I hit this, we now get this effect. You might recall that from episode two of CS50Live. If we push on title, this is what we can hit if anything actually goes wrong, we're getting that screen there. And now lastly, I think it's time for 60 seconds of Rob. Oh, son of a-- [BASS GUITAR PLAYS] ROB: Oh, come on! Just use some animal video! [MUSIC PLAYS] [WOMAN SPEAKING JAPANESE] Recently in the news was an article about CS50 in a popular website known as Life Hacker. Now one of your classmates, Annabel from Australia, came across that article and in turn CS50 itself. She's now enrolled in the class and she would like to say hello. ANNABEL: Hello world. My name is Annabel, and I'm from Queensland, Australia. The reason I'm taking this class is because I saw a post on Life Hacker, and knew that this was the key to bridge the gap between being a newbie, and a future in CS. Taking this course will also be a bridge in many directions for my autistic son who loves IT. I'm also hoping that by the end to create programs to assist my dyslexic daughter. Currently I am an accountant, with a heavy interest in technology, real estate, gardening, and instrumental music. My name is Annabel, and this is CS50. SPEAKER: Allow me next to introduce Betty, who would also like to say hello. BETTY: Hello, world. My name is Betty, and I'm from southern California. I'm taking this course because our society today seems to be geared towards programming. Programming is becoming essential for our lives. And actually, I think it's already essentially now, because a lot of the things that we use have to incorporate programming in order for them to be created. Basically, we are going to be geared towards a future filled with technology, and programming is going to be an essential part of that future. So I think it's something that's really cool, and that I should probably get to learning it. So yeah, my name is Betty, and this is CS50. DAVID J MALAN: Pictured here meanwhile, is Raja from India, who has gotten so immersed in CS50 that he apparently had it tattooed on his skin. And now, a tweet. This one from Carter in Virginia, who wrote us with this-- "Consentino and I are making good use of my snow day watching week one of Harvard's CS50 on TV via Chromecast and YouTube." Who is Consentino? Well, apparently he's his cat, but indeed, pictured here along with Carter's feet, is a big screen TV in the background. And apparently there are indeed using a Chromecast to project CS50's week one onto that big screen TV wirelessly. Now Chromecast, if you're not familiar, is actually kind of a neat device. It's a fairly inexpensive plug that you can put into the back of your computer into an HDMI port. It has Wi-Fi access, and essentially allows you to stream wireless content from your laptop onto your TV, or even control your TV and download content like videos directly to it. And now a note from Mohamed, one of your classmates in Pakistan, who recently discovered this curiosity-- apparently if you go to google.com on occasion and search for me, David J. Malan, apparently this guy comes up once in awhile. David H. Malan, who's apparently a British psychotherapist who looks an awful lot like me. Now it turns out if you click this feedback link in the bottom corner you can actually report a problem, as things being wrong to Google. And let me-- since we are on the internet here-- if you can help a guy out, and actually click that wrong link up top, and just mention that David H. Malan is not in fact David J. Malan. Now to be fair, there probably is a David H. Malan, and he probably is a British psychotherapist, so let's not report anything else as wrong, but just that photo has probably been chosen algorithmically incorrectly by Google's servers. And now a hello from CS50's friend, Professor Harry Lewis. Professor Harry Lewis was actually my own professor years ago when I took an intensive course in Theory of Computation. A theory course in which you explore the fundamental limits of computation, and exactly what computers can and cannot do. We recently visited Professor Lewis in his office to take a look at some technologies past. PROFESSOR HARRY LEWIS: I'm Harry Lewis, I'm a professor of Computer Science here at Harvard. I came to Harvard in 1964 as a freshman, and except for three years off during the Vietnam War I've been here ever since. So I now head the undergraduate program in computer science, and I've taught lots of different courses over the years. And I'd like to tell you a little bit about some of the interesting things that have gone on a Harvard, of which I have had some contact over the years. Her's my undergraduate thesis, in 1968, which I wrote a two dimensional programming language. This is a core memory plane, those are a little magnetic doughnuts that are strung on the intersections of wires. And this was the way memory was done before semiconductors became a viable technology. This is a early 15 gigabyte iPod, which I keep around not because anyone's impressed with having a 15 gigabyte iPod, but because this is a 70 megabyte drive, and they went in disk drives that were about the size of washing machines. So that was only 70 megabytes of memory, that gives you some sense of how things have scaled. DAVID J MALAN: And now another tweet. This one from William in the United Kingdom who wrote, "David J. Malan, after a bit of Google stalking, it turns out Rob has a twin brother. Can we put him in CS50Live and play spot the difference?" So William, this is indeed the case. CS50's own Rob Bowden does have a twin brother. In fact, here is Rob and Paul-- or Paul and-- pictured here are two Bowdens, both of whom have actually TFed for CS50 in the past, and indeed Rob is now on CS50's full time team. Now, we too did bit of Google stalking, and it turns out that twin brother Paul has his own YouTube channel in which he fancies himself a bit of a comedian. Let's take a look. PAUL BOWDEN: Hey guys. Paul Bowden here again. I'm back with my second try at stand up. Yes, I do know that I'm sitting down. The first time didn't go as well as I had hoped for, but I took the advice that you guys offered, and this time I'm going to be a little less awkward, and a little better on the joke front. DAVID J MALAN: Now if you'd like to subscribe to Paul's channel on YouTube, and you should, head to this URL here. Now brother Rob is of course very proud of his twin brother. In fact, pictured here is Rob as an animated GIF doing a fist pump. Now this has actually been circulated on the internet quite a bit. So if you Google around for this image here, you can even make this your wallpaper if you would like. And you should. Now Rob here was cheering his brother on in a popular American game show in which Paul was a participant. Now, what game show was that? Well we'll leave it to you, the internet, to figure out exactly what game show Paul Bowden participated on, and if you can find that out, let us know at Facebook, Reddit, or Twitter, and we'll see if we can't show a little clip in the next CS50Live. And now a piece of hardware. As you may have heard, CS50 in some of it's on campus sections uses a piece of hardware known as the Arduino. Pictured here for instance, is the Arduino Uno, a little circuit board that you can connect to a computer, and then actually program it by writing C+ code, and then burning it into the hardware so that it can actually execute programs. Now one of your classmates here, Areor, decided to wire up an Arduino Uno to his computer and then implement, if you can believe it, Problem Set 2's Caesar. Now we don't have any audio in this video, but let's zoom in and take a look at the end result. Now if you are a Redditer, you might have noticed this post a couple of weeks ago advertising episode two of CS50Live. Now one of your classmates, Louis from Montreal, Canada, after that episode kindly posted, "Wow, that one was historical." Only to correct himself a few minutes later with edit-- "hysterical, HA HA." So we'll take it either way, but what was funnier than that, is that Chris from Toronto, Canada then followed up with as follows, "It would be hysterical if the next episode was historical as a result of the production staff seeing this comment." Well indeed we did, and now some more history. We pulled this up from the archives. This is in a magazine, Popular Electronics, an issue from 1975, which bore this headline, World's First Minicomputer Kit to Rival Commercial Models. The Altair 8800. Now at the time there wasn't really a programming language with which you could make this machine solve problems very easily, and so a young Harvard student at the time named Bill Gates decided with some friends of his to write the first interpreter for programming language, known as basic, with which to drive this piece of hardware. We took a stroll recently with Professor Harry Lewis to Maxwell Dworkin, Harvard's computer science building, where the source code for that original BASIC interpreter still hangs. And we ask him if he could give us a tour. PROFESSOR HARRY LEWIS: What you have here is a listing of an early piece of software written by Bill Gates and Paul Allen, the founders of Microsoft. So the code is interesting for two reasons. First of all it became Microsoft's first product, which was an interpreter for the basic programming language. And secondly, this was one of the first attempts to create an interpreter so ordinary people could use personal computers. So Bill Gates was an undergraduate at Harvard. I started teaching at Harvard in 1974. This was done in 1975, so it was early in his career and early in my career. I actually taught Bill in a course around this time. Paul Allen was not a Harvard student, but he had been a high school classmate of Bill Gates. If you come and look at the listing, you'll actually find a third name, Monte Davidoff, who was Gates' classmate here at Harvard. OK, so here's an interesting comment up here. It says, "In 4k can delete square root but for loops should still work." OK, so what that means is that there was two ways to compile this program. One was to run on a version of this Altair computer that only had 4K words of memory. 4,096 words of memory. But the big version had 8 K, and so what this says is that in the 4K version you had to delete some code to make it fit. And one of the things that would be deleted would be the square root routine, but apparently the for loops should still work, even when you're compiling down for just the 4K version of the kit computer. Now if you zoom in on that source code you may have noticed a familiar name. Indeed, User Holloway was the individual who printed this source code in April of 1975. Now those of you who've asked questions, perhaps on Reddit or elsewhere for CS50, might have come across Glenn Holloway, one of CS50's team members who has actually been with the course for some time, and very graciously offers quite often to help students via the internet with any problems that they might solve. And indeed, it seems he was doing that even in yesteryear when this source code needed to be printed out. Now let's fast to present day, in fact this is truly breaking news. Recently revealed was this project tango, an initiative by Google and a number of other companies to actually create software with which you can use a phone or similar wireless device and walk around your physical environment and actually make a 3D model of it-- which typically is incredibly time consuming and/or expensive. And yet, with today's technology you might soon be doing this yourself, and you might soon be writing software yourself with which to leverage this new technique. Let's take a look. JOHNNY LEE: My name is Johnny Lee, and I work in the advanced technology and projects group at Google. Our small team here, based in California, has been working with universities, research labs, and industrial partners to harvest the last 10 years of research in robotics and computer vision to concentrate that technology into a very unique mobile phone. We are physical beings that live in a 3D world, yet mobile devices today assume that the physical world ends at the boundaries of the screen. Our goal is to give mobile devices a human scale understanding of space and motion. EITAN MARDER-EPPSTEIN: This is going to allow people to interact with their environment in just a fundamentally different way. We can prototype in a couple hours something that would take us months or even years before, because we didn't have this technology readily available. TED LARSON: What happens if you have all of these pieces in a phone? How does that change what a phone is? JOHNNY LEE: We have created a prototype phone containing highly customized hardware and software, designed to allow the phone to track it's motion in full 3D, in real time as you hold it. These sensors make over a quarter million 3D measurements every single second, updating the position and rotation of the phone, fusing this information into a single 3D model of the environment. CHRIS ANDERSON: We have a problem called navigation indoors. And it's a solution to that problem. EITAN MARDER-EPPSTEIN: It tracks your position as you go around the world. And it also makes a map of that. CHASE COBB: Imagine that you scan a small section of your living room. And then are able to generate a little game world in it. I don't know of any other controller or gaming device that can do that at the moment. TULLY FOOTE: Putting all this together, they pulled in experts from all around the world and got them all working on the same project. REMI EL-QUAZZANE: Those are very high caliber of people. Why? It's very simple. I think, actually, people that believe in the vision. JOHNNY LEE: Localization of mapping is there on your phone, and you just use it. It's this ability to follow in other people's footsteps. DIRK THOMAS: And we can also benefit from what we do for the project back for the open source community. CHASE COBB: Use it for the visually impaired, and give them auditory view of where they're going. VINCE PASCUAL: Being able to map your home, turn it around, let me see how this furniture works in the room. EITAN MARDER-EPPSTEIN: Virtual windows to different worlds, I mean the possibilities are really endless. JOHNNY LEE: Over the next few months we will be distributing dev kits to software developers to develop applications and algorithms on top of this platform. And we are just in the beginning, and we know there's a lot more work to do. But we are excited about where it is going to go. The future is awesome, and we believe we can build it faster together. DAVID J. MALAN: And now the moment you've probably been waiting for. You may recall that in the last episode we shared this tweet from CS50's own Andrew Hill, who a few months back wrote us this, "David J Malan, where's my lamp?" Now since then a number of you have submitted videos making your case as to why you should be the next recipient of a CS50 desk lamp. We thought we'd share at first one from Mohamed in Morocco. It turns out that Mohammed's birthday was this past week, so allow me also on behalf of CS50 to say happy 19th birthday to Mohamed. Let's take a look. MOHAMMED: Hello, I am Mohamed from Morocco. I am studying in another city-- which is a little far from my original city where I am living with my family-- where I left my desk lamp. So I'm living in a dormitory and this is my room. You can see here that light is yellow, and I don't really like it. I prefer the white one. That's why I want a CS50 desk lamp. You can imagine me sitting there and working with it. DAVID J. MALAN: And now another submission. This one Emad, a student in his dorm room. EMAD: I'm Emad from [INAUDIBLE]. So why do I want a desk lamp? First of all, it will act as a moderate source of light for my studies of high school, as I've just started fourth year. And as well as well as the online courses, especially CS50. The most important reason is that it will act as software for the course CS50. For example, if someone comes in my home and asks how did you get that beautiful lamp, I will tell them that CS50 class sent it. And so I spread the word of CS50, and most importantly, I remember if for my life. I am Emad, and this is CS50. DAVID J. MALAN: And now Tim from Malaysia, pictured here in the dark. Listen closely. DAVID J. MALAN: And now a family friendly film from Zevin in Vancouver, British Columbia. ZEVIN: Hi there. I'm Zevin Lennick. I'm doing EDX for CS50, and we can't find our lamp. The house is dark. What do you think? SPEAKER 1: Maybe it's over there? ZEVIN: Are you sure? SPEAKER 1: Maybe. ZEVIN: Should we go find out? SPEAKER 1: Let's go. ZEVIN: Alright. SPEAKER 1: Whoa, look at that light. ZEVIN: Maybe there's a lamp in there. SPEAKER 1: Let's check it out. ZEVIN: Do you want me to do it? SPEAKER 1: No, I'll do it. ZEVIN: OK. SPEAKER 1: Stay away from my lamp! Oh no! DAVID J. MALAN: And now a submission from Eggers in Latvia who really took things up a notch with this film. EGGERS: (AS LAMP 1) Well, how you doing? WOMAN: (AS LAMP 2) Mmm. Hello. EGGERS: (AS LIGHTBULB 1) This is awesome. WOMAN: (AS LIGHTBULB 2) Yes. Ooh! EGGERS: (AS LIGHTBULB 1) Ooh! EGGERS: (AS BABY LIGHTBULB) [LAUGHTER] Where is my lamp? EGGERS: Hi, my name is Eggers. And I am from Latvia. And this is-- SPEAKER 2: Our study. Stay tuned. EGGERS: No, this is CS50. DAVID J. MALAN: And now, last but not least, a submission from Phillip in Germany. PHILLIP: Hey there David, I'm Phil. I'm a student of cognitive science from Germany. Cognitive science is a field that studies the human mind and brain, joined from disciplines like neuroscience, psychology, linguistics, and even computer science. Now last semester, I spent a semester abroad at Harvard. And I also attended your course, CS50. Now while I loved CS50, I never got my own desk lamp. Now I raised my hand in almost every lecture in a desperate attempt to get me on stage and receive my own CS50 desk lamp-- or even just a fricking stress ball. Now I finally got my stress ball at the CS50 fair, but I'm still suffering deeply from that lack of a CS50 desk lamp in my life. So Mr. David Malan, my question to you is quite simple. Where's my [BLEEP] desk lamp? DAVID J. MALAN: And now a bit more history. You may recall the following film from week one of CS50. [MUSIC PLAYS] SPEAKER 3 : A triumph of mathematical and mechanical skill, as this great new automatic calculator at Harvard University. Intricate problems in mathematics put through the machine in coded form on tape are accurately solved in a minute fraction of the time required for human calculation. Designed to expedite all forms of mathematical and scientific research, the giant mechanical brain will work for the United States Navy until war's end. DAVID J. MALAN: Now the Mark I is no longer in use, but it does still live here on campus. We decided to take one final stroll with Professor Harry Lewis to take a closer look at Harvard's science center-- new home to the Harvard Mark I. PROFESSOR HARRY LEWIS: So we're in the Harvard Science Center, which is the crossroads of the Harvard campus. A lot of the science departments have their classrooms and offices in here. What's behind us here is the Mark I computer, which was early electromechanical computer. So the Mark I computer is here at Harvard because Howard Hathaway Aiken, who was the person who conceived and designed the machine in collaboration with IBM engineers, was a Harvard professor of applied mathematics. And he wanted to relieve the labor of solving numerical equations by mechanical calculation that was done on pencil and paper. What we have here is actually only a chunk of it. It was 51 feet long and when it was all in one piece. It could do three additions per second, a multiplication took six seconds, and a division took 15 seconds. So this was a huge advance over doing things with pencil and paper, but it was slow work, and keeping the machine going all the time was a major feat of electromechanical engineering expertise. It was used for ballistics calculations, for calculating the trajectory of missiles. And it was also used for a little bit of the calculation in the Manhattan Project for determining the right parameters for the atomic bomb. So what you see here are paper tape drives, so the program was punched in paper tape and was on a loop. What you see there are registers that would correspond to the stored memory of the machine, which was only used for data. The program itself was fixed. These electric typewriters were used to print the output. These dials, which have 10 positions, are where you would insert the constants. So the program was fixed on paper tape, and if you had a constant, like you have in C+ code-- you set some variable equal to 47 at the beginning of your program-- this is the equivalent here. You would dial in the number 47 using these registers. The computational equivalent of this is much less than the smallest wrist watch computer that is now being produced. DAVID J. MALAN: That's it for CS50Live. Thanks so much to this week's contributors, as well as to this week's team behind the camera. Let's close the show with a look at a scratch project from Lisa Chung in Boston, [MUSIC- YLVIS, "THE FOX"]