Difference between revisions of "Alan Kay Turing Award Lecture (2004)"
(23 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{#evt: | {{#evt: | ||
service=youtubeIA | service=youtubeIA | ||
− | |id= | + | |id=aXC19T5sJ1U |
|alignment=left | |alignment=left | ||
|autoresize=true | |autoresize=true | ||
Line 7: | Line 7: | ||
<slideview/> | <slideview/> | ||
+ | == Introduction by John Vlissides == | ||
+ | <note for="0:0:1"> | ||
+ | Dr. John Vlissides is the conference chair of OOPSLA 2004. | ||
+ | </note> | ||
<subtitle id="0:0:1">Good Afternoon, and welcome to the Association for Computing Machinery's Turing Award Lecture.</subtitle> | <subtitle id="0:0:1">Good Afternoon, and welcome to the Association for Computing Machinery's Turing Award Lecture.</subtitle> | ||
Line 18: | Line 22: | ||
<subtitle id="0:0:49">We are privileged to have this year's laureate choose OOPSLA as their venue.</subtitle> | <subtitle id="0:0:49">We are privileged to have this year's laureate choose OOPSLA as their venue.</subtitle> | ||
− | <subtitle id="0::0:55">So, without further ado I'd like to introduce Dr. Alan Kay. He's a senior fellow at Hewlett Packard. | + | <subtitle id="0::0:55">So, without further ado I'd like to introduce Dr. Alan Kay. He's a senior fellow at Hewlett Packard.</subtitle> |
<subtitle id="0:1:1">He's president of Viewpoints Research Institute.</subtitle> | <subtitle id="0:1:1">He's president of Viewpoints Research Institute.</subtitle> | ||
Line 25: | Line 29: | ||
<subtitle id="0:1:22">Let's give a warm OOPSLA welcome to Alan Kay.</subtitle> | <subtitle id="0:1:22">Let's give a warm OOPSLA welcome to Alan Kay.</subtitle> | ||
+ | |||
+ | == Introduction and Context: Education for High School and First Year College == | ||
<note for="0:1:47"> | <note for="0:1:47"> | ||
− | <slide for="0:1:47" name="TitleSlide.png"/> | + | <slide for="0:1:47" name="OOPSLA2004-TitleSlide.png"/> |
</note> | </note> | ||
<subtitle id="0:1:47">Of course, one of the funny things about the larger citation was, it was also said for coming up and helping to come up with many of the ideas that eventually led to C++ and Java.</subtitle> | <subtitle id="0:1:47">Of course, one of the funny things about the larger citation was, it was also said for coming up and helping to come up with many of the ideas that eventually led to C++ and Java.</subtitle> | ||
Line 50: | Line 56: | ||
<subtitle id="0:3:39">And, I wound up thinking that, perhaps, a slightly different version of this would make a reasonable Turing Lecture.</subtitle> | <subtitle id="0:3:39">And, I wound up thinking that, perhaps, a slightly different version of this would make a reasonable Turing Lecture.</subtitle> | ||
+ | |||
+ | == Don Knuth Quote on New Mathematics for Computing == | ||
<note for="0:3:53"> | <note for="0:3:53"> | ||
− | <slide for="0:3:53" name="Don Quote.png"/> | + | <slide for="0:3:53" name="OOPSLA2004-Don Quote.png"/> |
+ | Donald Knuth is a famous computer scientist. Wikipedia: [https://en.wikipedia.org/wiki/Donald_Knuth]. | ||
</note> | </note> | ||
<subtitle id="0:3:53">Here it is. First I want to start off with a Don quote.</subtitle> | <subtitle id="0:3:53">Here it is. First I want to start off with a Don quote.</subtitle> | ||
Line 73: | Line 82: | ||
<subtitle id="0:5:12">So we have a different way of doing about, and hence Don's quote, which i think is absolutely perfect.</subtitle> | <subtitle id="0:5:12">So we have a different way of doing about, and hence Don's quote, which i think is absolutely perfect.</subtitle> | ||
+ | |||
+ | == Research Accomplishment within the Community == | ||
<note for="0:5:19"> | <note for="0:5:19"> | ||
− | <slide for="0:5:19" name=" | + | <slide for="0:5:19" name="OOPSLA2004-Colleagues.png"/> |
</note> | </note> | ||
<subtitle id="0:5:19"> Because our field is the way it is, everything we do is done within a community, and nobody has benefited more from their community than I have over the years.</subtitle> | <subtitle id="0:5:19"> Because our field is the way it is, everything we do is done within a community, and nobody has benefited more from their community than I have over the years.</subtitle> | ||
Line 83: | Line 94: | ||
<subtitle id="0:5:47">These are some of the people. Some of them you notice have gray hair.</subtitle> | <subtitle id="0:5:47">These are some of the people. Some of them you notice have gray hair.</subtitle> | ||
− | <subtitle id="0:5:51">This guy, I know is here, Dan Ingalls, who is the actual creator of Smalltalk./subtitle> | + | <note for="0:25:20"> |
+ | Daniel Ingalls on Wikipedia: [https://en.wikipedia.org/wiki/Dan_Ingalls] | ||
+ | </note> | ||
+ | <subtitle id="0:5:51">This guy, I know is here, Dan Ingalls, who is the actual creator of Smalltalk.</subtitle> | ||
<subtitle id="0:6:2">I just wrote the math part, and Dan was the guy who actually made it work.</subtitle> | <subtitle id="0:6:2">I just wrote the math part, and Dan was the guy who actually made it work.</subtitle> | ||
<subtitle id="0:6:6">So, we should give him a round of applause.</subtitle> | <subtitle id="0:6:6">So, we should give him a round of applause.</subtitle> | ||
+ | |||
+ | == Science and Engineering of Computing: Pyramids vs. Arches vs. Cathedrals == | ||
<note for="0:6:20"> | <note for="0:6:20"> | ||
− | <slide for="0:6:20" name="Three Architectures0.png"/> | + | <slide for="0:6:20" name="OOPSLA2004-Three Architectures0.png"/> |
− | <slide for="0:11:29" name="Three Architectures1.png"/> | + | <slide for="0:11:29" name="OOPSLA2004-Three Architectures1.png"/> |
</note> | </note> | ||
<subtitle id="0:6:18">I guess the first thing to think about here is we have these terms: Computer science and software engineering.</subtitle> | <subtitle id="0:6:18">I guess the first thing to think about here is we have these terms: Computer science and software engineering.</subtitle> | ||
Line 97: | Line 113: | ||
<subtitle id="0:6:26">I happen to be around when both of these terms were made up</subtitle> | <subtitle id="0:6:26">I happen to be around when both of these terms were made up</subtitle> | ||
+ | <note for="0:6:28"> | ||
+ | Alan Perlis [https://en.wikipedia.org/wiki/Alan_Perlis] was a leader of the early computer science field. | ||
+ | </note> | ||
<subtitle id="0:6:28">Al Perlis made up the term computer science, absolutely not implying that we had one but as something to actually aspire to.</subtitle> | <subtitle id="0:6:28">Al Perlis made up the term computer science, absolutely not implying that we had one but as something to actually aspire to.</subtitle> | ||
Line 119: | Line 138: | ||
<subtitle id="0:8:26">and trying to figure out just exactly what it is that those needle swings actually mean.</subtitle> | <subtitle id="0:8:26">and trying to figure out just exactly what it is that those needle swings actually mean.</subtitle> | ||
+ | <note for="0:8:32"> | ||
+ | The report from the Software Engineering Conference in '68 is available online. [http://www.scrummanager.net/files/nato1968e.pdf] | ||
+ | </note> | ||
<subtitle id="0:8:32">Software engineering actually was a term that came about for a conference (I think) in '68 and Garmisch, Germany.</subtitle> | <subtitle id="0:8:32">Software engineering actually was a term that came about for a conference (I think) in '68 and Garmisch, Germany.</subtitle> | ||
Line 125: | Line 147: | ||
<subtitle id="0:8:51">In fact, the slide shows kind of..., from the depths to something that we might call engineering today of the difference between a pyramid made out of bricks with no architecture.</subtitle> | <subtitle id="0:8:51">In fact, the slide shows kind of..., from the depths to something that we might call engineering today of the difference between a pyramid made out of bricks with no architecture.</subtitle> | ||
+ | <note for="0:9:8"> | ||
+ | The venue of the talk was Vancouver, Canada. Alan is referring to Seattle, where Microsoft is located. | ||
+ | </note> | ||
<subtitle id="0:9:8">Just a garbage dump with a nice limestone cover made by slaves: Sounds like something that happens a few miles south of here, actually.</subtitle> | <subtitle id="0:9:8">Just a garbage dump with a nice limestone cover made by slaves: Sounds like something that happens a few miles south of here, actually.</subtitle> | ||
− | <subtitle id="0:9:24">I can just imagine some | + | <subtitle id="0:9:24">I can just imagine some pharaonic architect at some conference, announcing their new pyramid.</subtitle> |
+ | <note for="0:9:45"> | ||
+ | One of the books is "Building the Empire State", edited by Carol Willis. [http://books.wwnorton.com/books/detail.aspx?ID=16901]. See also another talk by Alan on this site: [http://tinlizzie.org/IA/index.php/Rethinking_Design,_Risk,_and_Software_(2012)#A_book_on_the_Empire_State_Building]. | ||
+ | </note> | ||
<subtitle id="0:9:45">On the other side of the scale, we have one of my favorite artifacts: the Empire State Building, which is well documented and I urge every single one of you who has aspirations to be an engineer to read the three or four excellent recent books about the Empire State Building.</subtitle> | <subtitle id="0:9:45">On the other side of the scale, we have one of my favorite artifacts: the Empire State Building, which is well documented and I urge every single one of you who has aspirations to be an engineer to read the three or four excellent recent books about the Empire State Building.</subtitle> | ||
Line 177: | Line 205: | ||
<subtitle id="0:13:27">So it was a very different time back then but it was a lot simpler.</subtitle> | <subtitle id="0:13:27">So it was a very different time back then but it was a lot simpler.</subtitle> | ||
− | + | == A Simple Model of Motivations: Inner- vs. outer-motivated. instrumental vs. intrinsic reasoners == | |
− | |||
− | |||
<subtitle id="0:13:35">I could give a whole talk, maybe not terribly successfully, about motivations.</subtitle> | <subtitle id="0:13:35">I could give a whole talk, maybe not terribly successfully, about motivations.</subtitle> | ||
Line 186: | Line 212: | ||
<subtitle id="0:13:52">But I thought I'd show a much simpler model than we use, but it's only a two-dimensional model.</subtitle> | <subtitle id="0:13:52">But I thought I'd show a much simpler model than we use, but it's only a two-dimensional model.</subtitle> | ||
− | <subtitle id="0:14:1">And just have us all ponder it for a bit. So, one dimension is, in the reasoning and change area, is the incredible disparity between the percentage of human beings, who are basically instrumental reasoners,</subtitle> | + | <subtitle id="0:14:1">And just have us all ponder it for a bit. So, one dimension is, in the reasoning and change area, is the incredible disparity between the percentage of human beings, who are basically instrumental reasoners and,</subtitle> |
<subtitle id="0:14:20">those who are basically interested in ideas. This has been studied in a variety of different ways.</subtitle> | <subtitle id="0:14:20">those who are basically interested in ideas. This has been studied in a variety of different ways.</subtitle> | ||
Line 233: | Line 259: | ||
<note for="0:17:35"> | <note for="0:17:35"> | ||
− | <slide for="0:17:35" name="Motivations2.png"/> | + | <slide for="0:17:35" name="OOPSLA2004-Motivations2.png"/> |
</note> | </note> | ||
<subtitle id="0:17:35">You know, this group does not go to the polls to vote on the things they believe in.</subtitle> | <subtitle id="0:17:35">You know, this group does not go to the polls to vote on the things they believe in.</subtitle> | ||
Line 243: | Line 269: | ||
<subtitle id="0:17:55">It's a seeping kind of consensus, and it has many of the same characteristics as a model of a forest fire.</subtitle> | <subtitle id="0:17:55">It's a seeping kind of consensus, and it has many of the same characteristics as a model of a forest fire.</subtitle> | ||
+ | <note for="0:18:4"> | ||
+ | The system was StarSqueak, which is inspired by Resnick's StarLogo. A book by Resnick explains the non-linearity of the simulation [https://mitpress.mit.edu/books/turtles-termites-and-traffic-jams]. | ||
+ | </note> | ||
<subtitle id="0:18:4">I have a little particle system here.</subtitle> | <subtitle id="0:18:4">I have a little particle system here.</subtitle> | ||
Line 292: | Line 321: | ||
<subtitle id="0:21:52">Because quite a bit of the work at PARC peaked 30 years ago from those days, and I'm curious to see whether those ideas will actually be accepted.</subtitle> | <subtitle id="0:21:52">Because quite a bit of the work at PARC peaked 30 years ago from those days, and I'm curious to see whether those ideas will actually be accepted.</subtitle> | ||
+ | |||
+ | == Doug Engelbart and NLS == | ||
<note for="0:22:05"> | <note for="0:22:05"> | ||
− | <slide for="0:22:05" name="NLS New.png"/> | + | <slide for="0:22:05" name="OOPSLA2004-NLS New.png"/> |
+ | Doug Enbelbart on the Engelbart Institute site: [http://dougengelbart.org/]. | ||
</note> | </note> | ||
− | <subtitle id="0:22:3">However, if you look at an extreme case, Doug Engelbart, who had some of the best ideas ever. | + | <subtitle id="0:22:3">However, if you look at an extreme case, Doug Engelbart, who had some of the best ideas ever.</subtitle> |
− | <subtitle id="0:22:10">I think he was on a different plane. His ideas are now getting closer and closer to being 40 years old.</subtitle> | + | <subtitle id="0:22:10">I think he was on a different plane. His ideas are now getting closer and closer to being 40 years old in their articulate expression, and most people still don't understand what it was that he was trying to do.</subtitle> |
− | + | == Temptation of Complexity == | |
<note for="0:22:29"> | <note for="0:22:29"> | ||
− | <slide for="0:22:29" name="JOY.png"/> | + | <slide for="0:22:29" name="OOPSLA2004-JOY.png"/> |
+ | The slide is in the style of the Joy of Cooking ["http://www.thejoykitchen.com/"]. | ||
</note> | </note> | ||
− | <subtitle id="0:22: | + | <subtitle id="0:22:28">I think an ancillary problem is that our field, and I think people in general, take great delight in complexity.</subtitle> |
− | <subtitle id="0:22: | + | <subtitle id="0:22:42">It seems like, you go to schools, it is remarkable how much work they make the poor kids do, when they taught the math better and differently, the kids would have to do much less work.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:22:59">But in fact, I think people delight in complexity and think that putting immense amounts of hard work in, even if there's an easier way is actually, there's something morally good about it.</subtitle> |
− | <subtitle id="0:23: | + | <subtitle id="0:23:15">I think, for our field, one of the hardest things is the delight of complexity, because of the many levels of structure in computing, and the difficulty of going from one level to another.</subtitle> |
− | <subtitle id="0:23: | + | <subtitle id="0:23:33">Pretty much everyone who gets interested in computing and a successful at it is a person who has mastered staggering amounts of complexity.</subtitle> |
− | <subtitle id="0:23: | + | <subtitle id="0:23:42">Now, I believe that most of those complexity is absolutely unnecessary, and I believe it can be proved that it's unnecessary.</subtitle> |
− | |||
− | |||
<note for="0:23:53"> | <note for="0:23:53"> | ||
− | <slide for="0:23:53" name="JOY2.png"/> | + | <slide for="0:23:53" name="OOPSLA2004-JOY2.png"/> |
</note> | </note> | ||
− | <subtitle id="0:23: | + | <subtitle id="0:23:51">What we really want is to find the joy of simplicity.</subtitle> |
− | <subtitle id="0:23: | + | <subtitle id="0:23:57">A lot of this talk is almost a living cliché, in the sense that very little of what I'm going to say here is stuff that you don't already know.</subtitle> |
− | <subtitle id="0:24: | + | <subtitle id="0:24:10">But, when I started thinking about what should I say at this talk, simplicity just kept on coming back.</subtitle> |
<subtitle id="0:24:17">All the projects I've been involved in that have been successful have been successful because the people who worked in them put quite a bit of effort into keeping things to be simple.</subtitle> | <subtitle id="0:24:17">All the projects I've been involved in that have been successful have been successful because the people who worked in them put quite a bit of effort into keeping things to be simple.</subtitle> | ||
+ | |||
+ | == PARC == | ||
<note for="0:24:35"> | <note for="0:24:35"> | ||
− | <slide for="0:24:35" name="PARC Inventions1.png"/> | + | <slide for="0:24:35" name="OOPSLA2004-PARC Inventions1.png"/> |
</note> | </note> | ||
− | <subtitle id="0:24: | + | <subtitle id="0:24:32">And, this community of ARPA and then Xerox PARC was outstanding at being simple.</subtitle> |
− | <subtitle id="0:24: | + | <subtitle id="0:24:41">This is a very, very confident group of people.</subtitle> |
− | <subtitle id="0:24: | + | <subtitle id="0:24:48">But surprisingly, I won't use the word modest because I don't think anybody would recognize that word applied to these people, but I would say we are very, very respectful of these grand ideas they are trying to do.</subtitle> |
− | <subtitle id="0:25: | + | <note for="0:25:6"> |
+ | Butler Lampson on Wikipedia: [https://en.wikipedia.org/wiki/Butler_Lampson] | ||
+ | </note> | ||
+ | <subtitle id="0:25:6">Butler Lampson here was always pounding for simplicity.</subtitle> | ||
− | <subtitle id="0:25: | + | <note for="0:25:6"> |
+ | Charles Thacker on Wikipedia: [https://en.wikipedia.org/wiki/Charles_P._Thacker]. | ||
+ | </note> | ||
+ | <subtitle id="0:25:13">Chuck Thacker, we did the Alto in just three months, was a master of simplicity.</subtitle> | ||
− | <subtitle id="0:25: | + | <subtitle id="0:25:20">Dan Ingalls was master of simplicity.</subtitle> |
− | <subtitle id="0:25: | + | <note for="0:25:25"> |
+ | Robert Metcalfe and David Boggs designed Ethernet and started the 3COM compnay [http://ethernethistory.typepad.com/papers/EthernetPaper.pdf] | ||
+ | </note> | ||
+ | <subtitle id="0:25:25">So were Metcalfe and Boggs.</subtitle> | ||
<subtitle id="0:25:29">Metcalfe tells a great, great stories about how he didn't actually -- how many things he'd actually didn't understand.</subtitle> | <subtitle id="0:25:29">Metcalfe tells a great, great stories about how he didn't actually -- how many things he'd actually didn't understand.</subtitle> | ||
− | <subtitle id="0:25: | + | <subtitle id="0:25:36">It was incredibly important that he did not understand of of these things. Else, he never would have been able to invent the Ethernet.</subtitle> |
+ | <note for="0:25:44"> | ||
+ | Gary Starkweather on Wikipedia: [https://en.wikipedia.org/wiki/Gary_Starkweather] | ||
+ | </note> | ||
+ | <subtitle id="0:25:44">Gary Starkweather, who did the laser printer -- first laser printer was a page a second, 500 pixels to the inch, faster than most laser printers today, was about three-quarters made with parts that Gary got from Edmund Scientific hobby catalog,</subtitle> | ||
− | <subtitle id="0: | + | <subtitle id="0:26:6">because they were cheap so he could get many of them and try them out, and so forth.</subtitle> |
− | <subtitle id="0:26: | + | <subtitle id="0:26:14">This particular way of looking at things, which was... basically this group said we're just nowhere near as smart as IBM claims to be.</subtitle> |
− | <subtitle id="0:26: | + | <subtitle id="0:26:29">They're always announcing some new complicated network architecture that we can't see how to make it work.</subtitle> |
− | <subtitle id="0:26: | + | <subtitle id="0:26:37">So, we'll just stick to our old full duplex ideas and retransmission, and put a few other things in there.</subtitle> |
− | <subtitle id="0:26: | + | <subtitle id="0:26:44">It may not work as well as what IBM claims it's going to do, but it's probably going to work.</subtitle> |
− | <subtitle id="0:26: | + | <subtitle id="0:26:51">Funny thing is that the network's we use today are those terribly designed, unbelievably inefficient stochastic networks that are far from perfect.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:27:4">But, what's great is that they eventually get that packet through perfectly.</subtitle> |
− | <subtitle id="0:27: | + | <subtitle id="0:27:09">You just have to be willing to wait.</subtitle> |
− | + | == The idea of Kernels to build Larger Systems == | |
<note for="0:27:14"> | <note for="0:27:14"> | ||
− | <slide for="0:27:14" name="Some Prejudices.png"/> | + | <slide for="0:27:14" name="OOPSLA2004-Some Prejudices.png"/> |
+ | Books shown are "Molecular Biology of the Gene" by James Watson, "Relativity Visualized" by Lewis Carroll Epstein, and the US Constitution. | ||
</note> | </note> | ||
<subtitle id="0:27:14">The other thing that this group was really good at was what I call a different kind of simplicity.</subtitle> | <subtitle id="0:27:14">The other thing that this group was really good at was what I call a different kind of simplicity.</subtitle> | ||
Line 376: | Line 423: | ||
<subtitle id="0:27:23">It's hard to claim that Maxwell's equations here is simple, because there are all that work you have to do to understand vectors and curl and divergence and gradient.</subtitle> | <subtitle id="0:27:23">It's hard to claim that Maxwell's equations here is simple, because there are all that work you have to do to understand vectors and curl and divergence and gradient.</subtitle> | ||
− | <subtitle id="0:27: | + | <subtitle id="0:27:36">But the thing about it is once you've done that work it shrinks down to something that's just a simple eyeful.</subtitle> |
− | <subtitle id="0:27: | + | <subtitle id="0:27:43">the Constitution of the United States is one of my favorite systems design.</subtitle> |
− | <subtitle id="0:27: | + | <subtitle id="0:27:49">Think of it: Millions and millions of mutually incompatible parts running without completely breaking for more than 200 years. Pretty Amazing.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:27:59">You can hold it in your hand. The reason you can hold it in your hand is they were wise not to put any laws in it.</subtitle> |
− | <subtitle id="0:28: | + | <subtitle id="0:28:6">It was not a law-based thing. It's not a case-based thing. It was a principle-based thing. It was a kernel.</subtitle> |
<subtitle id="0:28:14">These are the kinds of things that appeal to me greatly over the years.</subtitle> | <subtitle id="0:28:14">These are the kinds of things that appeal to me greatly over the years.</subtitle> | ||
− | <subtitle id="0:28: | + | <subtitle id="0:28:21">I think trying to give beginners at computing a taste for the power of the particular kind of simplicity that works so well is what we should do</subtitle> |
+ | |||
+ | == Relationship between Science, Math, Computing and Systems in Introductory Courses == | ||
<note for="0:28:35"> | <note for="0:28:35"> | ||
− | <slide for="0:28:35" name="Four Areas.png"/> | + | <slide for="0:28:35" name="OOPSLA2004-Four Areas.png"/> |
</note> | </note> | ||
− | <subtitle id="0:28:35">Now, the other thing I've noticed in talking with younger people and teaching a course, upper division course UCLA once a year, is that</subtitle> | + | <subtitle id="0:28:35">Now, the other thing I've noticed in talking with younger people and teaching a course, upper division course at UCLA once a year, is that</subtitle> |
− | <subtitle id="0:28:47">it's not so much that the juniors and seniors don't know that much: they actually don't know that much for being close to graduating from college, but the thing that is | + | <subtitle id="0:28:47">it's not so much that the juniors and seniors don't know that much: they actually don't know that much for being close to graduating from college, but the thing that is distressing about them is that the things that they do know, they know very badly,</subtitle> |
− | <subtitle id="0:29: | + | <subtitle id="0:29:5">as they know them in ways that are almost counterproductive for their thinking.</subtitle> |
− | <subtitle id="0:29: | + | <subtitle id="0:29:12">So I think in a first course at anything, you have a real chance to not just teach the one subject. But in the first course, you can actually touch on a lot of subjects.</subtitle> |
− | <subtitle id="0:29: | + | <subtitle id="0:29:26">For instance, I think math and science should always be taught together in the beginning.</subtitle> |
− | <subtitle id="0:29: | + | <subtitle id="0:29:33">They came about that way. One is a language and one is a process.</subtitle> |
− | <subtitle id="0:29: | + | <subtitle id="0:29:39">I think systems and computing should be taught together. I think the four of them should be taught together.</subtitle> |
− | <subtitle id="0:29: | + | <subtitle id="0:29:46">there are arts. We should teach art and engineering, and why not throw in a little bit about how these unusual ways of looking at the world have affected civilization.</subtitle> |
<subtitle id="0:29:59">I think the other thing that is so critical and so absent in most of our undergraduate computer science curricula is the failure to think what we're doing as a kind of literacy.</subtitle> | <subtitle id="0:29:59">I think the other thing that is so critical and so absent in most of our undergraduate computer science curricula is the failure to think what we're doing as a kind of literacy.</subtitle> | ||
− | <subtitle id="0:30: | + | <subtitle id="0:30:15">Literacy is something that comes up about when you have first ideas that are worthwhile talking about.</subtitle> |
− | <subtitle id="0:30: | + | <subtitle id="0:30:21">You have a way of writing down those ideas and discussing them that gives literature.</subtitle> |
− | <subtitle id="0:30: | + | <subtitle id="0:30:26">Literacy is the ability to deal with both the spoken and the written forms of these ideas.</subtitle> |
− | <subtitle id="0:30: | + | <subtitle id="0:30:34">When we teach an English class, a first English class in college, we're not aiming that class at people who are going to become professional writers, when they graduate four years later, </subtitle> |
− | <subtitle id="0:30: | + | <subtitle id="0:30:45">We actually think of the impact of the printing press, and the new rhetorics and new ways of arguing that came with the printing press as something that is larger than becoming a professional reader or writer.</subtitle> |
− | <subtitle id="0:31: | + | <subtitle id="0:31:3">I think the same thing is true for computing.</subtitle> |
− | <subtitle id="0:31: | + | <subtitle id="0:31:6">Fifty years from now, this will not be controversial. But right now, it's thought of as, even in mighty Stanford with its great endowment, as basically vocational training in Java. It's primarily thought of as teaching kids programming.</subtitle> |
− | <subtitle id="0:31: | + | <subtitle id="0:31:25">It's absolutely important to learn how to program but computer science and software engineering are not the same as programming, any more than building Chartres Cathedral is the same as Brick Laying.</subtitle> |
− | <subtitle id="0:31: | + | <subtitle id="0:31:40">You have to understand one the other, but they're very different.</subtitle> |
+ | |||
+ | <note for="0:31:44"> | ||
+ | Konrad Lorenz was an ethologist [https://en.wikipedia.org/wiki/Konrad_Lorenz]. He is famous for books such as [https://en.wikipedia.org/wiki/King_Solomon%27s_Ring_(book)|King Solomon's Ring]. | ||
+ | </note> | ||
+ | <subtitle id="0:31:44">I think this is absolutely critical, because the picture on this little slide here is Konrad Lorenz out swimming in the pond with his ducks following.</subtitle> | ||
− | <subtitle id="0:31: | + | <subtitle id="0:31:54">Remember of Lorentz found that whatever moved near a duckling during one little critical period of a few hours was taken thereafter by that duckling to be its mother.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:32:9">And, it would follow even into adulthood that person.</subtitle> |
− | <subtitle id="0:32: | + | <subtitle id="0:32:14">Lorenz found that they would follow him, even more happily if he jumped into the water. So, there he is.</subtitle> |
− | <subtitle id="0:32: | + | <subtitle id="0:32:20">I think whenever we're introducing somebody to something, we have to realize that we are going to be a Konrad.</subtitle> |
− | <subtitle id="0:32: | + | <subtitle id="0:32:28">If we're successful, we're going to be a kind of Konrad Lorenz. We should take great care to what we're going to imprint them on.</subtitle> |
− | <subtitle id="0:32: | + | <subtitle id="0:32:34">We don't want to imprint them on, for God's sakes, is the data structures and algorithms.</subtitle> |
− | <subtitle id="0:32: | + | <subtitle id="0:32:41">That was a great idea in the 50s and you had to understand it. And, it's still useful today for optimization and other things.</subtitle> |
− | <subtitle id="0:32: | + | <subtitle id="0:32:52">But, it is not the center of the field, and has not been at the center of the field for a long time.</subtitle> |
− | <subtitle id="0:32: | + | <subtitle id="0:32:56">What's worse about it is it doesn't scale.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:33:0">Those very little systems aspect in way the data structures and algorithms are taught.</subtitle> |
− | <subtitle id="0:33: | + | <subtitle id="0:33:7">I believe that we have to do is to give the students a real taste of what the whole deal is.</subtitle> |
− | <subtitle id="0:33: | + | <subtitle id="0:33:14">They have to start thinking in systems ways, thinking in mathematical ways, scientific ways, as we go along.</subtitle> |
− | <subtitle id="0:33: | + | <subtitle id="0:33:23">This is a tall order, obviously.</subtitle> |
− | + | == Sketchpad == | |
<note for="0:33:32"> | <note for="0:33:32"> | ||
− | <slide for="0:33:32" name="Sketchpad1.png"/> | + | <slide for="0:33:32" name="OOPSLA2004-Sketchpad1.png"/> |
+ | Alan shows the Sketchpad movie embedded in the slide. There are numerous instances of the movie online. A digital version of his thesis is also available: [https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-574.pdf]. | ||
</note> | </note> | ||
− | <subtitle id="0:33: | + | <subtitle id="0:33:26">Now, we could all remember our Konrad Lorentz. Mine happened after I'd been a programmer for five years.</subtitle> |
− | |||
− | |||
− | <subtitle id="0:33: | + | <subtitle id="0:33:36">A journeyman programmer putting myself through school, went to graduate school, and was given Ivan Sutherland's thesis by Dave Evans.</subtitle> |
− | <subtitle id="0:33: | + | <subtitle id="0:33:49">Dave said: "Read it, then come back and talk with me about it."</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:33:55">It was big thick thing, but I saw that his thesis advisor was a guy by the name of Claude E. Shannon.</subtitle> |
− | <subtitle id="0:34: | + | <subtitle id="0:34:5">I'd heard of Shannon. I thought: "Boy, if Shannon signed this thing, maybe I should read it."</subtitle> |
− | <subtitle id="0:34: | + | <subtitle id="0:34:10">I discovered that it was the most amazing thing that I had ever heard of being done with a computer up to that point. [I will] just show you a little bit of the idea of it.</subtitle> |
− | <subtitle id="0:34: | + | <subtitle id="0:34:28">This is a huge machine, which is about the size of this auditorium, had only one guy on it from 3 o'clock the morning to 6 o'clock the morning.</subtitle> |
− | <subtitle id="0:34: | + | <subtitle id="0:34:38">You know, as he just sketched in something there, then told those edges to become mutually perpendicular, and Sketchpad figured out how to do that for him.</subtitle> |
− | <subtitle id="0:34: | + | <subtitle id="0:34:46">First system to have a clipping window. You are actually drawing on this huge virtual sheet of paper.</subtitle> |
− | <subtitle id="0:34: | + | <subtitle id="0:34:53">Then he draws quickly, points to these two guys and say, "okay, become parallel". It figures out how to do that.</subtitle> |
− | <subtitle id="0:35: | + | <subtitle id="0:35:3">Now he's saying "be collinear", so lay yourself over these lines.</subtitle> |
<subtitle id="0:35:11">Of course, this display on this machine only plotted points.</subtitle> | <subtitle id="0:35:11">Of course, this display on this machine only plotted points.</subtitle> | ||
− | <subtitle id="0:35: | + | <subtitle id="0:35:15">About half the capacity of this machine, about here over there.</subtitle> |
− | <subtitle id="0:35: | + | <subtitle id="0:35:21">It was just to put these little dots up on the screen, and pretend it was a line drawing display.</subtitle> |
− | <subtitle id="0:35: | + | <subtitle id="0:35:28">Now, he's got a hole in the flange.</subtitle> |
− | <subtitle id="0:35: | + | <subtitle id="0:35:34">And, he wants to make a rivet.</subtitle> |
− | <subtitle id="0:35:38">Got some more ink. Notice | + | <subtitle id="0:35:38">Got some more ink. Notice the two-handed user interface, as all user interfaces should be.</subtitle> |
− | <subtitle id="0:35:47">That other hand is for | + | <subtitle id="0:35:47">That is what the other hand is for.</subtitle> |
− | <subtitle id="0:35: | + | <subtitle id="0:35:50">He pointed the center of the cross piece there to get the center of the arc. And again, let's do the mutually perpendicular trick,</subtitle> |
− | <subtitle id="0:36: | + | <subtitle id="0:36:0">that drags the center guy, which drags the arc guys we got a nice little symmetric rivet.</subtitle> |
<subtitle id="0:36:8">And, he could tell it to be in some ratio.</subtitle> | <subtitle id="0:36:8">And, he could tell it to be in some ratio.</subtitle> | ||
− | <subtitle id="0:36: | + | <subtitle id="0:36:12">The two sides of the vertical part of the rivet. Here, he's just showing it us that will do another solution.</subtitle> |
− | <subtitle id="0:36: | + | <subtitle id="0:36:21">now he's going to go back to the original form and show us one other interesting thing,</subtitle> |
<subtitle id="0:36:32">which is he can make instances of this guy.</subtitle> | <subtitle id="0:36:32">which is he can make instances of this guy.</subtitle> | ||
− | <subtitle id="0:36:41">They get an instance of the rivet | + | <subtitle id="0:36:41">They get an instance of the rivet here he can move it around. See, the success of sketchpad led to a desire for a better looking displays.</subtitle> |
− | <subtitle id="0:36: | + | <subtitle id="0:36:56">Actually, those twinkling is.. they discovered right away that you got seasick unless they randomly plotted the dots.</subtitle> |
− | <subtitle id="0:37: | + | <subtitle id="0:37:6">Every time something is being done in there, they are actually sorting half the memory of the machine to keep the dot display random.</subtitle> |
<subtitle id="0:37:14">it wouldn't swim around much more than it it is here.</subtitle> | <subtitle id="0:37:14">it wouldn't swim around much more than it it is here.</subtitle> | ||
− | <subtitle id="0:37:20">He's got four instances now, and he says, whoops, I forgot about the cross piece. So, it goes to the master, | + | <subtitle id="0:37:20">He's got four instances now, and he says, "whoops, I forgot about the cross piece." So, it goes to the master, which we would call a class, makes the cross pieces transparent.</subtitle> |
− | |||
− | |||
− | <subtitle id="0:37: | + | <subtitle id="0:37:32">And, we see the instances all feel that.</subtitle> |
− | <subtitle id="0:37: | + | <subtitle id="0:37:40">Now, he's going to take this thing that he just made, and make it into a master.</subtitle> |
− | <subtitle id="0:37: | + | <subtitle id="0:37:53">So, the new construction is a master. Now, he can get some instances of this flange here.</subtitle> |
− | <subtitle id="0:38: | + | <subtitle id="0:38:01">The range of Sketchpad was surprising.</subtitle> |
− | <subtitle id="0:38: | + | <subtitle id="0:38:6">By the end of 1962, he could not only do stuff like this, but he decided, okay, I need letters and numbers.</subtitle> |
− | <subtitle id="0:38: | + | <subtitle id="0:38:17">so letters and numbers were actually made out of the Sketchpad stuff directly by drawing them in.</subtitle> |
− | <subtitle id="0:38: | + | <subtitle id="0:38:24">So, all of the captions and all of his drawings in his thesis were made by the system as well.</subtitle> |
− | <subtitle id="0:38: | + | <subtitle id="0:38:29">And then, he realized: "oh yeah, I can actually do a bridge."</subtitle> |
− | <subtitle id="0:38: | + | <subtitle id="0:38:34">Because the bridge actually acts a little bit like a very stiff set of springs.</subtitle> |
<subtitle id="0:38:41">I can tell Sketchpad to try and keep these guys constant when something is trying to force them to move and I can measure the disparity,</subtitle> | <subtitle id="0:38:41">I can tell Sketchpad to try and keep these guys constant when something is trying to force them to move and I can measure the disparity,</subtitle> | ||
− | <subtitle id="0:38: | + | <subtitle id="0:38:53">the strain on each one of these guys and I actually can show those labels on all of these guys, and I get a simulation of a bridge without Sketchpad ever having heard about a bridge.</subtitle> |
− | <subtitle id="0:39:5">He realized | + | <subtitle id="0:39:5">He realized: "oh, I can do that with EMF also."</subtitle> |
− | <subtitle id="0:39: | + | <subtitle id="0:39:9">I can make circuits, and the constraints will actually drive all of these simulations.</subtitle> |
− | <subtitle id="0:39: | + | <subtitle id="0:39:15">In my career, I think what I've been doing for the last forty years is trying to get the next version of Sketchpad out,</subtitle> |
<subtitle id="0:39:26">because if you think about what this thing is. This is kind of what we want.</subtitle> | <subtitle id="0:39:26">because if you think about what this thing is. This is kind of what we want.</subtitle> | ||
− | <subtitle id="0:39: | + | <subtitle id="0:39:30">We want something, in which anything that we are interested in, especially dynamic things that were interested in, we can simply draw them in there,</subtitle> |
− | <subtitle id="0:39: | + | <subtitle id="0:39:42">put in the relationships that we understand piece by piece, and have the system synthesize all this into a dynamic simulation of astounding range.</subtitle> |
− | <subtitle id="0:39: | + | <subtitle id="0:39:53">It's just beautiful. (If there are,) I don't know whether our field has Newton yet. But if it has Newton, then I think it would have to be Ivan Sutherland, because the field was before Ivan came on the scene, and after it was fantastic.</subtitle> |
− | <subtitle id="0:40: | + | <subtitle id="0:40:13">I went to ask Ivan how could you possibly, in one year, in machine code, on this big but rather slow machine with no graphics display on it, have done the first graphics system, the first object-oriented software system, and the first dynamic problem-solving system.</subtitle> |
− | <subtitle id="0:40: | + | <subtitle id="0:40:40">Ivan looked at me and said: "Well, I didn't know it was hard."</subtitle> |
− | <subtitle id="0:40: | + | <subtitle id="0:40:47">(so the period) By the way this thesis is available from MIT - you should get it and read it.</subtitle> |
− | <subtitle id="0:40: | + | <subtitle id="0:40:53">My favorite line from it is, he says that his hope that future work will far surpass this effort.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:41:5">So, that was my first day in graduate school.</subtitle> |
− | + | == Imprinting of Good Ideas == | |
<note for="0:41:14> | <note for="0:41:14> | ||
− | <slide for="0:41:14" name="ARPAnet.png"/> | + | <slide for="0:41:14" name="OOPSLA2004-ARPAnet.png"/> |
</note> | </note> | ||
− | <subtitle id="0:41: | + | <subtitle id="0:41:13">Second day, I found out about that I was actually in the middle of the ARPA community, which I had no realization about.</subtitle> |
− | <subtitle id="0:41: | + | <note for="0:41:21"> |
+ | J.C.R. Licklider was the first director of ARPA IPTO until 64 and succeeded by Robert Taylor. The funding is credited to create various computer inventions, including the world wide network now known as the Internet. | ||
+ | </note> | ||
+ | <subtitle id="0:41:21">Licklider was not the funder in 1966: it was Bob Taylor. They were just starting to talk about doing what Licklider called the Intergalactic Network.</subtitle> | ||
<subtitle id="0:41:35">The reason he called it that is he didn't want people to design a small network.</subtitle> | <subtitle id="0:41:35">The reason he called it that is he didn't want people to design a small network.</subtitle> | ||
− | <subtitle id="0:41: | + | <subtitle id="0:41:40">Those original theory was wherever electricity plug on the face of the earth, there should be a place where you can plug into this intergalactic network.</subtitle> |
− | <subtitle id="0:41: | + | <subtitle id="0:41:48">That meant that the thing had the scale at least up to 500 million to a billion users.</subtitle> |
− | <subtitle id="0:41: | + | <note for="0:41:57"> |
+ | [https://en.wikipedia.org/wiki/Kristen_Nygaard] and [https://en.wikipedia.org/wiki/Ole-Johan_Dahl] on Wikipedia. | ||
+ | </note> | ||
+ | <subtitle id="0:41:57">So, people were starting to think about that. In a couple of days later I got a tape and some documents about a language called Simula from Norway by Dahl here and Nygaard.</subtitle> | ||
− | <subtitle id="0:42: | + | <subtitle id="0:42:14">It's very hard to understand.</subtitle> |
− | <subtitle id="0:42: | + | <subtitle id="0:42:17">After a lot of work, and looking at the listings, we realize, well, this is a programming language that is dealing with the same kind of structures as Sketchpad.</subtitle> |
− | <subtitle id="0:42: | + | <subtitle id="0:42:27">By the way, I should mention that, you know, the name, the term object predates object-oriented programming.</subtitle> |
<subtitle id="0:42:36">Object, in the early 60s, was a general term that was used to describe compound data structures, especially if they had pointers in them.</subtitle> | <subtitle id="0:42:36">Object, in the early 60s, was a general term that was used to describe compound data structures, especially if they had pointers in them.</subtitle> | ||
− | <subtitle id="0:42: | + | <subtitle id="0:42:44">There was none the paraphernalia of what we think about as object native programming today. Object was just a general term. You'll find it in lots of old papers.</subtitle> |
− | <subtitle id="0:42: | + | <subtitle id="0:42:55">And, the realization that you could write procedures for dealing with the kind of structures Sketchpad was doing was very liberating,</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:43:7">because even though it was ugly compared to what Sketchpad was, Sketchpad was just unbelievably elegant, but nobody knew how to scale the solver on it.</subtitle> |
− | <subtitle id="0:43: | + | <subtitle id="0:43:16">In fact, that problem has not been solved today yet.</subtitle> |
− | <subtitle id="0:43: | + | <subtitle id="0:43:20">But, by going to the less elegant way of being able to write code against these structures, we all got excited about the possibilities of being able to do in a system like Simula the kinds of graphic and interactive manipulation.</subtitle> |
− | <subtitle id="0:43: | + | <subtitle id="0:43:40">My background coming into this was in molecular biology and mathematics.</subtitle> |
− | <subtitle id="0:43: | + | <subtitle id="0:43:48">And, particularly Sketchpad just hit me right here as one of these kernels.</subtitle> |
− | <subtitle id="0:43: | + | <subtitle id="0:43:57">The thing I suddenly realized was that if you were sufficiently abstract if you ignored what these systems were trying to do,</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:44:10">if you just thought of them as being cheap versions of all these little computers on the ARPANET,</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:44:20">you could solve the same scaling problem in software.</subtitle> |
− | <subtitle id="0:44: | + | <subtitle id="0:44:25">Then, you could actually subsume everything in computing with just one kind of idea, which is essentially a little software computer:</subtitle> |
− | <subtitle id="0:44: | + | <subtitle id="0:44:33">Not a procedure, not a data structure, but a whole computer.</subtitle> |
− | <subtitle id="0:44: | + | <subtitle id="0:44:37">A lot of the development of OOP was software engineering after that.</subtitle> |
− | <subtitle id="0:44: | + | <subtitle id="0:44:45">Because the Interesting things to me in the development of OOP and development of practical OOP as it wound up in Xerox PARC was very similar to what happened in Lisp earlier, which is, boy, we've got this incredibly elegant wonderful thing.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:45:1">Too bad it runs so slow. But, what if we could make it run faster in a way that doesn't get in the users way, then we would have something really, really nice.</subtitle> |
− | < | + | <note for="0:45:11">> |
− | + | Guy Steele Jr. contributed to numerous programming languages, including Lisp [https://en.wikipedia.org/wiki/Guy_L._Steele_Jr]. | |
− | <subtitle id="0:45: | + | </note> |
+ | <subtitle id="0:45:11">Some of the best, actually I just talked Guy Steele, who is one of the people who helped make Lisp into something really special to use as well as to contemplate.</subtitle> | ||
− | <subtitle id="0:45: | + | <subtitle id="0:45:25">So, the image here was, "wow it's all about messages."</subtitle> |
− | <subtitle id="0:45: | + | <subtitle id="0:45:32">The reasons about messages and not about objects so much is that the messages are the abstractions.</subtitle> |
− | <subtitle id="0:45: | + | <subtitle id="0:45:38">We spend far too much time in our field worrying about what the objects are.</subtitle> |
− | + | == Influences == | |
<note for="0:45:53"> | <note for="0:45:53"> | ||
− | <slide for="0:45:53" name="Prejudices.png"/> | + | <slide for="0:45:53" name="OOPSLA2004-Prejudices.png"/> |
</note> | </note> | ||
− | <subtitle id="0:45: | + | <subtitle id="0:45:51">I need to move along. I have a bazillion prejudices.</subtitle> |
− | <subtitle id="0:45: | + | <subtitle id="0:45:58">I love parallelism because I learned how to program plug boards before programming a computer.</subtitle> |
− | <subtitle id="0:46: | + | <subtitle id="0:46:5">The beauty about those things was you could make a kind of a machine that was highly parallel.</subtitle> |
− | <subtitle id="0:46: | + | <note for="0:48:13"> |
+ | Burroughs computers are designed by Bob Barton, and designed for executing a higher-level language directly and safely. [https://en.wikipedia.org/wiki/Burroughs_large_systems] | ||
+ | </note> | ||
+ | <subtitle id="0:46:13">I love hardware like the B5000. All of our virtual machines today that we use came out of the hardware of that machine.</subtitle> | ||
− | <subtitle id="0:46: | + | <subtitle id="0:46:22">Too bad Intel and Motorola have never saw fit to learn anything about software. It'd make our lives much simpler.</subtitle> |
− | <subtitle id="0:46: | + | <subtitle id="0:46:32">I love Lisp. Everybody should understand it.</subtitle> |
− | <subtitle id="0:46: | + | <note for="0:46:38"> |
+ | A movie of JOSS is available here: [https://youtu.be/EeeEGheYAx8] and also the paper: [https://www.rand.org/content/dam/rand/pubs/papers/2008/P2922.pdf] | ||
+ | </note> | ||
+ | <subtitle id="0:46:38">JOSS was the most beautiful programming language ever done. It could hardly do anything but it did it beautifully.</subtitle> | ||
− | <subtitle id="0:46: | + | <subtitle id="0:46:47">It's an interesting challenge to take something of this level of beauty and try to scale it.</subtitle> |
− | <subtitle id="0:46: | + | <subtitle id="0:46:53">You combine these two together, you got the original Logo that's how Logo came about:</subtitle> |
− | <subtitle id="0:46: | + | <subtitle id="0:46:58">An attempt to take Lisp and have something prettier, especially for kids.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:47:4">I love APL. All of these all of these systems I think can be done in a different way.</subtitle> |
− | <subtitle id="0:47: | + | <subtitle id="0:47:12">But basically the love of these things is because these guys got to some special kernel.</subtitle> |
− | <subtitle id="0:47: | + | <subtitle id="0:47:16">I love what Engelbart did. A lot of spreadsheets. I loved HyperCard.</subtitle> |
− | <subtitle id="0:47: | + | <subtitle id="0:47:21">Suppose you could amalgamate all these wonderful things into a simple system that regular people can use.</subtitle> |
− | + | <note for="0:47:31"> | |
− | + | <slide for="0:47:31" name="OOPSLA2004-Exploratorium.png"/> | |
− | <note for="0:47: | + | Exploratorium is a museum located in San Francisco, where visitors can try hands-on exhibits. Frank Oppenheimer is the founder. |
− | <slide for="0:47: | ||
</note> | </note> | ||
− | <subtitle id="0:47: | + | <subtitle id="0:47:31">Now, let's talk about the why of what we're doing.</subtitle> |
− | <subtitle id="0:47: | + | <subtitle id="0:47:39">Why do people do things? Well, Frank Oppenheimer in the Exploratorium made 500 exhibits to teach just one idea:</subtitle> |
− | <subtitle id="0:47: | + | <subtitle id="0:47:48">The world is not as it seems.</subtitle> |
− | <subtitle id="0:47: | + | <subtitle id="0:47:50">They asked him why, and he said: "well, every child is different. We have 2,000 children in here, bumping against 500 different exhibits.</subtitle> |
− | |||
− | <subtitle id="0: | + | <subtitle id="0:47:58">"There's a good chance that a child will find the exhibit that speaks to them clearly about this first important idea about science.</subtitle> |
− | <subtitle id="0:48: | + | <subtitle id="0:48:8">So he said 500 of them. I think if you're going to teach a course in this, you need 20 to 30 projects or so for each area to give the children the choice.</subtitle> |
− | + | <note for="048:35"> | |
− | <subtitle id="0:48: | + | Even before you can hear it in this movie, the chat by backstage personnels was becoming audible. |
+ | </note> | ||
+ | <subtitle id="0:48:35">(Excuse me, am I interfering your conversation back here?) | ||
− | <subtitle id="0:48: | + | <subtitle id="0:48:50">I won't tell you what quadrant they're in.</subtitle> |
<note for="0:48:59"> | <note for="0:48:59"> | ||
− | <slide for="0:48:59" name="Model T Scratch.png"/> | + | <slide for="0:48:59" name="OOPSLA2004-Model T Scratch.png"/> |
+ | Alan mentioned that the farm he grew up had one and that was kept operational by fixing it by themselves. | ||
</note> | </note> | ||
− | <subtitle id="0:48: | + | <subtitle id="0:48:57">I think the another important idea is scratch programming, because so much of computing education today is learning the library.</subtitle> |
− | <subtitle id="0:49: | + | <subtitle id="0:49:8">I don't think beginners should ever be shown the library. If the programming language can't do interesting things without the library, then what is it?</subtitle> |
<subtitle id="0:49:20">I think it should be like a Model T. Model T has about 350 parts, and you could take it apart over a weekend and put it back together.</subtitle> | <subtitle id="0:49:20">I think it should be like a Model T. Model T has about 350 parts, and you could take it apart over a weekend and put it back together.</subtitle> | ||
− | <subtitle id="0:49: | + | <subtitle id="0:49:31">But it was a completely real automobile.</subtitle> |
<subtitle id="0:49:35">A lot of what we're going to look at here in the next few minutes are sort of first-order ideas that might say some important things.</subtitle> | <subtitle id="0:49:35">A lot of what we're going to look at here in the next few minutes are sort of first-order ideas that might say some important things.</subtitle> | ||
− | <note for="0:49: | + | <note for="0:49:44"> |
− | <slide for="0:49: | + | <slide for="0:49:44" name="OOPSLA2004-influences.png"/> |
</note> | </note> | ||
− | <subtitle id="0:49: | + | <subtitle id="0:49:44">Now, a good thing is that many people have written about the fun, the beauty, the romance, what's important, and about looking ahead in computing.</subtitle> |
+ | |||
+ | <subtitle id="0:49:58">There's not just one book out there, and there's less than 1% of books about computing are worthwhile reading.</subtitle> | ||
− | <subtitle id="0: | + | <subtitle id="0:50:7">But, it's not one book. There are dozens of them, and there's plenty of ideas for how to do this stuff.</subtitle> |
− | + | == A Learning Environment: Control or Learning? == | |
− | <note for="0:50: | + | <note for="0:50:16"> |
− | <slide for="0:50: | + | <slide for="0:50:16" name="OOPSLA2004-ControlvLearning C.png"/> |
</note> | </note> | ||
− | <subtitle id="0:50: | + | <subtitle id="0:50:16">The user interface had better not be like Microsoft's caricature of the stuff that was done at PARC, (which is..,) I always have the feeling when I'm using Windows that I'm dealing with a somewhat dangerous nuclear reactor control panel,</subtitle> |
<subtitle id="0:50:38">and that I haven't had enough training on it.</subtitle> | <subtitle id="0:50:38">and that I haven't had enough training on it.</subtitle> | ||
− | <subtitle id="0:50: | + | <subtitle id="0:50:40">Whereas what I want is something like pencil and paper. Although there are things I can learn about pencil and paper, what is most important about them is what I can do without knowing much.</subtitle> |
+ | |||
+ | <subtitle id="0:50:51">I can find out the pencil and paper is fun.</subtitle> | ||
+ | |||
+ | == Flow, explained == | ||
− | |||
<note for="0:50:56"> | <note for="0:50:56"> | ||
− | <slide for="0: | + | <slide for="0:50:56" name="OOPSLA2004-FLOW.png"/> |
− | <slide for="0:52: | + | <slide for="0:52:04" name="OOPSLA2004-FLOW2.png"/> |
− | <slide for="0:52: | + | <slide for="0:52:15" name="OOPSLA2004-FLOW3.png"/> |
− | <slide for="0:52: | + | <slide for="0:52:24" name="OOPSLA2004-FLOW4.png"/> |
− | <slide for="0:52: | + | <slide for="0:52:32" name="OOPSLA2004-FLOW5.png"/> |
+ | There is a book by Csikszentmihalyi titled "Flow" [https://en.wikipedia.org/wiki/Mihaly_Csikszentmihalyi] | ||
</note> | </note> | ||
<subtitle id="0:50:56">I want an environment that deals with a set of ideas in a way that gets me to lose myself in the ideas.</subtitle> | <subtitle id="0:50:56">I want an environment that deals with a set of ideas in a way that gets me to lose myself in the ideas.</subtitle> | ||
− | <subtitle id="0:51: | + | <subtitle id="0:51:10">Mike Csikszentmihalyi here, was one of our advisors, had this nice model about this balance between our abilities and the challenges.</subtitle> |
− | <subtitle id="0:51:24">He said, well, if the challenges are higher than our abilities then we start getting anxious, especially if we're climbing up a rock face, | + | <subtitle id="0:51:24">He said, well, if the challenges are higher than our abilities then we start getting anxious, especially if we're climbing up a rock face, or giving a talk in front of an audience.</subtitle> |
<subtitle id="0:51:41">But, if our abilities are greater than the challenge, we start getting bored.</subtitle> | <subtitle id="0:51:41">But, if our abilities are greater than the challenge, we start getting bored.</subtitle> | ||
− | <subtitle id="0:51: | + | <subtitle id="0:51:46">So, these are the two main states that humans are in: either anxious or bored.</subtitle> |
<subtitle id="0:51:53">Hard to get to is this flow state where everything is just working.</subtitle> | <subtitle id="0:51:53">Hard to get to is this flow state where everything is just working.</subtitle> | ||
− | <subtitle id="0:52: | + | <subtitle id="0:52:00">We like to widen this flow state for beginners.</subtitle> |
− | <subtitle id="0:52: | + | <subtitle id="0:52:4">For example, one of the things we could do to deal with areas that where the challenge is greater than our abilities is to increase the safety.</subtitle> |
− | <subtitle id="0:52: | + | <subtitle id="0:52:15">So, having undo in an environment is nice.</subtitle> |
− | <subtitle id="0:52: | + | <subtitle id="0:52:21">Most programming environments don't have much of an undo.</subtitle> |
− | <subtitle id="0:52: | + | <subtitle id="0:52:24">On the other hand, because we get bored so easily, we want something to help us to pay attention better.</subtitle> |
− | <subtitle id="0:52:32">A | + | <subtitle id="0:52:32">A good user interface basically deals with these things.</subtitle> |
− | <subtitle id="0:52: | + | <subtitle id="0:52:35">it provides more safety than most computer people think an ordinary person needs.</subtitle> |
− | <subtitle id="0:52: | + | <subtitle id="0:52:40">It provides more ways of attracting their attention than most of us think people need.</subtitle> |
+ | |||
+ | == Introduction to Drive a Car == | ||
<note for="0:52:50"> | <note for="0:52:50"> | ||
Alan is drawing a car, explain the viewer and some tiles. | Alan is drawing a car, explain the viewer and some tiles. | ||
+ | There are movies of a typical Squeak Etoys demo available elsewhere. | ||
</note> | </note> | ||
<subtitle id="0:52:50">I just want to show you, give you, a little bit of a flavor about how children start, and then show you where I think things are actually going to go.</subtitle> | <subtitle id="0:52:50">I just want to show you, give you, a little bit of a flavor about how children start, and then show you where I think things are actually going to go.</subtitle> | ||
− | <subtitle id="0:53: | + | <subtitle id="0:53:5">The work we do with children, we want them to have an experience that is basically thinking about ideas, making pictures of them.</subtitle> |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | <subtitle id="0:53: | + | <subtitle id="0:53:22">For example, take something that most kids would like to do for one reason or another, which is to learn how to drive their parents car.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:53:36">We get them to design a car. Most kids, boys and girls, put on big off-road tires like this, because part of the deal is feeling powerless, and wanting to feel empowered.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:53:52">This is something that video game manufacturers really understand.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:53:58">Why are those games so violent?</subtitle> |
− | <subtitle id="0:54: | + | <subtitle id="0:54:6">We have a little graphic object here, and to do things to it, we can open it up and see a viewer of it.</subtitle> |
− | <subtitle id="0:54: | + | <subtitle id="0:54:20">I realize people in the back can't see very well. So I'm looking at a property here called the heading of the thing, and I'm going to count up the number starts at zero.</subtitle> |
− | <subtitle id="0:54: | + | <subtitle id="0:54:29">As I count it up, you can see the little car turning. </subtitle> |
− | <subtitle id="0:54: | + | <subtitle id="0:54:32">I've got a behavioral property here: "forward."</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:54:36">I've got another one called "turn by".</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:54:41">If I just drag out the lines of script here and turn on the clock, then I've got my little car going.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:54:57">There are many different kinds of things I can do with it. For the kids they want to learn a little bit about driving the car.</subtitle> |
− | <subtitle id="0:55: | + | <subtitle id="0:55:07">So, the first experiment is what happens if I click this number. It says "turn by". Now, "turn by zero". It goes straight. Turn by negative. </subtitle> |
− | <subtitle id="0:55: | + | <subtitle id="0:55:19">I'll call this guy "Car".</subtitle> |
− | <subtitle id="0:55: | + | <subtitle id="0:55:20">Keep it straight here. That's a little bit like kissing your sister, because real cars use wheels.</subtitle> |
− | <subtitle id="0:55: | + | <subtitle id="0:55:28">So I want to make a wheel here. Just draw one.</subtitle> |
− | <subtitle id="0:55: | + | <subtitle id="0:55:39">It's got the same user interface as the other one, because this is a system, which has only one kind of object.</subtitle> |
− | <subtitle id="0:55: | + | <subtitle id="0:55:49">It's exactly the opposite of the systems that you're used to that have zillions and zillions of classes and subclasses and so forth.</subtitle> |
− | <subtitle id="0: | + | <subtitle id="0:55:58">We can talk a little bit about it, about this in the question and answer, if you would like.</subtitle> |
− | <subtitle id="0:56: | + | <subtitle id="0:56:5">And, so here's this wheel it's got a heading also. If I pick up the name of that heading and just drag it over to the script here.</subtitle> |
− | <subtitle id="0:56:14">So it says "car turned by wheel's heading."</subtitle> | + | <subtitle id="0:56:14">So it says "car turned by wheel's heading." Now I can just turn the car around.</subtitle> |
− | <subtitle id="0:56: | + | <subtitle id="0:56:20">Now, what's important for ten-year olds is that they learn what a variable is for the rest of their life from this one shot.</subtitle> |
− | <subtitle id="0:56: | + | <subtitle id="0:56:28">That's good, and actually I believe this would be good for high school and college kids, too, because there's quite a bit of evidence that they don't ever learn much about what a variable actually is, or does ways of thinking about it.</subtitle> |
− | <subtitle id="0:56: | + | <subtitle id="0:56:43">So there are many different kinds of things here that can be done.</subtitle> |
− | + | == Safe Meta Features in Etoys == | |
<note for="0:56:50"> | <note for="0:56:50"> | ||
Open a viewer on the scriptor and rotate them. | Open a viewer on the scriptor and rotate them. | ||
</note> | </note> | ||
− | <subtitle id="0:56: | + | <subtitle id="0:56:47">So, having one kind of object. That's kind of weird.</subtitle> |
<subtitle id="0:56:53">I mean, here's a photograph which we can see has the same kind of feel here.</subtitle> | <subtitle id="0:56:53">I mean, here's a photograph which we can see has the same kind of feel here.</subtitle> | ||
− | <subtitle id="0:57: | + | <subtitle id="0:57:0">The script is one of these guys. What if I open up its viewer. I got one called scriptor here, and I see, "oh yeah" it looks really the same kind of thing.</subtitle> |
− | |||
− | |||
− | |||
− | |||
− | <subtitle id="0:57: | + | <subtitle id="0:57:11">So what if I make a script on the script here, and get it going.</subtitle> |
+ | <subtitle id="0:57:21">Think about the implications of this: it means that wherever I go out, for instance, what if I go over here.</subtitle> | ||
− | <note for="0:57: | + | <note for="0:57:30"> |
Open a viewer on the pane in viewer and rotate them. | Open a viewer on the pane in viewer and rotate them. | ||
</note> | </note> | ||
− | <subtitle id="0:57: | + | <subtitle id="0:57:30">Well, the viewers got one of those things and so does this category.</subtitle> |
− | <note for="0:57: | + | <note for="0:57:38"> |
Open a viewer on the world, and show different panes. | Open a viewer on the world, and show different panes. | ||
</note> | </note> | ||
− | <subtitle id="0:57: | + | <subtitle id="0:57:38">And, this whole outside thing that I'm giving the talk in terms of is also one of these things.</subtitle> |
− | <subtitle id="0:57: | + | <subtitle id="0:57:48">So I look at its viewer, the viewer of the world, and well, it's got the same kinds of things here.</subtitle> |
− | <subtitle id="0:58 | + | <note for="0:57:58"> |
+ | Nathanael Schärli et al. developed a behavior composition scheme called Traits: [https://digitalcommons.ohsu.edu/csetech/345/]. The main work was done when Nathanael was interning at Alan's group at Disney Walt Imagineering R&D. The scheme was later adapted to various languages. | ||
+ | </note> | ||
+ | <subtitle id="0:57:58">We looked at the various traits here. This is like what Nathanael Schärli was talking about earlier.</subtitle> | ||
− | <subtitle id="0:58: | + | <subtitle id="0:58:4">This notion of side-ways composition also goes back to PARC. Back then in the 70s, it was called aspects but that word means something somewhat different now.</subtitle> |
− | <subtitle id="0:58: | + | <subtitle id="0:58:17">We look at various things you can see: "Oh, the thing is a collection."</subtitle> |
− | <subtitle id="0:58: | + | <subtitle id="0:58:22">It's got stuff about its colors and borders, and other kinds of things here.</subtitle> |
− | <subtitle id="0:58: | + | <subtitle id="0:58:30">And, here's one that says 'as object'. Now, an inheritance system the Object would be way up at the end of the inheritance system,</subtitle> |
− | <subtitle id="0:58: | + | <subtitle id="0:58:37">but in a side-ways composition object system, it's going to be one of the traits. We're looking at it's a view of the object as an object. </subtitle> |
− | |||
− | |||
<subtitle id="0:58:47">We tried to think about what would be an interesting way of showing this idea of meta.</subtitle> | <subtitle id="0:58:47">We tried to think about what would be an interesting way of showing this idea of meta.</subtitle> | ||
− | + | <note for="0:58:54"> | |
− | |||
− | <note for="0: | ||
Choose world useBluePrintCanvas: to change the look. | Choose world useBluePrintCanvas: to change the look. | ||
</note> | </note> | ||
− | <subtitle id="0: | + | <subtitle id="0:58:54">What I'm going to do is suppress all the costumes on all the objects. I think this will help you to see that everything is sort of abstractly the same here</subtitle> |
− | <subtitle id="0:59: | + | <subtitle id="0:59:5">Ok, basically I just turned off the costume mechanism. Now, I have this interesting problem of getting back.</subtitle> |
− | <subtitle id="0:59: | + | <subtitle id="0:59:16">But, that's why I left my mouse here. so, this is the guy who did it. I'm going to click the little caret here, which I know is there to make it false.</subtitle> |
− | <subtitle id="0:59: | + | <subtitle id="0:59:26">Then, we're going to hit the exclamation point to turn everything back on again.</subtitle> |
− | |||
− | <subtitle id="0:59: | + | <subtitle id="0:59:30">Do you see wghat I'm talking about though? Basically, meta is safe if you can allow fence after fence after fence after fence.</subtitle> |
− | <subtitle id="0:59: | + | <subtitle id="0:59:39">Now, there are many many examples, which if I had longer talk I'd show you, but I wanted to show you the last set of ideas here.</subtitle> |
− | + | == The Springy Flag demo == | |
− | <subtitle id="0:59: | + | <subtitle id="0:59:50">If we could just go to the video 2, please, in the back.</subtitle> |
− | <subtitle id="0:59: | + | <subtitle id="0:59:57">Okay, return to Sketchpad here. If we look at a more future-oriented environment, we see that we now have the ability of doing much more complicated ways of thinking of environments.</subtitle> |
<note for="1:00:17"> | <note for="1:00:17"> | ||
Alan switched to a Croquet Image. | Alan switched to a Croquet Image. | ||
− | <slide for="1:00: | + | <slide for="1:00:17" name="OOPSLA2004-Croquet1.png"/> |
− | <slide for="1:01: | + | <slide for="1:0:56" name="OOPSLA2004-Croquet-mars1.png"/> |
+ | <slide for="1:01:3" name="OOPSLA2004-Croquet-mars2.png"/> | ||
+ | <slide for="1:01:39" name="OOPSLA2004-Croquet bridge1.png"/> | ||
+ | <slide for="1:02:48" name="OOPSLA2004-Croquet k1400.png"/> | ||
+ | <slide for="1:01:58" name="OOPSLA2004-Croquet k400.png"/> | ||
+ | <slide for="1:03:14" name="OOPSLA2004-Croquet wind on.png"/> | ||
+ | <slide for="1:03:51" name="OOPSLA2004-Croquet canada.png"/> | ||
</note> | </note> | ||
<subtitle id="1:0:17">Here, I am in a 3D environment that we built called Croquet.</subtitle> | <subtitle id="1:0:17">Here, I am in a 3D environment that we built called Croquet.</subtitle> | ||
− | <subtitle id="1:0: | + | <subtitle id="1:0:20">By the way, if you are interested in the kids stuff, It's found on the website:</subtitle> |
<subtitle id="1:0:26">squeakland.org, and this Croquet environment, this is all free software. Croquet environment is found on opencroquet.org.</subtitle> | <subtitle id="1:0:26">squeakland.org, and this Croquet environment, this is all free software. Croquet environment is found on opencroquet.org.</subtitle> | ||
− | <subtitle id="1:0: | + | <subtitle id="1:0:40">So again, this is a completely constructible environment here.</subtitle> |
<subtitle id="1:0:47">But what we did was to do a kind of an interesting analogy to webpages.</subtitle> | <subtitle id="1:0:47">But what we did was to do a kind of an interesting analogy to webpages.</subtitle> | ||
− | <subtitle id="1:0: | + | <subtitle id="1:0:55">Each 3D world here is like a web page, and these portals are like a hyperlink to them.</subtitle> |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | <subtitle id="1: | + | <subtitle id="1:1:3">I'm just going to pop Alice to enter this guy here. I'm just going to do a 360. Those are a Mars environment.</subtitle> |
− | <subtitle id="1: | + | <subtitle id="1:1:18">All of these environments are buildable.</subtitle> |
− | <subtitle id="1: | + | <subtitle id="1:1:26">I'm just going to show you one last thing so I can end on time.</subtitle> |
− | <subtitle id="1: | + | <subtitle id="1:1:39">I kind of like bridges as an analogy here.</subtitle> |
− | <subtitle id="1: | + | <subtitle id="1:1:44">We have a bridge structure. I want to show you what the kids scripting environment looks like for doing a bridge.</subtitle> |
− | <subtitle id="1: | + | <subtitle id="1:1:58">The first thing we want to look at is the little script for Masses.</subtitle> |
− | <subtitle id="1:2: | + | <subtitle id="1:2:2">Basically what we have here is F = ma. Acceleration is the force divided by the mass. The velocity is increasing by the acceleration.</subtitle> |
− | <subtitle id="1:2: | + | <subtitle id="1:2:16">The location of all the little elements on here is going to increase by the velocity.</subtitle> |
− | <subtitle id="1:2: | + | <subtitle id="1:2:24">I'm going to turn on the the force here. (I get the mouse to work.)</subtitle> |
− | <subtitle id="1:2: | + | <subtitle id="1:2:35">Say ok. Let's do that.</subtitle> |
− | <subtitle id="1:2: | + | <subtitle id="1:2:41">This bridge structures is feeling gravity. You can see it coming into equilibrium.</subtitle> |
− | <subtitle id="1: | + | <subtitle id="1:2:48">It could be made it stiffer. But let's look at the springs. The springs are fairly stiff:</subtitle> |
− | <subtitle id="1: | + | <subtitle id="1:2:58">K gets -1400 here. What I'm going to do here is to make it -400.</subtitle> |
− | <subtitle id="1:3: | + | <subtitle id="1:3:08">Tell it to go ahead. That's going to let it sag quite a bit more.</subtitle> |
− | <subtitle id="1:3: | + | <subtitle id="1:3:14">Then, we all remember the Tacoma Narrows Bridge film. Of course, we have to have some wind.</subtitle> |
− | <subtitle id="1:3: | + | <subtitle id="1:3:25">Basically, what I'm going to do here is to turn on a variable gusting wind that's completely described by this script here.</subtitle> |
− | <subtitle id="1:3: | + | <subtitle id="1:3:40">Okay, now it's going to do some Tacoma Narrows stuff here.</subtitle> |
− | <subtitle id="1: | + | <subtitle id="1:3:51">I need sound. I noticed the sound wasn't working. Thank you.</subtitle> |
− | <subtitle id="1:4: | + | <subtitle id="1:4:1">Let's take a look at our bridge here. You know it's funny when you look at a model of steel, if you remember that Tacoma Narrows Bridge movie, it was really like the bridge was made out of fabric of some kind.</subtitle> |
− | <subtitle id="1:4: | + | <subtitle id="1:4:26">This has this kind of same aspect. That gave us an interesting idea here.</subtitle> |
− | <subtitle id="1:5: | + | <subtitle id="1:5:1"> I think a good way to end this talk is just to say that if we can't get kids interested in the romance, why this is unbelievably beautiful new art form, then,</subtitle> |
<subtitle id="1:5:17">we're not living up to what our duty is of enjoying the stuff ourselves.</subtitle> | <subtitle id="1:5:17">we're not living up to what our duty is of enjoying the stuff ourselves.</subtitle> | ||
− | <subtitle id="1:5: | + | <subtitle id="1:5:22">We have to reach deeply inside of ourselves to remember what it was that first got us interested in this wonderful new thing.</subtitle> |
− | <subtitle id="1:5: | + | <subtitle id="1:5:30">Remember that it hasn't even started yet, It's our duty to help the children as young as possible to try and do a better job of it than we have.</subtitle> |
− | <subtitle id="1:5: | + | <subtitle id="1:5:42">Thank you very much.</subtitle> |
− | <subtitle id="1:6:26">Thank you, Alan for a fantastic talk, and we have a token of our affection here.</subtitle> | + | <subtitle id="1:6:26">Thank you, Alan for a fantastic talk, and we have a token of our affection here as well.</subtitle> |
− | <subtitle id="1:6: | + | <subtitle id="1:6:34">That concludes our Turing Award Lecture and you're welcome now to go get dinner, and then, afterwards at 8 o'clock, we'll be beginning the last thing on this evenings agenda: GOF tenth anniversary reunion. You are dismissed.</subtitle> |
Latest revision as of 20:48, 23 December 2017
Contents
- 1 Introduction by John Vlissides
- 2 Introduction and Context: Education for High School and First Year College
- 3 Don Knuth Quote on New Mathematics for Computing
- 4 Research Accomplishment within the Community
- 5 Science and Engineering of Computing: Pyramids vs. Arches vs. Cathedrals
- 6 A Simple Model of Motivations: Inner- vs. outer-motivated. instrumental vs. intrinsic reasoners
- 7 Doug Engelbart and NLS
- 8 Temptation of Complexity
- 9 PARC
- 10 The idea of Kernels to build Larger Systems
- 11 Relationship between Science, Math, Computing and Systems in Introductory Courses
- 12 Sketchpad
- 13 Imprinting of Good Ideas
- 14 Influences
- 15 A Learning Environment: Control or Learning?
- 16 Flow, explained
- 17 Introduction to Drive a Car
- 18 Safe Meta Features in Etoys
- 19 The Springy Flag demo
Introduction by John Vlissides
Dr. John Vlissides is the conference chair of OOPSLA 2004.
Introduction and Context: Education for High School and First Year College
Don Knuth Quote on New Mathematics for Computing
Donald Knuth is a famous computer scientist. Wikipedia: [1].
Research Accomplishment within the Community
Daniel Ingalls on Wikipedia: [2]
Science and Engineering of Computing: Pyramids vs. Arches vs. Cathedrals
Alan Perlis [3] was a leader of the early computer science field.
The report from the Software Engineering Conference in '68 is available online. [4]
The venue of the talk was Vancouver, Canada. Alan is referring to Seattle, where Microsoft is located.
One of the books is "Building the Empire State", edited by Carol Willis. [5]. See also another talk by Alan on this site: [6].
A Simple Model of Motivations: Inner- vs. outer-motivated. instrumental vs. intrinsic reasoners
The system was StarSqueak, which is inspired by Resnick's StarLogo. A book by Resnick explains the non-linearity of the simulation [7].
Doug Engelbart and NLS
Doug Enbelbart on the Engelbart Institute site: [8].
Temptation of Complexity
The slide is in the style of the Joy of Cooking ["http://www.thejoykitchen.com/"].
PARC
Butler Lampson on Wikipedia: [9]
Charles Thacker on Wikipedia: [10].
Robert Metcalfe and David Boggs designed Ethernet and started the 3COM compnay [11]
Gary Starkweather on Wikipedia: [12]
The idea of Kernels to build Larger Systems
Books shown are "Molecular Biology of the Gene" by James Watson, "Relativity Visualized" by Lewis Carroll Epstein, and the US Constitution.
Relationship between Science, Math, Computing and Systems in Introductory Courses
Konrad Lorenz was an ethologist [13]. He is famous for books such as Solomon's Ring.
Sketchpad
Alan shows the Sketchpad movie embedded in the slide. There are numerous instances of the movie online. A digital version of his thesis is also available: [14].
Imprinting of Good Ideas
J.C.R. Licklider was the first director of ARPA IPTO until 64 and succeeded by Robert Taylor. The funding is credited to create various computer inventions, including the world wide network now known as the Internet.
Guy Steele Jr. contributed to numerous programming languages, including Lisp [17].
Influences
Burroughs computers are designed by Bob Barton, and designed for executing a higher-level language directly and safely. [18]
Exploratorium is a museum located in San Francisco, where visitors can try hands-on exhibits. Frank Oppenheimer is the founder.
Even before you can hear it in this movie, the chat by backstage personnels was becoming audible.
Alan mentioned that the farm he grew up had one and that was kept operational by fixing it by themselves.
A Learning Environment: Control or Learning?
Flow, explained
There is a book by Csikszentmihalyi titled "Flow" [21]
Introduction to Drive a Car
Alan is drawing a car, explain the viewer and some tiles. There are movies of a typical Squeak Etoys demo available elsewhere.
Safe Meta Features in Etoys
Open a viewer on the scriptor and rotate them.
Open a viewer on the pane in viewer and rotate them.
Open a viewer on the world, and show different panes.
Nathanael Schärli et al. developed a behavior composition scheme called Traits: [22]. The main work was done when Nathanael was interning at Alan's group at Disney Walt Imagineering R&D. The scheme was later adapted to various languages.
Choose world useBluePrintCanvas: to change the look.
The Springy Flag demo
Alan switched to a Croquet Image.