Future of Coding - Raising Genius with Scott Mueller

Episode Date: October 17, 2017

Scott Mueler is the founder of UCode, an after school coding program in California, which he created after teaching his then six-year-old son Ken to code. Scott tells us about how he developed his par...enting/teaching/curricular philosophy, and how all educators and parents can apply these principles to raise geniueses of their own.Support us on Patreon: https://www.patreon.com/futureofcodingSee omnystudio.com/listener for privacy information.

Transcript
Discussion (0)
Starting point is 00:00:00 Hello and welcome to the Future of Coding. This is Steve Krause. Today I have Scott Mueller on the podcast. So Scott is the founder of Ucode, an after-school program in California. We were connected actually through two different ways, which you'll hear about on the podcast. And ever since then, Scott's been a mentor to me, telling me about the things he tried and worked and didn't work with his after-school program and it's been it's been really helpful to hear about Scott also like like my last guest Professor Arnon Scott also teaches his kids how to code in Elm which is both amazing and hilarious that that I've talked to two of maybe the only people in the world who teach Elm to children. But hopefully through podcasts like this and other ways of disseminating this information,
Starting point is 00:00:57 other adults will see the value in teaching ML languages to kids. I guess, for example, I learned Haskell when I was in high school at IMAX, which you'll hear about more in this podcast as well. So without any further ado, I bring you Scott Mueller. Cool. So given that this is an interview where other people who don't know you are going to be listening, I thought maybe we could kind of go back, and even me, it'd be good to kind of go back and, and hear the founding story of you code a bit. I guess the, the way I think about your stories,
Starting point is 00:01:34 it kind of starts with your son, Ken, and who I've, I've been fortunate enough to work with him a bit. I've been myself and he is a very special boy. And so, yeah, maybe you could start there and tell me, I guess, and everyone else who is listening a bit about how you came to teaching kids to code. Yeah, I'll try to give you a brief history.
Starting point is 00:01:59 Thank you for your comment about my son. I'm a very proud father. Let me start with him. He's the reason why I started U-Code. He's 11 years old now. So a little over 11 years ago, he was born. And as a new father, he was my firstborn. I have now a nine-year-old daughter as well. I was obsessed with trying to be a good father or preparing to be a good father when my wife was pregnant. And I bought all these books on how to be a father and how to be a parent and child development and those kinds of things. And what really, really piqued my interest was brain development. It seemed from reading some of these books and some studies that you can have an impact on your kids' intelligence
Starting point is 00:02:57 if you make sure that they're exercising their mind, if they're thinking about things and stimulating the different areas of their brain. And, you know, if you do that, then their synapses get pruned better and their dendrites get developed and all these processes that occur during brain development throughout childhood happen better. And so I just felt that was a huge obligation of mine. You know, what a great gift you can give your kid to think better. And so, you know, when he was a little kid, when he was one years old, I would have him watch these, maybe even younger than one, I don't remember. But I remember having him watch these Baby Einstein videos,
Starting point is 00:03:42 and it was special music and sounds and colors, and he was kind of mesmerized. I would later read that there's no evidence at all that it does anything, but at the time, that seemed to be the thing to do. So I was trying all these things to stimulate him, and I taught him how to read. I thought young at like four years old, but apparently then I read there are kids reading at two years old. And reading was kind of interesting. He got good at it because I would teach him a lot and we would practice. go that far. I couldn't give him, you know, too advanced of a book because he just didn't have the life experience. I couldn't give him a book, you know, about that had too much sarcasm or jokes about things that he just didn't know about. It just didn't make sense to him. And romantic love, you know, he didn't know what that was yet. So there were these hard limits of, of where, uh, where I could go with them with, uh, with reading. And so then I started teaching him math and, uh, and by the way,
Starting point is 00:04:53 I might be, uh, stop me if I'm, if I'm, if I'm giving too long of a history. No, I love it. Yeah, keep going. I started teaching him math at about four and a half years old. And I always loved math. And eventually I wanted to teach him computer science and other things. But I figured that was a good time to start teaching him. And we started with, you know, like one plus one, two plus three. We would just do it initially on our walks to and from school. And so I'd have my fists, and I'd say I had two marbles in one hand,
Starting point is 00:05:31 three marbles in the other, and just some basic math. But it quickly grew. It grew pretty complex. And, in fact, we got even into complex numbers. I remember one question on our walks, he asked, now, you know, we had done this for a little while. He asked, Daddy, if I multiply two positive numbers, I get a positive number.
Starting point is 00:05:56 And if I multiply two negative numbers, I get a positive number. So how do you take the square root of a negative number? And I said, oh, you know, great question. You know, let's talk about complex numbers and imaginary numbers. But at that point, all of our maths had been just from these walks. And so he didn't really, he didn't have the multiplication or the addition table memorized. So he knew how to do that stuff. He knew how to multiply, but he didn't know what eight times eight was. He'd have to actually count it out in his head. And so then, you know, it got a little more serious. I'm like, okay, let's sit
Starting point is 00:06:30 down 45 minutes a day, grew into an hour a day every day. I didn't miss weekends, holidays, none of that. I wanted to make sure that he had that nourishment every day for his mind. And it was great. Math was different than other subjects, like reading even, because he didn't need life experience to go very far. We could go as far as we wanted as long as he mastered the material that came before. We went from four and a half years old, a one plus one, to by the time he turned six, he was doing calculus. And he got pretty advanced in calculus, too. But at some point, he got bored of calculus. Not that he was ever really that excited about math.
Starting point is 00:07:17 But it got to the point where I couldn't really get him to do the work. He would just get so distracted. He really was not into it. And I told him, hey, you know, you should be so proud of yourself. This is, you know, incredible. Not many six-year-olds are able to do this level of math. And let's just stop this. And we'll do so many other things I want to teach you.
Starting point is 00:07:43 He did not want to stop the math. He didn't want to do the actual work, put in the effort to it, but he was getting a lot of attention from school and everybody, and he loved the attention. So he wanted to keep advancing. Sorry, go ahead. If anyone's curious to see, when you talk about attention, I remember these really adorable and precocious YouTube videos.
Starting point is 00:08:06 Is that what you mean by attention? That's kind of part of it? Yeah, he got attention from people watching his videos. But even at school, you know, now he's very advanced in math, and so math class, they had to do some special things for him. And just the teachers, the other kids. He loved it all. Loved the attention. Yeah, he wanted me to take videos of him and put them on YouTube, and we had some fun with that.
Starting point is 00:08:34 But for me, I didn't really care about the attention he was getting. I want him to be happy, of course, and I made him happy. And I didn't care what level he got to. I just really was caring that he was getting that intellectual exercise. So I felt like we were a little bit stuck. And so finally I said, we don't have to stop math. Let's just put it on pause, and we'll get back into it. Don't worry about it. But let's learn some
Starting point is 00:09:05 programming. And I'll teach you how to make things that you can utilize all that math you've learned to create cool things like games. We'll put physics in the games and so you can use some of that trigonometry and geometry and calculus and
Starting point is 00:09:21 calculations that will make these characters and other things you create come alive. And he liked that idea. He was good with that. So I started teaching him programming. And it was incredible. I felt right away that this was even better than math, because it was that same logical thinking and mathematical thinking, but it was now something really engaging for him, and he was excited about it. And so we started learning how to code, and early on, I thought every kid should be doing this.
Starting point is 00:10:01 And I didn't see many places teaching it, certainly not schools, but even books or online courses that were for kids. And there were some books that said Python for kids and other books that were kind of geared for kids. We bought them, but they were all really poor. We ended up buying one book that I did like it and Ken did learn from it, a Ruby programming book called Learn to Program by Chris Pine. And that was great, but it was talking about beer throughout the book.
Starting point is 00:10:39 And he would ask me, like, I thought you told me alcohol is bad. And he's talking about even the code examples, even the code exercises were all around beer. So, you know, clearly not meant for kids, but he had worded it in a way that made sense for kids, or at least for my son so so at some point uh at around that time i uh i i wanted to teach kids how to code i felt like the techniques that i used to get my son pretty advanced in math and and in computer science uh even though it was pretty early still for him in computer science i felt like i could apply those things to any kid but But I didn't know that at that time my son was the only kid I'd ever taught. And so I was walking with my son one day, and we entered a nearby, near to our home, tutoring center.
Starting point is 00:11:39 And I just asked, what do you guys think of teaching kids to code? You get many people asking about that. And the owner said, no, we don't get people asking, but if you wanted to rent a desk, I have one here for a couple hundred dollars a month. I said, yeah, maybe I'd like to try that out. And we grew very fast. And then I needed two desks, three desks, and eventually half the space. And, of course, eventually I paid him to leave.
Starting point is 00:12:12 Amicable. He was, I think, happy for that. And that's the genesis of U-Code. Wow. What a beautiful story i yeah i i love how yeah you were you know you have such a clear uh compelling motivation for for doing what you're doing um and and i love how for me it's a particularly resonant story because it's uh it's very familiar to me because it's similar to kind of how I came to this.
Starting point is 00:12:46 Not from having a kid, of course, but me from more being the kid that learned math and computer science in this really wonderful way. Right. So, as you know, I went to this program called IMAX in South Florida. And when I was a kid that had a school program and they they taught math and computer science in these really cool ways. I in a similar spirit to the way that that you teach to your son.
Starting point is 00:13:16 And for me, they were in this intellectual tradition of Jean Piaget and Seymour Papert and Alan Kay and Richard Resnick and Brett Victor and Chris Granger. For me, there's almost like a school of thought that I can point to, where a lot of these ideas of mathematics and computer science and genetic epistemology, they all kind of fit together in this beautiful way. And my after-school program, the coding space was kind of like very explicitly in this tradition um and so i'd be curious to know and it seems to me like there's so much about what you do that's very similar to that tradition and i'd be curious to know if you if you feel like you you exist in that school of thought if you if you like other people you mentioned other parenting books that you you really. If there were like, who are your kind of like epistemological or like pedagogical giants that you like kind of take from?
Starting point is 00:14:13 That's a great question. I haven't given that much thought. I've read some of the works of some of the people you mentioned. Mindstorms was a big book by Seymour Papert. Definitely there's a lot to be learned from all of those people. Although I'm not sure I agree with everything, when I taught my son Mac, he didn't get everything right away. And some things he really stumbled on. And every time that he had a problem, I realized, you know, at first I didn't know how far to take it. I didn't know what exactly we were getting into.
Starting point is 00:15:10 I didn't know when to stop or to push him more or that kind of thing. I just had this goal of I just wanted the exercise for my son. And I realized every time that he couldn't get something, it wasn't that it was too complex of a concept for a four or five or six-year-old to grasp. It was purely a memorization issue. And so we would just play this memorization game where I would write down whatever it was that he was, whatever information that he hadn't fully memorized that was preventing him from learning this new concept or solving some novel new kinds of problems. And I would write it down. And in the beginning, it was literally just writing down
Starting point is 00:15:56 the addition table or the multiplication table, but scrambling it around. And I'd have a timer, and he'd have to recite something either in one direction, and then I'd have him switch directions, or I'd point things out, and then he'd have to tell me right away. And he'd have to do it in a very short amount of time. And it was fun for him doing it that way. So because it was fun for him, he was willing to do it and put in effort, and so that was great.
Starting point is 00:16:23 And then once he memorized something fully, however we got around to doing that usually this game he it was like he he had absolutely zero trouble with with these new problems that depended on on that knowledge and and i felt like that was a key for for any kid learning a concept so i felt like that was a key for any kid learning a concept. So I felt like memorization was really important. Did you come up with that on your own? Yeah. Sorry. You just came up with that on your own.
Starting point is 00:16:56 Yeah. Right. Just experimenting with my son. Both of us. My son and I. We both realized that neither of us kind of knew what we were doing. But Ken knew what I was trying to get for him. And, you know, he wanted to, he was a willing participant because he wants to do great things and he wants to be very successful. And so we were trying to figure this out.
Starting point is 00:17:23 And that worked. And every time he ran into trouble, it was a memorization issue. Later, after starting U-Code, I didn't dive in to all the research and studies and literature on effective education, not specific to computer science or math, just in general, education psychology. And it turns out there's a lot of research on memorization, and it does play a pivotal role in learning. And you can think of learning as really just knowledge acquisition. Even how we solve problems, how we understand today, as I understand how most experts in this field understand what goes on in our brains when we solve problems, is we look at a problem and we see back in our repository of all the problems we remember,
Starting point is 00:18:17 which one does this new problem resemble most similarly? And then we see what the differences are and we try to apply those differences. So even solving problems is kind of an exercise in memory. Interesting. Yeah. Go ahead. Yeah, I see this as a very nuanced thing. I, because Piaget, the guy at the top
Starting point is 00:18:46 of my lineage, I just kind of constructed artificially, he's, like, genetic epistemology is one of his things. All new ideas in your brain must come from, be built out of old ideas in your brain. And when I say, like, idea, that means, like,
Starting point is 00:19:02 gestalt, like, all new structures in your brain need to be built from old structures in your brain and when i say like idea they mean like just just all like uh all old new structure in your brain to be built from old structures in your brain um right and so i i so i i didn't um so i yes um all the like the experiences you have the things you have are so important uh and so i agree so that's why it's just so important to teach your kids uh that's why it's so important to have powerful ideas in the brains of children so that they can learn new, more complicated ideas, building them out of the other, like, the fabric of the powerful ideas already in their brain. I think that's a lot of the key here. I have trouble with the word memorization because as a kid, I had a lot of trouble with memorization. And it was very, it was the opposite of empowering to me. It sounds like memorization was very empowering for you and Ken.
Starting point is 00:19:51 So that's great. For me, it was very disempowering, very like boring. Like it felt very like very, yeah, very boring, robotic, like very forceful. So, well, yeah, I'll just interject something right there on the idea of memorization being boring or not very interesting. One problem that I think most kids deal with is how to memorize. Nobody really teaches that. Schools expect us to memorize so much, and all we're ever really told is just repeat it over and over again in your mind. And it turns out that our brains don't really work that way, and that's not an efficient way at all to memorize something. And it doesn't get stored long-term, and it isn't easily recalled if you memorize that
Starting point is 00:20:47 way, as opposed to much more effective techniques for memorization. So there are a lot of great techniques. And I think it's incredibly valuable for people, not just kids, to learn those techniques because they can have a huge impact on how you learn. If you think about everything that you learn, it's really about storing it in long-term memory. And if you have a huge impact on how you learn. If you think about everything that you learn, it's really about storing it in long-term memory. And if you have a significant better ability to do that, then you can learn so much more and faster and deeper and better. Yeah, I love this.
Starting point is 00:21:19 So are you talking like memory palaces, flashcards, mnemonics, all that stuff? Yeah, yeah. Chunking, associations, there's so many techniques. And association is a big one. Vivid imagery, really understanding how to tie back new knowledge, new information to prior memories, and being able to recall that effectively. And we actually ran memorization camps at UCODE. We didn't this past year, this past summer,
Starting point is 00:21:57 because we were busy with many other things, and we wanted to refine that. But the memorization camps were amazing, because, well, first of all, they were pretty intense. It was like studying, thinking hard, nonstop, all day for five days a week. And afterwards, the kids didn't want to leave. And so many kids, and especially parents, were asking, when's the next one? Is there like part two or level two? And we didn't have anything created yet.
Starting point is 00:22:26 And so we thought, okay, maybe we should really expand this. And the reason why it was pretty exciting for kids and parents was we would start the first day doing our baseline tests. So we would ask the kids, definitely going off on tangents, I want to get back to the original point of who are my heroes, but this was really great. We would do these tests of how many, memorize these digits as many as you can in a row, and we would show them a three, a seven, a nine, a two. And some kids could memorize four digits in a row. Some kids, six.
Starting point is 00:23:07 Some kids, only three. And, you know, it was roughly around those numbers. And, you know, every once in a while a kid would be pretty amazing, seven, eight, or nine digits in a row. But by the end of the camp, we did that test. We did names and faces, and we did verbs and adjectives and other tests, memorization tests. And by the end of the camp, you know, it wasn't five digits in a row. They could memorize 30 digits in a row.
Starting point is 00:23:38 And that was just incredible for kids. And they felt powerful. They felt like they could go back to school. And this was a summer camp. And so they felt like they're going to go back to school in the fall and they're just going to have such a better time in school. Yeah, I bet they do. Yeah, that was, that was exciting.
Starting point is 00:24:00 I think memorization is really important for, for learning. And I think, I think memorization is really important for learning. And I think it gets kind of a bad rap because people think memorization, oh, you're just memorizing the solutions or just memorizing things. You're not really understanding the problem and really understanding how to solve these things. And while it's true you don't want to just memorize a solution and not understand what it's about, memorize it word for word, memorization actually is pretty critical to learning in that you need to know how to memorize effectively and being able to recall things that the problem you're trying to solve depends on can make all the difference in the world,
Starting point is 00:24:43 not only in your ability to solve depends on, can make all the difference in the world, not only in your ability to solve it, but even in your, in what's called self-efficacy, your feeling, your confidence that you can solve problems like this. Totally, yeah. Well, so. And that can help. Yeah, yeah. Oh, my goodness.
Starting point is 00:24:57 Self-efficacy, that's huge. That's like, I feel like that's almost the most important thing to teach. Everything else kind of is secondary to that. Well, not entirely well not entirely not entirely it needs to be backed by by like um like i guess uh like the difference between confidence and arrogance like confidence is backed by actual skill arrogance isn't uh like it needs to be backed by actual skill but um but but yes that's it's such a key piece the emotions um but oh man you have me thinking about so many different thoughts the one that comes to mind first is um i wonder the words you're using, memorization, like I think I have different words for similar concepts, like the memorizing numbers.
Starting point is 00:25:35 To me, that sounds like I would call it expanding working memory. Yeah. Which is like a really exciting phrase for me because I was talking to who? It might have been Emmanuel. No, it might have been Christopher Onand, who was talking to me last week and I introduced you to. He was talking about why he loves teaching. Yeah, yeah, of course.
Starting point is 00:26:03 Two of the only people, or at least the only people that I know of, but potentially the only people in the world to teach Elm to kids. They need to talk, though. So he talks about why he loves teaching Elm to kids is because working memory of people is 7 plus or minus 2, and so you can only fill working memory with so many pieces of information. So the simpler the programming language is, the more kids can do with it because they – like each of those seven slots of working memory really has to be utilized to the fullest. You can't, like, waste them on, like, unnecessary syntax and things like that. But if you can expand the working memory of a kid to more than seven like oh my god like like then right uh
Starting point is 00:26:45 then yeah then they could they can program they could do a lot more things that's really exciting um and then yeah like um talking about uh like um for me yeah i like memorization is an interesting uh phrase given the way you use it um like i yeah i think of memorization is more like flashcards drill like drill drilling as opposed to, like, increasing the ability for students to assimilate new ideas through, like, all that. Yeah, I would, yeah, I put different words on it, but I understand kind of where you're coming from,
Starting point is 00:27:19 and I'm really glad we kind of went down this rabbit hole, because I didn't quite understand how thoughtful you were about the word memorization. Yeah, memorization, just being able to recall something that you previously learned. So, yeah, the flashcards example is maybe repetition type of memorization or drill and kill or however you want to put it. Well, so I can give you an example that I think is – sorry. I just want to point out that you mentioned expanding working memory. I don't know that these techniques alter your brain to have a bigger working memory number of bytes or size, or is just these techniques kind of allow you to access, store and access long-term memory quicker, or I don't exactly know what's going on inside your
Starting point is 00:28:13 mind, but it is expanding working memory in the sense of being able to memorize things quickly. Great. Okay, great. I actually haven't read a book on this that explained it. I don't know if it's true, but I've read a book on this recently, so I have a good theory that I can kind of go into for a second. And then I'll give you the example I wanted to say. So I read this book, Peak, by Anders Ericsson. I don't know if you've heard about it. No.
Starting point is 00:28:39 No, okay. So how about outliers on Malcolm Gladwell? Yes, of course. Okay, great. So the Malcolm Gladwell? Yes, of course. Okay, great. So the Malcolm Gladwell Outliers 10,000-Hour Rule. So Peak by Anders Ericsson. So Anders Ericsson did the original research. I think it was also Brian Thompson was his co-author.
Starting point is 00:28:58 I'm sorry to whoever co-wrote that book. I always forget co-wrote that book i always forget uh co-authors but anyways um uh um the so this book peak was is like basically uh outliers by malcolm gladwell but written by the original researchers and it's just amazing like this book i became obsessed with i emailed i emailed anders uh the author like the minute i finished i like wrote him like this really long email about like how much i love the book and he emailed me back right away. And, yeah, it was a really fun book. So, anyways, I highly recommend it.
Starting point is 00:29:28 It's very, like, empowering. Yeah, I'll definitely read it. Yeah, great. And so one of the things it talked about is one of the things that Anders did himself, one of the pieces of research he did was he wanted to see how much he could expand working memory for, and he had a very simple experimental design. And at the time, 7 plus or minus 2 was like sacrosanct, and nobody had really gone past like 20 or 30 in the entire world.
Starting point is 00:29:55 Like the record for the world was like 20 or 30. And he worked with just like an average kid on a college campus, and they just kept working at it using deliberate practice, a term I'm sure you're familiar with. And this one random guy was able to get to like 200. And then like the guy after him was like up to 300. And it just like there's no limit. There's no end in sight. It kept going.
Starting point is 00:30:18 And he was able to prove. And so first prove that it's possible. But then so your question of like what's going on in the brain so you're right there isn't a way to expand working memory past I think seven plus or minus two the thing that changes is the way you you you learn how to represent these numbers which I'm sure you have an intuitive sense for like all the quote unquote tricks that kids use to memorize more numbers. They chunk them, and they associate them, and they image.
Starting point is 00:30:47 All those tricks are just encoding. They're compression algorithms, like the same things we use in computer science, but we teach kids to kind of use them in their brain. Right. So, yeah, it's a good point. I don't know if those tricks would help, like will necessarily help when learning, like, a programming language like Elm, because I don't know if you'd use these encoding tricks to, like, remember two different parts of a problem you're working on at the same time.
Starting point is 00:31:11 So it's a good point. I don't know if it would actually help, but it is nonetheless exciting. Yeah, well, how it helps and what we strongly encourage, and we've actually played with it in our LMS, too, is making these associations. And how it helps is learning the material in the first place. So it may not be necessarily that, you know, you're working with eight variables or a constant. We try to steer kids away from variables.
Starting point is 00:31:43 But constants or data or names of functions, you need to have, like, all these ten things in your head at once to be able to compute the result, but just learning it initially and learning how functions work, especially when you get into trickier things like the more complicated type systems of functional languages, like applicatives and monads and how all that works. And knowing that at the tip of your fingers makes everything so much easier.
Starting point is 00:32:13 And so even in the basics of computer programming, just being able to learn it and not forgetting what you'd previously learned, being able to really have mastered in a relatively short amount of time for a kid, allows us to go very deep in computer science. Yeah. Well, so, yeah, I love it. So here, I want to give you that example, like a concrete example that I remember from my childhood that I can kind of illustrate the way I see what you're calling memorization. But I'm curious if I'm getting it wrong. So I'd like you to correct me
Starting point is 00:32:48 if I am. So when I did Logo at IMAX in South Florida when I was like 12, and I remember when I like had to figure out on my own how to make a circle in the Logo Turtle program. And so you imagine yourself with ink on your shoes and there's a white piece of paper on the floor and you want to draw a circle. How would you do it? And so eventually I think the way I intuited it was I kind of thought about how...
Starting point is 00:33:16 I've been drawing a lot of polygons, and that wasn't by accident, that was by design. I've been drawing a lot of polygons, and I was kind of seeing how the more sides you add, the more circly it looks. And so I came to the conclusion that eventually I came to, oh, if you just go up a little bit and then turn a little bit and then do that a bunch of times, you get something that looks a lot like a circle. And so I, and then I would make more complicated curves and they go left
Starting point is 00:33:42 and they go right. And whenever I would think about how to do things like this i would anthropomorphize the turtle imagine myself in the turtle shoes on the screen i would sometimes even get up stand up and and walk around and kind of imagine and use my my body sense to relate it to computer um the computer which is exactly what seymour papert wanted me to learn how to do because that's how mathematicians think right and that's what i encourage my students to do at the coding space so um and then when i got to calculate he talked about that in the yeah sorry to interrupt uh no yeah he talked about it yeah so that's why for me mind storms is a relevation because well i'll explain so when i got to high school and explain what a derivative was you know you go up a little and you go over a little bit so you can kind of figure out how curves work.
Starting point is 00:34:26 I was like, oh, I know what that is. I've walked on curves for dozens of hours. I just needed the word for that. I already knew what that is. So everyone else in the class was so super confused, and to everyone else I looked like a genius. I looked like I was just born with an understanding of derivatives. But I knew that it was grounded in this thing that I was doing when I was 12 born with an understanding of derivative, but I knew that it was like grounded in,
Starting point is 00:34:45 in this thing that I was doing when I was like, when I was 12 that nobody else was doing. It was like, and so I would have never said it was because I like memorized turtle. Like I wouldn't have used the word memorization there, but it definitely is a recall of an experience going on. Right. So,
Starting point is 00:35:02 so, and then just to finish the story to connect the dots, and then i'll curious to get your take on on whether or not that's what you call memorization uh so when i got to college and i was given the essay learnable programming which led me to uh seymour papert's uh mindstorms it was like oh my god like he he did that on purpose like he was trying to mathematical ideas through a programming language and so so we designed logo, like, wow. Like,
Starting point is 00:35:25 and it worked for you exactly that way. Yeah. I was, I, math was my worst favorite subject in school. Cause I hated memorizing things. I was so bad at it. And I,
Starting point is 00:35:34 I really thought I was just dumb. I thought I was a dumb kid. I thought I was bad at math. I visually, I basically remember arguing with my mom. I'm bad at math. She's like, no,
Starting point is 00:35:41 you, she's like, I'm, she's like, I'm average. Your, your father's very good. There's no way you're bad. And I was like, no, I'm bad. I'm trusting. I'm bad, mom she's like no you she's like i'm she's like i'm average your father's very good there's no way you're bad um and i was like no i'm bad i'm trust me i'm bad mom i'm like the worst in the class and then like i graduated high school i got the award for the best math
Starting point is 00:35:53 student in the in the school like and and for me it's very clearly that's great more pepper they're like an imax that made the difference um and i feel like not many people get this experience of being on both sides of the bell curve, like being at the bottom and then at the top. In just like a matter of a year, really, the transformation was very quick for me. Wow, that's amazing. Yeah, yeah.
Starting point is 00:36:17 So I'll pause there. I'm curious to get a sense of if that's kind of how you think about memorization. It's more like it's richer than memorizing facts. It's like memorizing, it's remembering experiences almost. Is that how you think about it? Sure. Yeah, well, if you experience something,
Starting point is 00:36:36 any kind of, I think any kind of emotional impact something has on you, you're going to memorize it better. And if you experience something the way you describe, yeah, it sounds like it was great for you to be able to memorize that way. And you were able to recall those things and associate them with others, transfer that knowledge to other areas and other subjects
Starting point is 00:37:05 very well. Sounds like it was incredible for you. I think a few things happened for you there. I think not only did you internalize what was going on and effectively memorize it in a way that allowed you to transfer that to other skills. But I think you also developed self-efficacy. You developed this knowledge that, well, if I just really, you know, learn something or focus on it or treat it a different way or think about it another way, I will get it and I will be great at it. And that confidence probably helped you quite a bit. Oh, yeah.
Starting point is 00:37:47 Yeah, totally. So in eighth grade, I wanted to get a certain grade in history because I wanted to be in, like, honors history in ninth grade, and my grade just wasn't there. And the teacher said, you know, I don't see any way that you're going to make this happen. And so I was like, wait a second. Like, through computer science, I'm learning, you know, to look at problems different ways. Like, I was starting to get, yeah, the self-efficacy. I was like like wait a second like through computer science I'm learning you know to look
Starting point is 00:38:05 at problems different ways like I was starting to get yeah the self-efficacy I was like wait a second like my one of my close friends Jacob does really well in history I wonder if he'd kind of show me how he takes notes how he studies for a test I literally went to his I had my mom drive me to his house we spent like 45 minutes together if that and I got like perfect grades in history ever ever since then. And it's just like, it never would have occurred to me that like the strategy by which you study and take note, like that there's even a strategy there. Like I thought it was just like, everyone is their best. Yeah. You're smart. Exactly. Exactly. And okay. And that brings me to
Starting point is 00:38:40 my next thing that I, that I have been meaning to ask this whole conversation. It feels to me like the way you think about raising your son and other people's children, there's like this implicit underlying assumption you have that I also have, but it's rare. So I want to make sure that it exists or feel out where we differ on this one. It almost feels like you see that it's all mundane. Like you were saying that, like, there's nothing too hard for a six-year-old. Like anything that's complex is just made up of mundane parts. And if you just learn all the parts, then the complicated thing becomes mundane itself.
Starting point is 00:39:18 So, yeah, do you believe that, like, every child can be a genius with, like, the right education? Or is there, like, some genetic component or some magical component? Or do you really truly believe that it's just, like, the right kind of practice? Yeah, that's a great question. Is it Salman Khan from Khan Academy that said that he teaches, he tells his kids, he never tells his kids that they're smart. He just tells them, he praises them for effort. I think, I think that's what I read.
Starting point is 00:39:57 And yeah, I, there's definitely a lot of a lot of research behind this around, well, I mean, self-advocacy is a whole idea that just put in more effort and you will get the results you want in terms of your academic achievement. that probably the gap between somebody not so smart and somebody very smart is narrower than we think or than society typically thinks. You know, we as a society think that there are some people that are geniuses that are a hundred times smarter than other people. And I'm sure that some people's brains are more capable than other people's brains, but probably not by that much. It's probably a huge, this is my intuition and based on some things I've read, but I'm not an expert in this. But I believe that some kids just stumble upon the right way to memorize something or a more effective way to memorize something. And that helps them tremendously in learning.
Starting point is 00:41:13 And in, of course, remembering facts and remembering things. And they're seen as geniuses. And they stumble upon other great, great things, you know, how to take feedback properly. You know, there's a whole, there's a lot of research in how we give feedback to kids or adults too. But if you give feedback at the right time in the right way, it can be incredibly powerful. And the outcomes, the effects of that are enormous. And some kids can deal with that. They can deal with getting feedback or ask for feedback in a way and just really prosper because of that.
Starting point is 00:41:55 And they just stumbled upon that. Or maybe they've been taught that at a young age by somebody and that stuck with them. And so they're seen as geniuses because they are doing very well, very well at school or they're able to learn something very effectively and be very good at something. And other kids just happen not to stumble upon those things and just struggle because all of their memorization is just this rote, repetitious style that is not so effective, but it's the only way they know how to do it. And so they work really hard or they don't work hard and they just don't achieve that much. That's my feeling on the subject. Having said that, I tell my kids they're so incredibly smart all the time. I don't know. I don't know if I'm doing the right thing there.
Starting point is 00:42:55 Because I know there's a whole school of thought that you're not supposed to say that to your kids because then they'll think that I'm just born with this. And when they hit upon subjects or material or something they're trying to learn and that it's not so easy, then they panic. And then they feel like they're dumb, they're not capable, and they don't progress. And they don't try, and they don't look at it in another way, and they don't, you know, persevere and figure it out. Yep. And luckily, I don't think that's the case so far with my kids. So hopefully I haven't done them damage by praising them that way. Yeah.
Starting point is 00:43:37 Yeah. Praise is a complicated subject. I've thought a lot about it. It's hard to do right. There's a lot of interesting writing on this subject. Praise is tough. But yes, I know at least one of your kids, and
Starting point is 00:43:52 Ken seems to be all right. I don't think you have to be too worried. It's very sweet how you... The bar which you hold yourself to as a parent is remarkable. Well done. On that note note i was kind of wondering um like some of the words and phrases and way you talk i think like give off like almost helicopter parent vibes and in that like in how much you're
Starting point is 00:44:19 focused on like you're on being a good parent like the amount of attention and care and focus is almost helicopter-y parent, which is a term with negative connotations. But I think a lot of times helicopter parents come at it from a place of fear when I don't get that sense at all from you. So I'm curious kind of where you come at this from. Did your parents raise you really well?
Starting point is 00:44:49 Why were you inspired to read all these parenting books? Like, where is it coming from? Yeah, so my parents, they were absolutely not helicopter parents in any sense of that word. I mean, you know, maybe I grew up in a different time when, you know, parents just let their kids go out and do whatever they want and come back in the evening. And, you know, at very young ages, extremely young by today's standards, like child abuse, young kind of levels. And that's kind of how I grew up. So I definitely did not get that from my parents.
Starting point is 00:45:29 I am not ashamed to admit that I am obsessed with my kids. Why, I don't know. My son was born. That was my first child. And, yeah, that's just what filled my head. And I couldn't stop thinking about how to do right by him. It was quite a – I'm sure all parents feel this when they have their first child, what a miracle that is and how special that is.
Starting point is 00:46:01 And you want to do everything in your power to do right by them. So that just stuck with me. And then I had my daughter and I continue to be obsessed with them. So I am, I guess, a helicopter parent in that sense. At times, I'm really pushing them to learn a lot. Other times, I'm not. I feel like, oh, maybe I'm pushing too much on them and need to let them relax. So then I let them relax. And then, you know, kind of comes in waves of what I think if I'm doing too little or too much. I took my son to a movie the other day, a week ago.
Starting point is 00:46:48 I thought it was a good movie to take him to, but I didn't even watch the trailer. I watched a part of the trailer, I think. I know I saw photos and I read some stuff. And it seemed to be about a family in Florida near Disney World. And it was with like a little girl and it got like incredible reviews and i'm like oh hey cam let's see this movie and it turned out to be not so appropriate for for an 11 year old um like the the mom uh i don't want to give away the movie uh but uh but it was it was kind of not appropriate, and the mom was really not a great mom.
Starting point is 00:47:28 And although I'm sure she loved her kid, like in the movie, how they portrayed her, but she had problems. And so after the movie, you know, we talked about it, and I said, you know, hopefully I'm better than that. And I asked, how can I improve as a father? know uh hopefully i'm better than that and and uh and i asked what uh what can i uh how can i improve as a father and uh and my son was like oh no you're great you do everything perfect like no no come on come on what what's one thing i could be doing better and he said you could push me harder. Wow.
Starting point is 00:48:12 So now I'm going to try to take him up on that and try to push him harder. Wow. Cool. Yeah, that's great when it comes from kids like that. That's amazing. Yeah, I think that kind of really dispels the fear that you're the one pushing him. You know, that's really amazing. That somehow, yeah, that you like cracked a knot on the intrinsic motivation here.
Starting point is 00:48:31 That's awesome. That's not easy to do. Yeah, I don't know that I've cracked anything. Sometimes I feel like I'm a great parent. Other times I feel like I'm ruining my kids' lives or doing everything wrong. I don't know. You know, running U-Code, I've met just thousands of parents. And some parents would do everything wrong by how you grow up thinking a parent should behave with their kids, and their kids are incredible. And they grow up, you know, just they're doing incredible in school, just thoughtful, ethical, great kids.
Starting point is 00:49:17 And some kids, some parents seem to do everything right, and their kids have problems. So I really don't know what the right thing to do is I just my parenting style is I spoil my kids as much as I can and hope for the best and try to really push academics on them too
Starting point is 00:49:39 or push it to reasonable levels okay great this is really fun and we went kind of Or push it to, you know, reasonable levels. Yeah, yeah. Okay, great. This is really fun. And we went kind of on fun tangents. I think maybe for maybe the audience's sake, we can try and bring it back to coding a little bit. Yeah.
Starting point is 00:50:00 Well, you asked me originally about heroes. Yeah. And I brought up some of the things that I brought up, memorization, and then later in when I started U-Code, reading up on the literature and studies and research behind effective education. And there, you know, what was surprising to me was there's so much research on effective education and educational psychology. And it seemed like some of this, I was reading some of these books, and it was like, wow, you give feedback in this way, kids will learn the outcomes had effect sizes of two, which is huge, which just means that kids learn so much more effectively in this little change, in this little thing that you can do.
Starting point is 00:50:56 And that never happened to me in college or in high school or middle school or elementary school. Nobody was teaching. Nobody was doing these things that have been well-researched. And I felt like all this research is going where? And who's taking advantage of it? Because it seems like if everybody did, if all teachers and all institutions and books and places you learn online really listened to this research, people would be so well educated. And so one person who used to
Starting point is 00:51:31 work at UCODE really turned me on to Richard Mayer's books and studies. And now he's an advisor to U-Code. And he is great. He has done some really incredible research that we take to heart in everything we do here at U-Code. And I think that it's produced incredible results. Cool. Yeah. Could you give me maybe some specific examples of like an insight that his name is Richard communicates? Let's see. Yeah, and how you apply it like in a programming language context, like through science education context? Yeah, so he has one book, which he updates every, I think, couple years or so. I actually don't know the cadence, but updates regularly with another author, Ruth Clark, called e-learning and the science of instruction. And there he talks a lot about e-learning and learning through a computer. And he talks about this principle of dual channels.
Starting point is 00:52:55 So, you know, we learn through typically how we've evolved or how we learn from a child is we hear and see things. And so if you can teach through both channels at the same time, then that can be actually really effective. And so we try to do that through our videos. And so, you know, we talk while we show examples in certain ways, but you have to be careful not to have extraneous graphics. And, you know, there's a lot of things in how we do that, but that's something that we take very seriously. Yeah, I definitely encourage reading that book in particular is is great for
Starting point is 00:53:48 teaching computer science because you typically are teaching computer science over a computer as you're going to be uh doing your exercises and uh and your projects on the computer? Yeah. I'm curious to ask a question about, so the title of his book, the word instruction is in the book. And in my circles, in like the Papert School of Thought, that's kind of like a bad word.
Starting point is 00:54:23 Like teaching kids things through instruction is like kind of the way I try not to do it. I try to do it through constructionism. And potentially this is just a semantic game and we see things the same way. So I wanted to kind of put that out there. And yeah, so and like just to give you a sense, and I'll kind of, like, counter instructionism with constructionism in regards to how we do it in the coding space, my after-school program. Yeah. So we, our goal is to, like, teach kids how to learn arbitrary things. Computer science is just the medium through which we teach kids how to learn things um and so it was so like we think it would be counter to our like mission to teach kids
Starting point is 00:55:07 computer science because um if we instruct them in computer science like that that gives them less of an opportunity to like practice learning things on their own um and so um we we yeah we we like deliberately don't teach anything and then kind of like give kids give kids problems, which come in the form of projects, like make a floppy board game, and we give, like, maybe a few hints, but it's generally, like, figure it out on your own. And then when kids get stuck, they raise their hand, and a teacher will come over to help them, but the teacher still won't teach them anything. The teachers only respond Socratically, asking questions, so that the knowledge really comes from the student. And so we're trying to be the opposite of an instructionist.
Starting point is 00:55:57 So I'm curious to get a sense of how your philosophy compares and contrasts with ours. Yeah, so there's definitely a lot of research on this subject too. And if you go too far in one direction of letting kids figure out, struggle, figure out how to do something, the problem is they don't learn it that effectively because when they do figure it out, they don't really understand how they came about it. And so they came up with a solution and it worked and that's great, but they can't necessarily replicate that or transfer that
Starting point is 00:56:34 in other areas. And if you give them too much help, then they haven't necessarily memorized that, how to do it, and they've just kind of followed your example, and they can't duplicate that either or transfer that elsewhere. And so there's some happy medium there, and typically the term is guided discovery. You don't want pure discovery where kids are discovering the solutions, but you want to guide them, and you want to point out or have them explain, which is another effective way for them to learn how they arrived at these conclusions.
Starting point is 00:57:17 Yeah. Go ahead. Yeah, no, that distinction makes sense. I would just caveat it like a tiny bit. The side of the spectrum where you give kids too much freedom and have them fully discovered on their own, I think the risk there is that if you ask if you ask them to, like, kind of, like, reprove all of mathematics, like, you know, that takes so much time and energy and, like, you know, like, it's hard to ask them to, like, do all of mathematics, like, prove all of mathematics, which took hundreds of years, you know, in, like, an hour after school class. And so it's just, like, so for me, it's less of a risk that they'll get the, they'll find
Starting point is 00:58:02 something that works and not know how to explain it. The risk is more that they'll never find anything that works uh sure but i think but but i think that's not feasible yeah yeah so for me that's but but even giving them something that's feasible and uh giving them something where they struggle at it for an hour or two and they eventually get it, that can be problematic. Because even if they do get it, they might not have understood or remembered how they got it and how to use that problem-solving technique or how to use that specific technique that they figured out again. That I actually, I think we disagree on, that claim. I think when a kid invents a method of solving a problem on their own through struggling,
Starting point is 00:58:59 that is like, at least in my experience, when I figured out things on my own through struggling, it felt like the best way to learn a thing. In some ways, it felt like the only way to learn a thing. In some ways, it felt like the only way to learn a thing. For example, if you're trying to teach a kid an algorithm, and how you do that is you tell them to solve this problem, and to solve that problem, they would need to be, maybe you're teaching them how to sort objects. And they stumble around, they spend an hour on it, writing their little algorithm, and they need to
Starting point is 00:59:40 query a certain property of the object. And that tells them some value that they can sort by, and their code gets kind of messy, and they play with it, play with it, and then they get it, have they really learned a good sorting algorithm? You know, in the end, they may have gotten that to sort, but you ask them, you know, a week later, sort something else in a similar way, and they've got to kind of duplicate all that over again. They haven't remembered, they haven't understood, you know, how to generalize that whole mechanism. Yeah. Yeah, yeah.
Starting point is 01:00:21 Without somebody. I'm with you. And so one technique is to, you know, have them struggle with it, and hopefully they get it. And whether they get it or not, still point out to them, look, this is what's going on, and this is how to do it. And that's the guided discovery. Totally, totally. We're on the same page. We're on the same page. I'm reflecting on, like, when I was learning recursion at IMAX as a kid, I remember, like, as an example, I would, like, have to figure out these really tough challenges on my own.
Starting point is 01:00:52 And when I would get them, it would be, like, magical. Like, the self-efficacy would go through the roof. And then also I, like, really understood these concepts because I, like, felt like I invented them for myself. But there were times, yeah, like, for example, I would build a recursive solution, and I would have, like, the base case, the terminating condition, and then I would have, like, the recursive condition. And I wouldn't, in my teacher's words, his name was Ken, I wouldn't, quote, like, trust the recursion.
Starting point is 01:01:17 Like, I would, like, handle a lot more cases than just the base case. And he was like, well, why handle three cases? Why not four? Why not five? Why not six? I was like, great idea. And I was like, add more cases. He was like, no why not four why not five why not six i was a great idea and i was like add more cases you need less cases um but like that those conversations were like he pointed that out um yeah without those conversations i totally agree with you i i wouldn't have like like that conversation like really helped me like generalize oh like you have to trust the recursion like that insight i wouldn't have had without him so i I run the same page. I'm glad we kind of we kept talking here.
Starting point is 01:01:49 It's funny how we use different words. You and I in this conversation are using different words to describe almost the same things semantically. Right. Yeah. Maybe we maybe maybe you put enough thought and effort and practice into teaching, and we all come to the same conclusions with different phrases. to Ferranans in Canada and to Emmanuel Schnatter at Bootstrap, at least the four of us, and to the IMAX people. There's a... I guess it's no coincidence that my conclusions are similar to the IMAX people's conclusions, but it is funny how a lot of people who have never talked come to
Starting point is 01:02:37 the same place. And David Deutch, his philosopher I like, he talks about how, you know, the quote, a great mind think alike um and he says like the reason that is is because like uh truth and beauty like are like difficult things to arrive at and so like when you when you arrive at like an idea that's a beautiful good idea um like a chance there are other people will be arriving at that idea those ideas as well because like they're like there are millions
Starting point is 01:03:09 of bad ideas but there are fewer good ideas so it's like it's not crazy that that a lot of people would arrive at the good ones so yeah that makes sense yeah i mean some of this stuff is is not so intuitive um and i would not normally even the memorization wasn't so intuitive, although that's what my son and I did discover on our own. But some things, it was really worth it for me to read and understand and learn how to teach more effectively. I would not have necessarily come to the conclusion that self-efficacy is so important for kids. Now it makes sense, and now I'm putting that into practice that it made sense. But yeah, I think part of it too is we all have a deep passion for teaching effectively. And so that draws us to all these other books and studies
Starting point is 01:04:15 that other people have led the way in terms of what works and what doesn't. So that's why we probably come to a lot of similar conclusions. Yeah, there you go. Self-efficacy is not just for kids. It's for adults too. Cool. So, um, I want to go maybe a little bit, even more technical. So, um, as I, as I've talked about on this podcast before, my curriculum is pretty straightforward. We keep kids in Scratch for a while, then we go to my programming language framework, WoofJS, and then we do web programming. And that's all we do at The Coding Space.
Starting point is 01:04:58 You guys, I know, have tried a lot of different languages, technologies, framework. You do a lot more, and you've experimented with a lot more. So I'd be curious to get a sense of different languages, technologies, framework. Like, you do a lot more, and you've experimented with a lot more. So I'd be curious to get a sense of how you think about curriculum design, how you, like, lay out the languages, when kids move between them, what, like, languages you're experimenting with now, how you think about all that kind of stuff. Yeah, yeah. I'll try to be a little more brief,
Starting point is 01:05:24 but I'll give you a little history of what we've done at U-Code. I started U-Code with Ruby because that's what I had taught my to grasp very easily, and they were. And it worked great. I liked it a lot. We would go from Ruby to then learning Ruby on Rails, which is, if you don't know, just a framework on top of Ruby for developing websites. And that worked really well, too. And after that, I taught kids Clojure, which is a scheme-like language built on the JVM. And that was good, too. It was definitely a struggle because I then was really trying to get kids to think about things functionally or mathematically,
Starting point is 01:06:27 to not use variables or loops, aside from recursive loops, and to use the whole immutable mechanisms built into Clojure. Clojure does allow you. It is not a purely functional language, and there are ways to do things in an impure fashion, enclosure. But I really wanted kids to learn that functional nature. And that was a struggle for kids. And even our brightest students, it was a struggle, which I thought was necessary and valuable.
Starting point is 01:07:03 And, you know, learning to code that way was important. And I was a functional, which I thought was necessary and valuable, and learning to code that way was important, and I was a functional programming advocate back then. I just felt that was kind of last in what you learned in programming languages because that was more difficult. It took more of an investment. And then I met Emanuel Skanzer. He's the creator of Bootstrap. Oh, I didn't
Starting point is 01:07:27 realize that you got these ideas from him. Interesting. Okay, cool. Keep going. Yeah. Yeah. I just want to say it's irrelevant. I spoke with him an hour ago, so it's kind of a funny functional programming teaching
Starting point is 01:07:43 kid's day for me. Anyways, continue. Yeah, yeah. I actually was at an event for teachers at the time. And somebody that I was working with, I was at the booth, and she was just roaming around. And she went into Manu Skander's kind of presentation to a bunch of teachers and, you know, telling them about Bootstrap. And she's like, you, she texts me, you have to come in here. This is just what you're trying to do too. You're going to love this guy. And I'm like, all right, let me, let me see. And, uh, I got somebody to man the booth and went over there. And, uh, and I was really impressed. I mean, Emmanuel gives a phenomenal
Starting point is 01:08:26 presentation and he was talking about how we really need to teach kids functional programming, essentially, uh, that, um, that it's, uh, you know, one-to-one relationship with the algebra they're learning in school. And, uh, and so he's really trying to get algebra classes to, I actually don't know what he's doing at the moment. I haven't spoken to him in a while, but at least at the time, he was trying to get teachers to teach four weeks of bootstrap during their year of algebra, and that would actually help them with algebra, too. And what he made me think about was, why am I teaching functional programming last? Maybe it should be first. And so then we had lunch, and I was talking to him for a while and
Starting point is 01:09:20 really, really impressed with him and really impressed with his presentation. I mean, a lot of the presentation I agreed with and I'd already been teaching, but he was really pushing that for kids to learn this first. And that's what really was really exciting for me. And so I came back to U-Code later that day, and I was like, let's try teaching kids functional programming first. And so we did that, and it was incredible. I mean, when I was teaching during Ruby and Ruby on Rails, I never taught recursion. In Clojure, recursion was critical because unless they were going to be doing – well, I wanted them to learn recursion instead of loops.
Starting point is 01:10:11 And, you know, you can do the filter and the map and the folds. I think it's called reduce in Clojure and all that kind of stuff. But I wanted them to learn recursion, and that was a big stumbling block for kids. But when you teach recursion first, before having taught how to for loop or anything like that, and that is the only way to go through the elements of a list, and they need to go through the elements of a list, kids were great with it. And, you know, that was the IMAX curriculum, too. So my kids' school uses IMAX for anybody that doesn't know. And so I spent a year there volunteering.
Starting point is 01:10:58 Yeah, and just to kind of connect with that. And helping a lot of kids with IMAX. Yeah, yeah. Right. Yeah, so it's kind of funny how you and I got connected. A venture capitalist who's invested in your company, Shana Fisher, connected us at the same time as your son started going to the school where I was teaching IMAX. So we met kind of in two different directions at the same time. So that was really fun. Yeah, that was a huge coincidence. I had met you through Shanna Fisher, and then my kids were starting a new school, and they told me ahead of time that we're teaching Scheme. And I was like, wow, you're teaching Scheme. This is amazing.
Starting point is 01:11:42 I didn't know anybody else was even teaching functional programming, and this new school scheme. This is amazing. I didn't know anybody else was even teaching functional programming, and this new school is. This is great. And so my kids start, and you're the teacher, but remotely, through video conferencing. That was crazy. Yeah. That was crazy because you're in New York, and this is in Los Angeles. yeah yeah it was wacky and it didn't really make any sense but you know i i you know i i spoke to the people who are running the school they liked what you know i was up to and the way i spoke about
Starting point is 01:12:17 imax the imax curriculum because the curriculum that i was teaching at at this school was the same that i went through as i when i was a So, you know, clearly I'm very passionate about this stuff. So they were excited about it. So we made it work. And then when you joined the school, I thought it would be fun to have your son help me teach other kids. So I don't remember how we did it, but I asked him if he would be interested in kind of doing the entire course, like, really quickly before the school year started so he could help, you know,
Starting point is 01:12:47 other kids. And, and I don't think I, I barely helped him even once. I'm sure, I'm sure maybe, maybe he asked you for help, but it seemed like he just kind of flew through it. It was like the, you know, it was just fun and easy for him. And then, and he was a great help. So that was, that was really fun to get to work with your son, even just a little bit. Cause there were a few times he asked for help, but it was rare. Yeah. Well, he, for better or worse, he's had to live with me for 11 years,
Starting point is 01:13:11 and so he had no choice but to learn programming pretty well. Yeah, exactly. Thankfully, he loves it, and so if he didn't love it, I think I'd still make him do it. He would not be as happy with it. But, yeah, yeah, that was a crazy coincidence. What was I talking about right before? The history of U-Code and Clojure meeting Emanuel Skanzer. Yeah, that was a pretty amazing amazing meeting um a manual scanser i i would
Starting point is 01:13:46 then uh go through his entire bootstrap course um and uh and and talk with him a bit more we had a great long dinner and um and i was i was really happy to to see his work um we he definitely takes a very algebra, you know, like a math class algebra approach to things, which I think is great, too. So our curriculum, we don't necessarily try to teach algebra or math. We really focus on the computer science. That's hopefully a very happy byproduct of learning computer science in this fashion, in this purely functional type of way, purely as much as we can. So that kind of leads us to present day. Or I'll even just throw in some more things there.
Starting point is 01:14:42 At the time, we were actually teaching Scratch App Inventor so after they finished Scratch they would go into App Inventor which is like Scratch but for Android devices and then we would teach them HTML, CSS and JavaScript JavaScript turned out to be more
Starting point is 01:14:59 difficult for the same exact concepts in Ruby and in JavaScript it was more difficult for kids in JavaScript the shorter exact concepts in Ruby and in JavaScript. It was more difficult for kids in JavaScript. The shorter, simpler syntax of Ruby made a difference with kids. I was kind of surprised by that. Yeah, I'm a little surprised by this too. Yeah. You know, maybe we could have just taught it more effectively.
Starting point is 01:15:22 I mean, since then, I think we've improved dramatically in how we teach and how we scaffold things and how we approach JavaScript. And so we're able to do that very effectively now, and I'm sure much more effectively than we were able to with Ruby. But given the same instruction, same concepts for Ruby and for JavaScript, kids had an easier time with Ruby. So after that, we migrated slowly away from Scratch and App Inventor because we were not able to teach in a functional style in those environments.
Starting point is 01:16:09 And the problems sometimes we were facing were kids could pretty quickly – I mean, I think one of the great strengths of Scratch is that kids can pretty quickly and easily create interesting things. And I think it's pretty quickly and easily create interesting things. And, uh, and I think it's pretty exciting for a lot of kids. Uh, that's a, that's a huge strength. Uh, but, uh, the, that's a weakness as well, because then when we try to teach them, uh, JavaScript or another language, suddenly they have to type a lot and it's it's not immediately like uh within the first 10 minutes they get something on the screen and uh and that can be annoying for kids and they kind of want to in the beginning keep going back to scratch and and uh and and the because we were teaching in a different style than the procedural imperative style of Scratch and where functions, which are,
Starting point is 01:17:06 you know, the make a block mechanism in Scratch don't return a value or at least don't return a value very easily. You can have workarounds for that. But now it's kind of a whole different way of thinking about code. We stopped doing Scratch because or we gradually stopped doing Scratch because, or we gradually stopped doing Scratch because we didn't want, we didn't see the value in starting with that. So now we just start immediately in HTML and CSS, and we actually go kind of deep in HTML and CSS using CSS variables and some of the more complicated mechanisms there, and then
Starting point is 01:17:44 JavaScript. And do you use, like, a JavaScript library? Is it, like, a lot of the const keyword? Do you use, like, an immutable stuff? Like, how do you – yeah. Yeah, so we don't even teach them the var or the let keyword for a while. The only – in fact, we don't even teach them the function keyword for a while. We teach them only const.
Starting point is 01:18:08 And if you want to create a function, it's const name of the function equals and then a single parameter and then the fat arrow equals greater than sign. And so they can only create a single parameter. Right. So we do single parameter functions for a while. If they want two parameters, you know, they return a function that takes another parameter. Wow.
Starting point is 01:18:32 And so they get automatic. So they get automatic currying that way through JavaScript. And JavaScript syntax allows for that nicely. You know, so if you want a two parameter function, you, yeah. If you want a two parameter function, we if you want a two parameter function uh we we we teach kids only one parameter functions um so if you want two parameters if you want a function to operate on two different inputs then you create uh let's say the function was called foo you you type const foo equals a for the first parameter that arrow b, B, and then that arrow, and then the algorithm or the actual
Starting point is 01:19:08 body of the function. And so to call the function, you do foo parentheses, and then the value for A, and then another set of parentheses, and then the value for B. And then of course, if you don't specify the value for B, it returns you a one argument function. Ah, so cool. Yeah, that's, you know, I guess that's how you do it in Haskell. Or, well, yeah, that's beautiful. That's really cool that you do it that way. That's, like, a really thoughtful thing.
Starting point is 01:19:39 Yeah, I'm almost, yeah, thinking about how that might work in my curriculum. Yeah, very cool. I'm very impressed. That that might work in micro-gen. Yeah, very cool. I'm very impressed. That's awesome. Thank you. Yeah, so we really stress the functional techniques in JavaScript, and so we go pretty far. We use a language called sanctuary.
Starting point is 01:20:00 I'm sorry, not a language, a framework or a library called Sanctuary that gives us two data types, a maybe and an either. I'm sure you're familiar with those data structures. Also can be thought of as monads or applicatives because you have the various functions that allow you to map and fold and bind other functions to it. So we try to get kids to think of, oh, the other thing we do with JavaScript is we do teach them var, let, and for loops and if statements and that kind of stuff, but later. And with the caveat of try not to use these when you don't have to.
Starting point is 01:20:53 And sometimes you have to, and we give the reasons why, and especially working with other libraries and other code, that's typically the reason why. So, right, we really try to stress the functional aspects. I was going somewhere with this, with maybes or ethers. I don't remember. Well, I think you do HTML, CSS really deeply. Then you do JavaScript in this way. Then what? Is there something else after?
Starting point is 01:21:24 Elm. So then we make the switch to Elm, which is now a purely functional language, and it's typed. And so that's pretty neat. And it's actually a fairly simple language in that it doesn't have too many things to understand before you can be productive or even before you can learn the entire framework and language. So Elm is kind of two things.
Starting point is 01:21:54 It's a language, and it's something that's built in called the Elm architecture, or T, and that allows you to create websites using this model view update mechanism. But what's neat about it is everything is purely functional. There are no mutable variables. There's no such thing as a variable in the traditional programming sense of the word. There are only constants. And in fact, you can think of everything as a function. And if a function doesn't have any arguments, that is a constant. And like you said, it's drawn heavily from Haskell, except it cut out a lot of more complicated features of Haskell.
Starting point is 01:22:44 You don't have higher kinded types you don't have type systems you don't have um a lot of things that uh that that that give Haskell a lot of power and being able to generalize things um but also make the language a lot more complex and uh and so you end up with a language that I think is is pretty beautiful um but it still growing, and there's still a lot of things I wish that Elm had. But for teaching kids, it's amazing. Like JavaScript, like we mentioned before, everything is a one, at least conceptually, everything is a one-parameter function. So if you have a function that takes two parameters
Starting point is 01:23:25 and you only give it one parameter, you get back a function that takes one parameter. Totally. Yeah, so for me... And we use that concept pretty heavily. Yeah, yeah. For me, it feels like the transition for you from teaching Scratch first
Starting point is 01:23:43 and then kind of meeting Emanuel and then kind of cutting that stuff, then pairing that stuff out and just going and then, like, kind of meeting Emmanuel and then kind of cutting that stuff, the imperative stuff out and just going to HTML, CSS, and JavaScript in a functional way. I feel like it almost sounds to me like you're going to eventually cut out the HTML, CSS, and JavaScript and then just go directly to Elm. Or am I missing something? Well, the thinking was, well, we need at least some HTML. I mean, it's not a lot of HTML and CSS.
Starting point is 01:24:09 It's not like they go through years of that. But we do go kind of deep in it because we want kids to – so even in Elm, you've got to know HTML and CSS. Okay, that's fair. Why JavaScript then? Yeah, the thinking there is JavaScript is pretty ubiquitous. I want kids to learn a language that is very practical too. Yeah, that's what I think too.
Starting point is 01:24:42 Yeah, so we also teach something called Firebase. I don't know how familiar you are with Firebase. But I love it. Yeah, yeah, me too. I love hate. It's love hate. I'm very excited about the new Firestore that just came out. Yes, I'm familiar with it.
Starting point is 01:24:59 Yeah, so at least right now we're teaching Firebase. We may also or instead of that teach Firestore. There are pros and cons to each. And Google says that we're teaching Firebase. We may also, or instead of that, teach Firestore. There are pros and cons to each, and Google says that they're developing both Firebase and Firestore, and there are reasons to not use Firestore and Firebase. But that's – so if you want to use Firebase and you want to use functions, server-side functions, you have to use JavaScript.
Starting point is 01:25:24 You can't use Elm because Elm doesn't compile to a server-side functions, you have to use JavaScript. You can't use Elm, because Elm doesn't compile to a server-side JavaScript kind of system, not yet at least. And so there are many areas, many things that we want kids to be able to do that do require them to use at least something other than Elm. And JavaScript is a really great language that's pretty ubiquitous and used almost everywhere now, even in embedded systems and all over the place. So on top of that, Elm compiles the JavaScript, so it's kind of nice to know what's going on
Starting point is 01:25:58 when you're writing Elm code. Right, not that they're really going to go into the output of the Elm compiler or the JavaScript that's produced, but, you know, maybe they'll be able to understand the error messages a little clearer. Although, as you're one of the – well, that's not quite true. So it is one of the great advantages of Elm, and I think just in general strongly typed functional languages and purely functional languages, is that you eliminate a large class of errors,
Starting point is 01:26:33 very common errors that kids make, the null and all the various null types in JavaScript, undefined. Well, literally every runtime error, right? Right, right. You just eliminate that entirely, kind of entirely. It's still possible to get some runtime errors in Elm, but it's just very difficult. And if you don't have the tickets to do it.
Starting point is 01:26:57 Yeah, but what happens is sometimes in Elm, you have to work with JavaScript because, for example, you need a JavaScript API that is only written in JavaScript, and you can't re-implement that in Elm too easily. One example is Firebase. So we actually use Firebase, which is an adapter or a library that you can use Firebase, but it's using the native, so you can still get. But it's using the native. So you can still get errors because it's using the native interface in Elm.
Starting point is 01:27:31 I get it. And so that opens up for errors. But you can use ports with Firebase. If you want to use Firestore, you only can use ports right now or write your own native interface, which has some of the same issues. So whenever Elm has to interact with JavaScript,
Starting point is 01:27:49 and there are other reasons why you want to interact with JavaScript too, through JSON, it's pretty common to do that. Yeah. There can be errors, right? And those errors, if you know JavaScript, you can figure out what's going on. Yeah. Really, really thoughtful. I appreciate all those thoughts. I, um, I sorry, I just want to kind of, I have, I have a few questions.
Starting point is 01:28:12 I really want to get to you. So I'm just going to, uh, be a little, a little more rude, uh, uh, with interrupting you. Um, sorry. Um, go ahead. So one thing that, one thing that I have been thinking a lot about building, which I think is relevant to both of us and also to Emmanuel and to Professor Anand, that maybe we could all collaborate on, or I don't know. We'll see. But an idea that I've been thinking about is if you think about Scratch and Woof.
Starting point is 01:28:43 Scratch is – Woof is like the text-based language that's the equivalent to Scratch. If you do that process in reverse, I made Woof based on Scratch. If you run that in reverse, you take something like Elm or Pyret with the Big Bang model, which is very similar to Elm and the Elm architecture, which I find hilarious. You run this process in reverse, and you take a language architecture that's functional and declarative and algebraic. Do you think we could build something like Scratch for kids to start with? Yeah, I mentioned to you a while ago that I wanted to build something like that. I actually wrote up or drew up a mock-up, a series of mock-ups, on a tool that would
Starting point is 01:29:29 do that in the form of the Big Bang model, where you have this Big Bang function. I called it something else, but essentially something that kicks off your world, and then you tell it, okay, what are your functions that handle the rendering
Starting point is 01:29:48 and listening for particular events, keyboard, mouse, clock ticks, things like that. And I just got too busy with other things to really make any progress on that, and then I thought, well, the Elm architecture, that would be pretty amazing. The Elm architecture is a little bit different, a little bit more complicated than the Big Bang model. So the Elm architecture has message passing and an update mechanism to deal with that. So the Big Bang is really great for interactive graphics,
Starting point is 01:30:31 but the Elm architecture allows for quite a bit more functionality. Fascinating. Fascinating. If you're at your computer now or if not, I'll remind you later, I would love to see those design things. And if it's all right, I'd love to upload them so other people can see them. Yeah, yeah. Let me take another quick look at them and make sure I'm not going to embarrass myself.
Starting point is 01:30:54 Oh, yeah, yeah. Okay, well, I'll be sure. I'm going to make sure to write it down. I'd love to see those. So, yeah, that would be great. Yeah, I was excited about it at the time, but we had so many other things I wanted to do too, and those just took priority.
Starting point is 01:31:18 But if you or other people want to get involved too, maybe all together creating this great thing, that would be exciting. Yeah, yeah, cool. That's very exciting to me. I think this is one of my more – it's one of the prototype ideas that I'm more excited about and I think about a lot. So, yeah, let's keep talking about this. Great.
Starting point is 01:31:42 Cool. So my next question was going to be, I remember you were working on your own Pergme language interface thing. Can you tell me about it? But that was it. So that was the last question. to ask is if you could expose the ways to interact with you, like your public interface. Is it a Twitter handle, an email address? Are you looking for collaborators, or are you looking for people to come work at U-Code? Whatever it is, I'll give you a space to kind of talk about that. Yeah, I appreciate it.
Starting point is 01:32:26 To contact me, is it okay to give out my email address? I don't think I'll get spam from people listening to this podcast. Yeah, go for it. I don't know. Good luck. I haven't gotten some so far. Right, right. Well, I'll just give out my email address, scott, S-C-O-T-T, at ucode.com, U-C-O-D.com.
Starting point is 01:33:03 For what we're looking for, collaborators, I'm open to anything, but we're not specifically looking for any collaborators right now. We have just started franchising. In fact, we're just finalizing the legal paperwork right now. We've got the final draft of our franchise disclosure document, which is what you need to start franchising, and we're just reviewing that. And so, anybody wants to open up some U-codes anywhere, definitely get in contact with me. We're looking for people that are passionate. Yeah, yeah. And the big thing is we want people that are really passionate about computer science. If you're passionate about computer science and you see these kids kind of open their eyes to this incredible, rich subject, discipline, industry,
Starting point is 01:33:47 it's pretty magical. And so we want to offer as many people that opportunity as possible. Yeah, that's amazing. I'm really excited to see that grow. There's no reason that we shouldn't have like U-Code scattered, like, you know, dotting the country kind of like Kaplan or whatever, you know, that's amazing.
Starting point is 01:34:11 I wish you'd have that there. Yeah, well, I know you're in a similar position. I don't know, we've discussed some of that, but you're happy. Yeah, yeah, yeah. The coding space is awesome. Yeah, so, yeah, The coding space is awesome. Yeah, well, for the coding space, Scott's been – I just kind of talked to the audience now. Scott has been giving me really great advice, like business advice as well because, you know, in a lot of ways, Ucode is – like we started similar businesses on different coasts and you're just, you knows a number of years ahead.
Starting point is 01:34:46 It's really good to learn from all of your experience. We are also expanding in similar ways, but much, much smaller. We have one and a half centers now. We want to add a few more. If you're looking to franchise, I'd say talk to Scott for now. Maybe in a little while you can come talk to us about that, if you're on the East Coast maybe. But, yeah, so thanks for bringing that up.
Starting point is 01:35:16 Yeah, and thanks again for all the advice you give on this front to me. It's been really helpful. Well, I know we're kind of competitors, but I very much appreciate what you're trying to do as well. Yeah, yeah, yeah, yeah. It's funny, yeah. Like, there's no part of me that, yeah, feels competitive. Like, we're trying to, like,
Starting point is 01:35:39 to me it feels like we're much more like collaborators, which is funny because, like, I guess technically, like, maybe one day we could be fighting over the same customers, but like, it's like, to me, it's like not about that. It's about like the impact you want to have and the company, the companies and making money just means to the end here. So. Right. And I feel like also if we, if we're fighting over the same customers, that means we've grown pretty big.
Starting point is 01:36:04 Yeah. We're on opposite coasts. Yeah, exactly. And that sounds like a great problem. Yeah. That means we're both having a huge impact on kids. Yeah, exactly. And we just have a few little kids that we're fighting over. Yeah, and that's when we write up the merger agreement.
Starting point is 01:36:22 And then it's just a matter of who's buying who, you know what I'm saying? Right. Sounds good. All right. Well, anyway, thanks so much for taking the time to talk to me. This was really fun. And I hope to talk to you again soon. Same here.
Starting point is 01:36:38 All right. Have a good day. Bye. You too. Bye.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.