Future of Coding - Learning Programming At Scale: Philip Guo

Episode Date: May 2, 2018

Philip Guo researches ways to scale programming education beyond the classroom. He is the creator of Python Tutor (http://pythontutor.com/), a widely-used code visualization and collaborative learning... platform, and an assistant professor at UC San Diego. In this episode, we discuss why diverse groups of people study CS, his various prototypes, and the differences between technological research and industry. http://futureofcoding.org/episodes/22Support 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. So first things first, I want to apologize for the radio silence for the last month or so with this podcast. I've been traveling a bit and it's been a little bit difficult nailing down guests, but today I'm excited to bring you Philip Guo. He's an assistant professor of cognitive science and an assistant professor of computer science at UC San Diego. He has, I think, a really fascinating research topic, summed up by the phrase, teaching programming at scale. His research spans human-computer interaction, online learning, and computing education.
Starting point is 00:00:40 He builds scalable systems that help people learn programming and he also studies from more of a sociological perspective how and why diverse crowds study computer science. One of his big claim to fames is the PythonTutor.com, a widely used visualization and collaborative learning platform. And his website pgbovine.net has over 500 articles, videos, and podcast episodes. And he gets 750 page views per year. And I think that's originally how I found Philip. It was either through Python Tutor or through his very prolific and fascinating website. And I think we had a really fun conversation with a little bit of different flavor than
Starting point is 00:01:26 normally, than I normally have on this podcast. We talked a lot about education and different demographics, why they learn computer science and how to help them. And then towards the end, we talked a little bit more about building prototypes that point towards the future in the way that we technologists do. So without any further ado, I bring you Philip Guo. Welcome, Philip. All righty. How's it going, Steve? Great. How are you? I'm doing good. I'm looking forward to this conversation because I have absolutely no context because something just showed up in my inbox and I went there. And this is actually fun because of that.
Starting point is 00:02:06 Great. Yeah. Thanks for being brave and being open to stuff. Yeah. So your work centers on this phrase, learning programming at scale. And it's a pretty self-explanatory phrase, but I was wondering if you could just unpack it for people who aren't familiar with your work. Yeah. So I came up with this kind of catchphrase, learning programming at scale, for some of the research talks I was giving a few years ago. And the basic idea is that, you know, learning programming or learning computer programming is now a pretty
Starting point is 00:02:40 widely accepted thing. And, you know, more and more schools are trying to teach coding to, at both the K-12 level and at the university level, you know, computer science departments are growing. A lot of people from various different majors are taking programming and computer science classes. So it's just a very blossoming thing. And there's things like Hour of Code and like trying to get computer science and programming in schools.
Starting point is 00:03:04 And I think these are all really great efforts. And my own focus is on something complimentary, which is the at scale part, which is, you know, let's think about the, you know, 99% of the people who don't have access to either a traditional school, you know, whether in K-12 with computing education access or to a college environment, you know, all these people who have to learn, who want to learn at all ages, all demographics, and all different life situations, how can we build tools and support to help them learn? So, you know, I think to really scale up to the world, we have to do stuff online. And, you know, it can probably, it probably won't be as
Starting point is 00:03:42 good as having in-person teachers. But, you know, the reality is 99% of the people in the world who want to learn this stuff don't have access. And we want to try to scale that up to the world. So that's kind of where the learning programming at scale, the at scale part came from. Interesting. So it sounds like you answered one of my questions already. Because my first one of my questions was, that is the ideal of learning programming at scale that one day we get rid of the classroom and then everyone kind of learns online. But it sounds like you think that the classroom is a wonderful thing to have if you can afford it. But your work is for people who can't for some reason. That's right. Yeah, i think it's largely complimentary that yeah i i think that it's it's still very hard to beat you know good in-person instruction um both from just from a
Starting point is 00:04:30 technical perspective of having someone helping you debug and helping you um along but also from motivational perspective right so it's like you know you could read all the stuff on stack overflow and read programming blogs you know day, but then having someone there coaching you along, motivating you, giving you some kind of an impetus to learn the stuff is just so much stronger than, you know, having to look through that stuff on your own. So I think the in-person stuff will not be really going away, in my view, but most people just don't have access to that. Yeah. So I think you mentioned in your work, there are a lot of different demographics that are like non-traditional programming learners that you focus on.
Starting point is 00:05:15 One in particular made me smile. You are focusing on why adults 60 and over are studying programming. And part of why I thought that was interesting is that two years ago, I was teaching a coding course for adults, which was strange for me because I normally teach children. And a woman in her 60s signed up. And her story is that her son was doing a startup in Silicon Valley and she was retired and she wanted to help him in her free time. And so she thought that she'd learn to code and maybe get to help him with his him with with his coding yeah that's really cool yeah i mean these these are really interesting stories so you know the the impetus for that project came about because we can talk a lot more about this later but um you know i have this programming education platform called the python tutor which
Starting point is 00:05:59 now is a bunch of languages so the name is kind of a misnomer but um we have a lot of users on the site so as you know it's a great platform for collecting So the name is kind of a misnomer. But we have a lot of users on the site. So it's a great platform for collecting research data because I can put these mini surveys on the site. So one of the surveys I put on a few years ago was trying to get people who are 60 and over because I think that's a very understudied demographic. So I collected a bunch of survey data and analyzed a bunch of survey, kind of more qualitative data, and trying to get at their motivations, like your anecdote before about the woman and her son, and really just trying to classify, you know, why are these
Starting point is 00:06:35 people learning programming? You know, most of them are probably not doing it professionally for their jobs, because they're maybe retired or semi-retired. But I just thought it was a really interesting population. There's also another population that I did a recent survey for that one of my more recent research papers about is about non-native English speakers. So like another understudy demographic are people who are not native English speakers. And, you know, when you think about programming, it's so English centric, right? These programming languages, tools, documentation, all the primary websites are in English. But again, if you programming languages, tools, documentation, all the primary websites are in English. But again, if you think about the at scale part, the 99% of the people
Starting point is 00:07:10 around the world, most of the people are not native English speakers, but yet they have this kind of double language barrier of having to learn English and having to learn the programming. So, you know, I think the non-native speakers and the older adults are two examples of populations that I'm interested in studying. And there are many others as well. Those are the two that I've kind of done concrete projects on so far. Yeah. So I'm curious if you could summarize what you found, like why were other older adults studying programming and also what you found with the non-English speakers? Yeah. So the older adult one, you know, the story you told about the woman or son was actually a really good one. Some of them were, you know, were about people who are retired, who wanted to understand technology and kind of empathize and keep in touch with the younger generation. Right. So, you know, some of these stories are about, you know, oh, my grandson or my granddaughter is in college learning computing, you know, programming stuff. I want to just take some online courses to see what they're doing because I have free time. There are other people who are actually still working. I mean, 60 is not that old nowadays. People are still working in the workforce. So there are people
Starting point is 00:08:12 who want to update their skill sets for work. So I think both between updating skill sets for work and the enrichment kind of aspect of trying to understand what technology really is about is both interesting. And then for the non-native speakers case, you know, the motivations, a lot of it were job related, right? Because especially people learning online is taking these online courses, trying to get certificates. A lot of it is job related. And I think for a lot of the people, it's really a way for economic mobility, right? If you're living in countries where there may be not that great paying job opportunities to do these remote programming jobs or be able to work as a software engineer, you know, in a remote office for a multinational company or even hoping to be able to immigrate to countries like the U.S. to work in the software industry. It's just like a tremendous boon in terms of just economics, right? So I think that's why people are really motivated, you know, especially from many countries where English is not their first language. Yeah, that makes a lot of sense. It makes sense to me when you said that one of the things you
Starting point is 00:09:23 found with the older adults is that they wanted to connect with the younger generation. I guess that's kind of the story that I personally found with the old lady in my class. Yeah. I'd be curious. I think you mentioned one of the other demographics that you mentioned in your research is conversational, people who want to be conversational with programming. And I've, and I definitely, you know, like, basically every like MBA student these days wants to be conversational, wants to be able to talk to their code monkeys. So I think that that's a very interesting demographic to study.
Starting point is 00:10:00 Yeah, so the conversational programmers, once this was led, these studies were led by one of my colleagues, Parmeet Chalana, who is currently at Simon Fraser University. So that's near Vancouver. And we did a bunch of things where it was mostly her and her students interviewing people, but they did a bunch of in-person interviews. And also we did some surveys as well at companies about basically our demographic was, you know, anybody who is trying to learn programming or, you know, taking these coding courses or self-teaching themselves, but their requirement is that they don't need to actually write code for their job, right? So this is, again, you know, this kind of going along with my research theme of thinking about the people who are learning programming, but not your typical demographic of what a lot of people study. So in this case, the conversational programmers is our requirement is you're trying to learn programming, but you don't actually have to write code. So then we're like, why are all
Starting point is 00:10:53 these people learning to code when they don't actually have to write code? And like you alluded to a big reason was because they are, you know, I think one typical case is like someone who's like a product manager, right? Like, you're kind of working closely with engineers, and you want to kind of know what, you know, how to speak their language and how to relate to them. But you don't necessarily need to be coding up all the all the implementation. Yeah, so is the point of this recent, like this motivational demographic research to like trying to expose problems with the coding environments we have now so that like kind of in the other half of your research, you could like build better environments. Is that? Yeah, that's actually, that's actually,
Starting point is 00:11:35 that's actually way more for thinking than, than I would love to say that that was a master plan all along. But, but, you know, in reality, it's these two threads of building interesting programming environments and studying demographics have been pretty independent. But yeah, I mean, one hope is that through a lot of this research, it will try to expose gaps in current environments. And then we can close the loop later on and say, you know, what are better ways to teach programming for people who are conversational or who are older adults or who don't speak English well or who are struggling with English as a language barrier? So far, I haven't really connected the dots yet. But I think that in the future, that would be a great thing to do.
Starting point is 00:12:19 I think right now, these two threads of research of just building programming tools, which we can talk about in a bit, and also studying these demographics are largely independent. And the stuff we just talked about so far with these few research papers have mostly been trying to add to the body of knowledge, right? you know, what are pedagogical best practices in classrooms for, you know, elementary schools, let's say, and then also what are pedagogical best practices for, you know, first year college students trying to take a CS1 intro course. So there's a lot of research in that. And, you know, what myself and my colleagues are trying to do is, you know, think about, let's think about people in completely different demographics who have not been studied and figure out their challenges and motivations. Yeah. So one question that I thought about when I saw the phrase learning programming at scale was like, if there are people like you studying learning like X at scale, now that we have, I guess MOOCs, like MOOCs is like the thing that kind of made learning at scale an interesting question.
Starting point is 00:13:26 Are there researchers? Like it almost feels like from some perspective, you're closer to like someone who's trying to teach learning math at scale than like to a regular programming field. Yeah, that's a great, yeah, I mean, that's like the other dimension, um yeah i mean that's like the other dimension right so so yeah the other way to parse the learning programming a scale sentence or phrase is uh is learning at scale and then you just shove programming in there right because they
Starting point is 00:13:55 can do learning math at scale or learning physics at scale yeah so the learning at scale community is you know that that that kind of keyword came up uh like you said, with the rise of these MOOCs in the early 2010s. And there's a very active community of researchers in the learning of scale community of which I'm part of. And we have a conference series, we have research papers, we have research meetings. It's a, you know, it's a burgeoning academic community. And you're right, a lot of those folks are trying to do kind of large scale data analytics, or, you know, basically applying, you know, A B testing data analytics, you know, kind of student progress tracking. And, and a lot of that work has been trying to be fairly independent or agnostic
Starting point is 00:14:39 of domain. But, but my own work is really just honing it on the programming domain. But you're right. There was a pretty big body of work on just learning a scale in general, I would say. And so I'm wondering, because I imagine there's a lot of overlap. So like, for example, your uh python tutor system um which i'll let you summarize it uh in a second here maybe why don't you just summarize it before i ask the question sure sure um so the python tutor system if you go to i mean you can link to it just python tutor.com um it started out as being for python but now it's actually for a lot of languages um but basically what it is it's a um it's a it is, it's a code visualization environment. So there's a lot of these environments where you can write code online and run code now, these online IDEs,
Starting point is 00:15:32 right? So you can just write code, maybe have a REPL, you can kind of run stuff to see what your code does. But what my system has that's really unique that I haven't really seen anywhere at this scale is the ability to do a single step visual debugging, right? So it's kind of, you write a piece of code, and you can actually step through it one step at a time, exactly like a single step debugger, except the twist is that it actually draws the state diagrams for you. So it kind of draws you all the stack frames, the global variables, what the types of the variables are, what the values are. And if they're pointing to complex objects, like an array or a list, or a dictionary, or, you know, some kind of compound object, it draws the pointers and the box and pointers for you.
Starting point is 00:16:14 So it allows you to step through execution, really inspect what your program is doing, in addition to just whatever it's supposed to do, like print to the console or something. So a lot of people have been using it to basically build up a better mental model of what their code is doing, because they can actually kind of peek inside of their code step-by-step as though a teacher were explaining it to them. Cool. Okay. Yeah. Thanks for the, the explanation. It's yeah, it's a wonderful, wonderful website. I,
Starting point is 00:16:42 I used it many years ago when I was first learning to code. Oh, wow. Thanks. So one of the things I think, at least because when I went back to look at it, I just now I saw that you have this feature that allows people to ask and receive anonymous help, which I thought was great. And it was like, even I was just like, you know, interested to like click on a link and see if I could help someone who, who requested it. And I was like, yeah, just, it was so simple the way the interface was built. But it, it seems like it could be a compelling feature. So anyways, what got me to this question is that I imagine that peer tutoring online is something that is common in the world of learning at scale. So I'd just be fascinated to hear about the challenges and successes in that world of
Starting point is 00:17:41 peer tutoring. Yeah, that's a great thing to bring up. And I'm glad you brought it up. So I'll talk about the feature in a bit. But this general idea of peer help is, yeah, I mean, I think that is the, one of the ways to scale up learning is that, you know, the reality is that there are very few instructors and there's a lot of peers, right?
Starting point is 00:18:01 Especially when you're at scale, there's even more peers because if you're in a MOOC and you have thousands of students, you only have one instructor, maybe a few volunteer TAs running the course. I mean, a lot of times with these MOOCs, the instructor isn't even actively running, right? It's been pre-recorded, and then they just run the course like a bunch of times every few months. And maybe there's some volunteer TAs or some kind of instructional staff who helps out, who mans or who kind of moderates the forum. But for the most part, it's the peers kind of trying to help each other. And I think the most common form of peer help in MOOCs and online settings is asynchronous, right, is via forums and discussions. So the forums and MOOCs are fair, well, good ones,
Starting point is 00:18:46 I guess, are fairly active. You have sites like Stack Overflow, you have other sorts of, you know, discussion forums, Facebook groups, you know, people who take MOOCs actually form these ad hoc Facebook groups, you know, where they just post messages and help each other. So researchers have kind of mined data from, you know, Stack Overflow is a good example, or forums from discussion from MOOCs are another source of, you know, public data that they combine. And I think there's less done in the synchronous space, which is, I can talk about that in terms of my project. But I think, you know, my own interest in this, again, is trying to push forward on where other people haven't done as much. So the synchronous real-time tutoring space is something I'm super interested in. So I'm happy to go into that in depth or answer your questions about that in general. Yeah, I'd be curious to hear how, I guess I'm also kind of, I was going to say I'd be curious to hear is how it's going, but I'm now wondering how you measure the effectiveness of a system like that. Like, do students rate at the end of a session if their question was answered?
Starting point is 00:19:51 Yeah, that's a great question. So yeah, just stepping back, the live tutoring mode, you know, I really do need a marketing person because, you know, this whole Python Tutor project, this whole thing is kind of a one- you know band at this point it's basically me holding it together with duct tape uh we can talk about open source project sustainability later too it's a another giant topic yeah that's a question on my list yeah that's a great question to cover later but um so so the idea is with this project is that um you know the the site originally was a visual debugger so that provided a service that was valuable to a lot of people. And it was, it was a single user mode, right? You go on, you paste in some code, or you write some code, and you kind of debug it. So it's like a, a scaffolded environment to help learners
Starting point is 00:20:37 understand how their code works. And then a few years ago, this was, I think, 2014, I basically added, there's this great library called Together.js that Mozilla Labs worked on. It's been discontinued. I mean, like many, I'm talking about open source, like many open source projects, it's been discontinued. But Together.js, what that lets you do is it lets you basically instrument a website, which is some JavaScript code, and it lets multiple people go on that website and browse together. And it works through WebSockets. So you start a server,
Starting point is 00:21:12 and then whatever website you're on, let's say Wikipedia, I'm just making up. You can have multiple people go on the site. You can see each other's cursors, and then you can chat on that site. So I thought that was a really cool library. So I integrated that into the Python Tutor site. So that actually turned the site into a multi-user mode. So what you can do is you can have multiple people go on a single session,
Starting point is 00:21:37 write code together, just like in Google Docs, and then run the code and play with the visualizations together. And you see the multiple cursors and then chat through text. So that feature was implemented about four years ago at 2014. And the catch with that feature, though, was that you have to send the link to somebody, right? So that feature, I called it, you know, live help mode or something. But the idea is that you start a live session, just like actually, just like this thing we're using to record the podcast, the Zencaster, exactly like it. It's like you start a special URL, you generate a garbled URL, then you send it to your friend or to your tutor, or maybe you post it on a discussion forum for your MOOC. And you say, help, I need help. I'm online right now. If someone can click on this link and join in, you can basically pair a program with me and guide me through these things. So that feature worked pretty well and we had a fair amount of users.
Starting point is 00:22:34 But the interesting thing about that feature was that a lot of people didn't realize that no one will come to help you, right? So they clicked on the start the chat button and they expected someone to come chat with them because they thought this was like a help service all right um so we got a bunch of this you know a bunch of the server logs just show people you know opening the chat and saying hi you know can you help me you know i really need help on this and they're just kind of typing into the void. That makes sense.
Starting point is 00:23:07 Yeah, so then, you know, after, you know, then the natural next feature to think about, I mean, this is how I design a lot of these things is actually by user demand, right? So by observing this, the natural thing to do is to think about how can you get the peers on the site to actually help each other. So the feature as it's currently implemented, which I implemented,
Starting point is 00:23:28 I think in October, so about six months ago, yeah, about six months ago. Weird story about that is I actually broke my foot. So I was immobile for about a month. So I just actually had a lot of time to code. It's not the best reason to code, but it's actually it was productive use of my time. I was basically at home hobbling around. But so the feature that I have now, which I guess I call live help mode, I don't know what better way to call it is, you can start a public help request. So basically, when you start a help session, you can either choose to be private or public. And if it's public, then it will post your request on a help queue, which is like displayed at the top of the screen, whenever people go to the site. And, and then it's just ordered by, you know, who goes on at first. And this was motivated
Starting point is 00:24:13 by kind of in a, again, a lot of these, this work is motivated by in-person classrooms. So in a lab, you know, imagine if you're in a lab class in college, you would probably either raise your hand and have the TA come help you, or you would write your name on the board because the TAs have to help too many people. So people write their name on the board as a public help queue. And they say, I need help. I'm sitting in seat whatever in the room. And then there's just a list. And the TAs or other student volunteers just go around and just grab people off the list and go and help them.
Starting point is 00:24:43 So this interface is very similar. You just put on a list and then anybody in the website, if they want, they can click and they can actually join in to your session and help. And that's the very basic idea of that. And I'm happy to take questions at this time or go into details. We haven't talked for a while on this. So that's the very basic idea. Yeah, it's very cool. And the progression of how you got there makes a lot of sense.
Starting point is 00:25:10 I have a project in a very similar space. It's an IDE environment for kids to code. And yeah, we provide a little chat interface, but they can only talk they can only talk to us. I'm just, you know, a little bit too scared of letting kids loose in a peer to peer way. Yeah. Yeah. I mean, we can talk about that. That is, that is one of the biggest concerns is that, right. Of like, if you just open this up to the world, you know, maybe all hell will break loose. Yeah. I guess for me in particular, my, I think one of the differences between our systems is that yours doesn't have users. So everyone's kind of anonymous, which at least in my head seems to like lower liability. But I guess another thing that I have that I imagine you don't is this system was built for use at a specific afterschool program that I was running at the time.
Starting point is 00:26:06 And, um, I just was, you know, terrified of a parent, you know, being upset that, you know, some kid or some person at some creeper on the internet was saying bad things to their child. Yeah. You know, man, these, these are very valid concerns. And I was, you know, I, I thought a lot about that in designing the system. And, you know, earlier on, you mentioned how the interface just looked really simple and, you know, and straightforward. It's like, oh, that's exactly what you expected to be. But actually, there was a lot of thought put into
Starting point is 00:26:33 how do you make this in a way that minimizes kind of bad behavior. And I'll go into a little bit. I mean, the first decision was to not have user accounts. Part of that was just an engineering thing, right? It's like, it's just a lot harder to run a site with user accounts than not. And so basically everyone has a pseudonym that is just assigned and stored in their local storage in their browser. So, you know, your user 2A5 or whatever. And the nice thing about that is you have some kind of persistent identity, but you
Starting point is 00:27:03 don't actually customize your username. And then the other thing about the thing is it's anonymous and it's also private. Right. So like a lot of the issues that comes up with with kind of trolling and other sorts of spamming and stuff. And it's because these forms are public. Right. If you have a public forum, you have to really moderate it. Otherwise, you know, all sorts of bad stuff can happen. So having a private thing, you know, lessens incentives for bad behavior, and also not having identity associated with it. And the other part is that there's you have the ability to just, you know, kick or block people, basically, if something bad's happening, you can just kick them out of your session, and then you can undo the changes they made. And with these lightweight things, I've looked at the chat logs and the server logs,
Starting point is 00:27:53 and so far, there's been very few instances of bad behavior. I mean, it does happen because it's internet, but it's fairly few. And also, you know, my site's not popular enough that like, it's not like Reddit, right? If it's on the order of Reddit size, then yes, you're going to have a lot of chaos because it's millions and millions of people, but it's still small enough that the people going on it are usually pretty honest and pretty earnest about learning and helping others. And they're not just on it to mess around. So I think that sort of combination helps it to maintain, you know, quality, you know, as much as possible right now. Yeah. Are there another, I guess,
Starting point is 00:28:35 I had a question, but I just want to say before I, I was going to, the question was are there other interesting experiments in the like leveraging humans in some creative way for scalability? Like one of yours that I thought was really fun was the Code Opticon project. So the way I think of that project is it scales a tutor. It allows one tutor to look at like the screens of a dozen students at the same time, which intuitively to me makes a lot of sense because as a teacher myself, you know, very, if you have a handful of students, it's so much more efficient use of your time than one-on-one
Starting point is 00:29:18 tutoring because chances are, you know, the only one student will need help at a given time. Yeah. I mean, that's exactly along the right line. So I mean, a lot of these projects have the same flavors of the CodeOpticon project a few years ago was prototyping, what does it mean to scale up one tutor, right? So the stuff I just described is still one on one, it's, it's scaling in the sense of you're taking advantage of the fact that there are maybe dozens of learners on the site at once. And, you know, rather than waiting for a tutor, which might not exist or might not come, you just post your question publicly and then let a volunteer crowd of people, whoever is available to join in, join
Starting point is 00:29:56 in. The CodeOpticon one requires a dedicated staff, right? So the idea behind that is you might use that in a course, like an online course or real in-person course, where you're like, I'm going to have a virtual office hours today at 3 to 4 p.m. Anybody who comes on the site during that time and asks questions, I'll be online and I can monitor a bunch of you because I have this special dashboard interface. And then I can kind of chat with you selectively. So that was kind of pushing the ideas research wise to how do you scale up tutors, the system itself isn't deployed,
Starting point is 00:30:31 it was a prototype, the code opting system is employed, just because I don't have the infrastructure currently to support tutors and accounts and all that stuff, right? Because then you have to like, create a tutor account. And there's just a whole other like workflow to, to get that in. But that, you know, but the proof of concept is there and you know given more given more resources that would be a great thing to have on the site yeah yeah it's to me it's a yeah it's a fascinating idea at the very least and i'd be curious to hear, like, from your knowledge of the greater learning at scale space, if there are other interesting experiments that you know of, even if they don't have to do with coding. Yeah, that's a great question. I mean, I think in the synchronous
Starting point is 00:31:16 space, the kind of real time space, there was not as much. And, you know, some of my colleagues from, it was this collaboration between UC San Diego, where I currently work, and you know, uh, some of my colleagues, um, from, uh, it was this collaboration between UC San Diego where I currently work and Carnegie Mellon. They have this thing called, uh, they have two systems, this thing called talk, talk about and peer studio. I can send you the links later. And the idea behind those systems is to, one of them tries to connect people on Google Hangouts to do video, synchronous video chats.
Starting point is 00:31:45 And the idea behind this talk about system, this was a few years ago, was that these discussion based courses, they wanted to emulate kind of a in-person kind of discussion based course, right? Because a lot of these MOOCs are very mechanical, you know, you have multiple choice questions, you might be reading, you might be doing some code. But what about for MOOCs in the social sciences or the humanities where, you know, you really want that experience of a small class of diverse viewpoints of people really interacting with each other. And, you know, their hypothesis is that if we structure these incentives, right, and make it bacon in the course, maybe we get better discussions because these people are taking the course from all over the world, right? It's not just a bunch of students at one university,
Starting point is 00:32:27 it's people from all over the world. So they did these experiments where they, they kind of made, I guess, optional assignments or course activities where they're like, you know, at one o'clock to two o'clock this, this hour, we're going to group these students, you know, we randomly pick students from different parts of the world. And you're, you know, the five of you are assigned to a discussion group. And then we'll give you some discussion prompts. And we're just, we'll record your discussion and see how that goes. And their other project, Peer Studio, was about peer grading. So there's quite a bit of work on having students and MOOCs grade each other's work
Starting point is 00:33:04 or give feedback on each other's work because again this this helps scale the the assessment or grading problem right because you can't have one instructor grade a thousand you know uh reports or you know writing prompts right if you imagine anything that's not auto graded right like if you have to do a design sketch for a design class or a write a paragraph for paragraph for some social sciences or humanities class, you want to try to have different students give feedback on them. And their whole system was structured around kind of doling out these bits of grading and distributing amongst the student population and then giving prompts and structured rubrics
Starting point is 00:33:42 so that they can do a better job in grading. So that's sort of the flavor of the work in terms of kind of multiple people connecting together in real time or near real time, but not as much as far as I know about the kind of one-on-one tutoring or the one-to-many tutoring that I've been doing. Interesting. Yeah yeah thanks for providing perspective that's interesting that it's less crowded than you then maybe i would think yeah and i think a part of it is um you know we can we can get into this later i mean part of it is just that you know i i kind of choose problems or areas to tackle where kind of my own technical expertise is at an advantage, right? So, I mean, the, the, the thing is no one,
Starting point is 00:34:29 not many people have done the stuff that I've, I've been investigating of this scaling up tutoring and, and especially with coding and stuff. And it's because the, you know, you do need quite a bit of kind of programming and technical expertise to build and scale these systems. So, you know, being able to do the engineering is actually, I think, a prerequisite for being able to explore a lot of these interesting research frontiers. So I've kind of picked problems kind of purposely where I had kind of a technical advantage in a way.
Starting point is 00:34:59 Yeah, I guess that makes a lot of sense. I guess now it's, I feel like it's easy to predict that learning programming at scale will definitely be like a more developed field than learning any other thing at scale, just because the people who want to teach programming at scale, like know how to scale. Yeah. And I think that what you bring up is an interesting blind spot too right so like you know i think a really fascinating problem is how do you scale up all these classes that require in-person discussions you know in the social sciences in the humanities in law you know these kind of case-based things i mean i am i don't think i'm personally well equipped to do that because i that's just not where my expertise lies but i think those have tremendous potential because you know a, a lot of the quote unquote criticism of learning a scale is that, oh, this is just for learning how to code or learning physics or learning very STEM kind of science and engineering topics that some people might find very dry. But
Starting point is 00:35:55 what about, you know, more humanistic things? What about, you know, the things where you need discussion and debate and all the very human to human messy human interactions i think scaling those are fascinating i just don't have a great sense of how i would personally do it yeah me neither um so uh to kind of jump to a separate topic uh one of uh your videos you talk about um the difference between research in i guess like the hard sciences versus research in technology. And I, yeah, I just like the way you described that in technology, research looks like building prototypes that point the way to the future. Yeah.
Starting point is 00:36:38 Yeah, I like that phrase a lot. So, and I guess like you kind of hinted that like one of the main differences between uh industry and academia because like it seems like they're similar because they're because in both we're building stuff we're building things unlike in science but it sounds like uh one of the distinctions that you pointed out is that in academia the time horizon is is a lot longer than in industry. Yeah. So I think that was a video I recorded once at the dog park, I think. It was a dog park one.
Starting point is 00:37:10 One of the few dog park vlogs. Yeah. So this is something that, you know, in a lot of the stuff we talked about, I mean, we started this hour talking about more traditional, I would say, traditional education and social sciences sort of research on studying people, right? So studying older adults, learning the code, doing surveys, doing interviews of conversational programmers in industry, doing surveys of non-Indian speakers. So those are more traditionally what you would think of as kind of social sciences research, right? Of understanding
Starting point is 00:37:40 how people work and why they work as such. But a lot of my work is on building technologies and prototyping technologies and the Python tutor system, this CodeOpticon thing, the live chat thing. Those things are all technology-based. And oftentimes, it's hard for people to kind of parse apart, you know, like, you know, what, where's the line between what it's meant by quote unquote research versus more developing a product, right? So a lot of these things you can imagine could go into products. And where is that line drawn? And one dimension to slice this, like you alluded to is via time dimension. So when I was at I think Microsoft Research, they had this, they have these papers or these blog posts. I mean, many companies think about this. But, you know, at Microsoft that we I worked there for a bit as an intern, as a visiting researcher, they had this chart somewhere. I mean, I'm sure there are many charts
Starting point is 00:38:41 like this in the business world. And it was like talking about how, you know, there was the, you know, six month horizon, three, six month, one year. That's like the product cycle, right? You have to ship something within the few months. We have to iterate. You know, the business, the pace of business is very fast, right? Especially in technology. So if you're a public company, you have quarterly earnings reports.
Starting point is 00:39:01 If you're a startup, you have to compete with other startups and technology moves fast. So things that you're thinking about three months, six months, one year out are more in the pure development. And then things that you think about two, three years out, people sometimes call this advanced development or advanced research or advanced R&D. They have different names. So basically, it's things that we want to productize in the next few years. And we know it's on the horizon, but we want to do more exploration and more prototyping for. And then there's the five years or plus out. And it's really hard to predict where the future will go in five years or more. But the hope is both in academia and universities and at companies that have invested in long-term research labs,
Starting point is 00:39:45 the idea is that we want to try to think about stuff that may be relevant five years or more in the future and try to prototype these sorts of possible futures, right? So kind of building possible futures and knowing that most of these possible futures might not come to fruition, but if we don't now seed the 10,000 possible futures, we won't actually have a future when we get to it. I think a criticism of the classic criticism of academia is that, you know, people work on projects that seemed like they were just very heady, not practical, but now they form the basis of all sorts of systems that are used every day by millions or billions of people. Yeah, that's a classic thing. And it's hard for people to see often because because it's, you know, if you were to pick a project at random, right? I mean, it's like the, you know, they do this in Congress all the time,
Starting point is 00:40:50 right? That, you know, they, they pick out these, you know, these science research grants, and they're like, Oh, why are they spending $300,000 on, on, you know, testing frog legs, or whatever, right? They pick out the most obscure thing. And it is true. I mean, if you pick out a project at random, then it might sound kind of ridiculous. And chances are that one project out of 10,000 is not going to affect the future in any noticeable way. But collectively, you know, some subset of those will move the field forward. And even the ones who don't might, the ideas might percolate into other ones that do so the effects are very indirect so i i totally see that so um if um not sure how to phrase this basically um clearly it works somehow like clearly enough papers uh enough research does good work that you know science moves forward
Starting point is 00:41:41 um but but you But there's some research that doesn't move any field forward. So I guess both from an internal perspective, like if I'm a researcher who wants to produce more meaningful work or if I'm someone who's working at the NSF and I want to write better grants, what are the strategies for like, you know,
Starting point is 00:42:08 just doing more meaningful research, finding better problems, I guess. Yeah. That's a, that's a big question. I mean, I, if I, I had the answer to that question, I'd be a lot, you know, I'd be a lot wealthier. I mean, if I answer that question, you would probably start a company off. I guess I kind of left off the context of that question. There are two projects that it seems like you were part of. One was the CDE project, which looks a lot like Docker.
Starting point is 00:42:36 And then this other project around opportunistic programming, which looks a lot like this this new startup called kite um and so it's like it's at least to me you definitely have uh like a lot of street cred in terms of being like ahead of the curve uh definitely ahead of industry so um but that's the context of why i'm asking you and not just like some random researcher yeah well thank you for that actually it's uh yeah it's it's funny because um you know one of the marks of it's interesting because, you know, one of the marks of, it's interesting because, you know, the life of a researcher is interesting because, you know, if you really are dedicated to it, that means that you don't really directly profit off of the inventions or the kind of discoveries you make, right? Because, I mean, you can because then what you do is you transition to being an entrepreneur, right? You start a company out of your PhD work or out of your research work, and people successfully navigate that. But if you kind of adopt a mindset of I want to always be trying to push forward on the next thing, then by its very nature, you are trying
Starting point is 00:43:39 to look for stuff five years out, and you're not doing the really hard work of commercializing it right so um i think i think a big part of how a lot of these projects came about was just kind of sniffing at real world demand and um and you know i think paul graham of y combinator a long time ago he was writing essays you know before y combinator about just if you hang out at, you know, if you're just hang out at, you know, places where people are, are inventing the future in a way, you know, so university research labs, you know, these, you know, in Silicon Valley and spaces where people are just on the forefront of doing stuff, you're just able to sniff out problems before, you know, most of the world does, right. And I think, you know,
Starting point is 00:44:25 how some of these early projects came about was because I observed, you know, graduate students, researchers, struggling with how to do programming, right, struggling with, you know, using the web, struggling with installing different environments on their computer to run their research projects and stuff, and then coming up with sort of prototype technical solutions for those kinds of things. But yeah, it's a really interesting progression. And also, I mean, the other meta point about this is that you don't really, you know, there's not really a, I forgot who did an interview about this, but kind of the impact of research is that it's oftentimes hard to prove a causal link, right?
Starting point is 00:45:06 I mean, obviously, a lot of ideas are in the air at the same time. There's this great book by Stephen Johnson, the science writer called Where Good Ideas Come From. It's a great book. And one of the theses in the book is that there are just good ideas in the air at any given time, and there will be people who latch onto them, right? So this idea of Docker or CD or, or, you know, reproducing a build environments is, you know, more than one person was coming up with this idea at that time. And some people like myself, we're thinking about it from an academic perspective, how do you help researchers? And then there are others who are more entrepreneurial in mind is how do we help sysadmins and DevOps folks do that? So yeah, I think that, I mean, I think in the end, it's very
Starting point is 00:45:47 hard to actually show that a certain project you pursue or certain papers you publish directly led to X. And I think that as researchers, we, you know, that bar is too high, right? We shouldn't really aim to say that, you know, whatever we do directly influences a product, because it's hard to prove that. And, and my kind of view of research, like I put in that dog park video is if you just seed the world with interesting ideas and openly share them, then, you know, that's just that's a net positive to society. And, you know, if other people pick it up, that's great. If they don't, then you just keep doing other stuff. Yeah. Interesting. I think that kind of describes how most researchers look at it.
Starting point is 00:46:28 Like, I guess a different, your Python tutor is kind of like different because you came up with the idea and you wrote papers about it. But then you also are pursuing like the actual idea. Yeah. It's a weird thing. Yeah. I mean, we can talk about it i mean it's that it's a i'm in this strange position of you know maintaining this project that's actually pretty popular and widely used and we have you know every day there's i would say there's almost i mean i can look at
Starting point is 00:46:55 the stats but on the order of around 10 000 users you know daily active users on the you know around 10 000 and they're executing you know each one is executing you know i don't know a few pieces of code 10 pieces so it's like on the order of 50 000 or 100 000 unique pieces of code that's being run per day so it's it's reasonably trafficked um you know it's not a giant production site or anything but um so yeah so on one hand it's python tutor is the site that's a service and on the other hand it's a platform for is the site that's a service. And on the other hand, it's a platform for trying to trying to explore different research ideas as well. So there's this dual role that I think is actually very rare in academia, because, you know, in academia, you're mostly building
Starting point is 00:47:36 one off prototypes or doing studies rather than actually maintaining a piece of software at the same time. So it is unique in that way. Yeah. The canonical example in my mind of someone who does research and then makes a company about it, it would be like the Google guys. They wrote the paper and then they left. But it sounds like that's not in your future. This Python tutor is kind of a one-off for you. Oh, yeah, yeah. This question of commercializing and everything. Yeah, I mean, I've gotten this question quite a few times. And one, I mean, partially, it's just, you know, where I put my mental efforts. And, you know, I'm kind of my head's more in the academic and the research and the academic game at this point. And also, the other thing is, I feel like, you know, ed tech or educational technology businesses are hard to build. And also, the other thing is, I feel like, you know, ed tech or educational technology
Starting point is 00:48:25 businesses are hard to build. I mean, there's a lot of challenges in building ed tech businesses I've kind of kept up with as a spectator. You know, you basically these kind of learn to code platforms, it's hard to get a lot of traction and also paid traction, right? I mean, I think the best quote, unquote, I don't know best, but the closest path for this, if I were to commercialize this technology, would be to actually create content around it. So, you know, creating mini courses, creating tutorials, creating screencasts.
Starting point is 00:48:56 You know, there are people who run these independent businesses. This guy, what's his name? Gary Bernhardt, who does the Ruby. He does a lot of Ruby stuff. Destroy All SoundCloud. He has a paid. Yeah, he has a Destroy All Soundplay. He has a paid, yeah, he has a Destroy All, so he has a paid section. And one of my colleagues, Michael Kennedy, who does Talk Python, he does a Python pod, very popular Python podcast.
Starting point is 00:49:14 And he has Python training courses and premium services on his site. So I can imagine running something very independent like that. But then, you know, that would just require me to go all in on that right and right now i'm not you know that's not really in the cards for me but you know if i could fork myself and you know have a parallel version of myself that would be great yeah um so a lot of your uh prototypes um i think like the word is scaffolding. They like, they take existing languages and then somehow provide this structure that make them, make them easier. So like Python tutor makes the existing Python environment easier.
Starting point is 00:49:53 You had another project that makes like version control, get kind of stuff easier. Like you have a lot of your projects take the existing environments that we're stuck with and makes them easier, which contrasts with my focus and, and like kind of the, the research that I follow, our focus is more understanding new languages and tools from the ground up.
Starting point is 00:50:13 So like to keep with the scaffolding metaphor, like if you, you take the building that exists as, and then you build scaffolding. And I think we're, we're like going off off into a new place and building new buildings from the foundation up. So I'd be curious to hear about why you chose scaffolding
Starting point is 00:50:34 versus foundation. Yeah, this is a great question. I think that one way to think about that is that I feel like that earlier on in my career, it's easier to get traction, I guess scaffolding, it's a very meta word, by thinking about how do we improve the world we currently have, right? It's like the world we currently have is kind of, you know, hacky, it's kind of put together with duct tape. So, so computer security research is a great example of this, or network security is a great example of this, you know, a lot of it is putting duct tape around our internet protocols, which are were put together with duct tape, you know, 40 years ago. So you know, a lot of the practical security applied security work is look, you know, our internet's so insecure, because these protocols were made so long ago. There's this, we need backwards compatibility.
Starting point is 00:51:29 We have to live with this. How do we make it better? And then there's the other end of people are doing, let's imagine designing Internet protocols from scratch. And how can we create a better Internet if, you know, if we could start over. And I think in the educational world, similar of, how do we give a better experience to people who are currently using languages? And then also, how do we make better languages or better user interfaces that are completely different and not constrained by what we currently have? So I think my current focus on the scaffolding, as you mentioned, is more of a pragmatic one in terms of, I just feel like it's easier to make kind of concrete traction that way. And also it doesn't require, I guess, as much upfront investment. So like a good example of
Starting point is 00:52:12 the other end that you're talking about is, you know, what Brett Victor and his lab are doing, with Dynamic Land and with, you know, where Alan Kay was involved in this before and the folks who are really trying to invent the future. Yeah, that's, that's who I was kind of alluding to. Yeah. Yeah, yeah. Yeah, we can talk about that. So, so, you know, that requires a tremendous amount of what one funding, right? Because you need people, I mean, you need to build a team to do that. And also, sustainability is a is a challenging thing, right? So, you know, the history of the Y Combinator Research Lab and, you know, and how Alan has gotten funding
Starting point is 00:52:48 from various companies to cobble together funding from SAP and from, you know, various other companies throughout the years. And, you know, the latest, I think, I feel like the latest status is
Starting point is 00:53:01 a lot of that has collapsed and Brett's lab is now, you know, he has his own lab and they're trying to get collapsed and brett's lab is now you know he has his own lab and they're trying to get fun they have some funding from you know wealthy silicon valley folks and it's it's hard to sustain those things and like i mean think about it right like you know you know alan k is a touring award winner and he's you know he's that you know he's one of the most famous people in the field and even he has to cobble together money from sources to do these sorts of really big, grand sort of things at scale and to be sustainable. And as someone like myself who just came out of graduate school, right, who no one knows who I am, it'd be very hard to imagine building that structure in that lab to do that.
Starting point is 00:53:46 And another fascination of mine is, you know, how do you build organizations to sustain research? And so, you know, the super long winded answer your question of this, the strategy I chose of building on scaffolding and enhancing existing tools is because that was the most practical path, at least for me now. And I hope, you know, if my career becomes successful and sustainable longer term to be able to support these bigger ambitions. So, you know, one direct path for academics to do that is if you can get more well known and you can get funding from a larger organization to build, you know, kind of a larger research group around this broader vision.
Starting point is 00:54:24 That's one way to do that. But as you can see, a lot of people when they're starting their careers, it's hard to get that traction, right? Because one of the only ways to raise money when you're younger is for entrepreneurship, right? So you see young people raising money in tech, but that money is going toward building a startup that is hopefully going to be profitable in some way, right? So and not toward this, you know, another example, there's another example with Chris Granger, right? Building the Eve project and the light table thing. That was, I think, the closest someone has gotten to, you know, take achieving liftoff on that, but that ultimately had to be shut down as well. Sorry to be so pessimistic, but.
Starting point is 00:55:01 No, I think that was a, I love following yeah your your line of your line of thinking there and i'm to be honest a little bit shocked to hear that you hope to get um to to the foundations one day but like you're you're kind of hoping to to start kind of with lower hanging fruit for practical reasons like i'm i'm like um kind of inspired by that you know i was i kind of figured that you'd say something like, ah, like programming is like never going to improve. Like this is all we can.
Starting point is 00:55:29 I thought you were going to say something even more pessimistic. Yeah, no, I mean, I think there are people who are doing the more greenfield sort of stuff, but they are all fairly supported by well-supported teams.
Starting point is 00:55:43 So one example is Scratch, right? The blocks-based environment for targeted for kids, right, the Scratch environment. That's very popular. That's run out of the MIT Media Lab by Mitch Resnick and folks. And they're relatively well-funded because he's very influential in the field.
Starting point is 00:56:00 And then there's other folks working on, I mean, I follow these sorts of future programming education projects, at least, you know, Microsoft has tried to do a few. And a lot of times the history of these is that some company, you know, some senior person at a company gets excited, right, about, you know, pick whatever company, like, oh, let's invest in this for a few years. And then we have some engineers, some researchers work on it, we build some prototypes, but ultimately, you know, attention kind of waxes and wanes. And then, you know, the project gets abandoned, or it gets open source, which is great. But then it's just hard to keep up the momentum. So these projects are few and far between their scratch, which really targets K 12. There's the racket series of programming languages in educational environments. So that was called Dr. Scheme. So it was a scheme-based kind of languages. There's a few other ones like, you know, Android App Inventor, which started at Google and now is being run at MIT as well. But I think everyone is facing the similar challenges of how do you find sustainable funding for this
Starting point is 00:57:03 sort of stuff? And we could talk a little about that toward the end as well but yeah that's i think everyone is fine because there's a lot of funding for you know venture-backed the traditional venture-backed startups where the prerogative is to grow and get customers and then you know hopefully get acquired or you know if you're really lucky go public as a company but there's not really a direct route for sustainable funding for trying to do this stuff that's five or ten years out or more yeah i i i'm totally with you i think yeah like a lot of a lot of people in in this world the people who um like brad and jonathan edwards and um alan k that i think they they complain about that a lot i think
Starting point is 00:57:43 have you talked to jonathan at all uh or for your podcast or just privately about have you talked to who did jonathan yeah yeah we've talked privately um and just like on the internet um he and brandon yeah right yeah and he has this like great gallery right he has this google slideshow of the you know history of programming interfaces yeah no it really is awesome that's i think that might be the first time i saw him um yeah jonathan was actually uh in san diego he was doing kind of a so after after he spent some time at alan k's lab he went down to san diego and he just you know i'm at uc san diego and he just came to visit our lab and come to our group meetings and chat with our grad students and he was really great and i actually first knew him when he was at MIT
Starting point is 00:58:25 many years ago as a research scientist. And he's been working, well, he was working on this thing called Subtext back then, but he has a new system he's working on. But he's been keeping this up for a while, but it is rare, right? And it's only him, right? It's only him.
Starting point is 00:58:41 It's kind of a one-man band, just like me. But it's rare, but it's possible. Yeah. Um, so I think we're kind of, kind of at the top of an hour. So I want to just check in if you have time for one or two more questions or if you have to run. Yeah. Yeah. I'm fine going for a, for a little bit more. Um, um, so just in the interest of time, I'll, I'll jump to a question that I'm particularly curious about. So a problem that I've been facing in my own research, I guess, to summarize without getting too much in depth, my research, it's similar in spirit to your research in that I'm interested in helping people learn programming, prototype things without having to be like
Starting point is 00:59:26 amazing programmers uh and i i build like prototypes and for me um like winning would be a prototype that i could eventually turn into if not a company then maybe a non-profit like something like i'll eventually build a ship that i'll then get to like you know right on um as opposed to just like abandoning each prototype for the next uh as yeah so like a con academy you know that sort of yeah you're like con academy or or like mitch resnick uh scratch like a project that turned or um like um like google but like less successful you know i don't expect to start the next people but like a project that turned into a business somehow without the billions of dollars yeah i imagine yeah anyways um so uh but one of the things so when i first started um my you could describe my
Starting point is 01:00:19 um attitude was was like i'm the first person to have any original ideas like i'm just gonna go sit with my computer and hack on things until i you know fix like figure it out and and now my attitude is is kind of the opposite like you know i like no ideas is original every idea i've ever thought was original there's like tons of papers that um that i that i could have read instead of wasting all this time on my own, like reinventing the wheel. And so now I probably, Aaron, have had to read too many papers. And I found your article on opportunistic paper reading, which gave a good strategy for staying in the middle somehow.
Starting point is 01:01:00 So I'd be curious to kind of go through that a little bit with you. Yeah, that's another hard problem. I mean, you bring up, I mean, one of the reasons why I was excited to do this podcast was that I would feel no matter what, it will give me new ideas for things to write about or to vlog about. So that is, you know, so we have one in this hour. I guess at least I have one. I hope you've gotten something useful out of this too.
Starting point is 01:01:21 But at least I've got something useful because, you know, I've gotten some great questions to think about. But yeah, this question of to what extent should you just start hacking and learning by personal experience? And to what extent should you step back and read what other people have done or study? Not just papers, right?
Starting point is 01:01:38 Study old systems. So I was listening to your podcast with Pete Hunt of React.js fame right before this one because I wanted to see how you were as an interviewer and everything. And it was interesting listening to him because I've heard his talks before, but I really like how he went into a lot of the history of programming systems and even before the web. He was saying a lot of these ideas from React, yes, they were around in older object-oriented
Starting point is 01:02:04 systems and Java, C++ and stuff, but we took them to the web and we innovated. So on one hand, studying old stuff is good, but on the other hand, you know, you shouldn't be discouraged, right? Because like the setting is so different, right? So like there's always this running joke that whenever people are doing something and, you know, a new programming language is research or programming tools or education tools, there's always going to be someone, you know, if you're giving a talk in the back of the room that raised their hand, like, Oh, we did this in the 1960s with Lisp machines.
Starting point is 01:02:34 Yep. Always going to be someone who's like, yeah, we did this with Lisp in the sixties or at Xerox PARC. There's always the Xerox PARC line. Yeah. Right. We're always doing this. Yeah. We did this in small talk at Xerox PARC. We did this in small talk at Xerox Park. We did this
Starting point is 01:02:47 in Lisp and MIT in the 60s. And while the seeds of the ideas might be there, the world is so different that you can make really interesting innovations. I think that my own personal, I guess my own hack on this is just to ask someone who is a bit more knowledgeable in the field and use that as a way of filtering. And that's also why I think I probably mentioned in a vlog or blog somewhere is that that's why being in some kind of a community of practice in an institution, it doesn't have to be a university. It could be things like, you know, the recurse center, which used to be called hacker school, or being in a startup incubator or, you know, wherever you are, if you're just in a community where you have mentors who have been through this before, or, you know, in your case, maybe if there are startup incubators or these spaces where people have thought a lot about commercializing educational technologies, they would just have insights like, yeah,
Starting point is 01:03:45 you know, my hunch is that my spidey sense is that this way may be good, or you should stop reading so many of these papers, and you should start hacking. Or, yeah, maybe you should take a step back from hacking and go talk to potential users. And like, I just think that, I mean, this goes full circle at the beginning of, I just think that in-person mentorship from someone who has done this before is so powerful. And, uh, and it's something that's really hard to replicate online, right? I mean, if you're kind of reading into the void, um, have you seen my, uh, just, sorry, another side.
Starting point is 01:04:16 So I, I do this podcast hour with my friend, Robert Ikeda, who he's running this website called mathpapa.com mathpapa, is a um it's a it's basically it's funny how we did this arrived at this independently but his site is basically like a python tutor for math so you write math equations and it tutors you and it steps you through breaking down the equations into parts and helping you scaffold really and solve equations and he decided to go a commercial route. So he started a business off that that's actually very sustainable. It's, it's two people right now. But they make I don't know how much they make, but they make enough to like, you know, so that
Starting point is 01:04:53 they don't need a job, right. And on our podcast, we talk like every month, and he talks a decent amount about the challenges of starting an educational technology business. So like, you know, someone like himself might be a good person to connect with, I can connect you with him offline. But you know, just any personal connections to just help you filter out this large swath information, because otherwise, it's just, it's super overwhelming, right? You're sitting in front of a terminal saying, you know, what should I do? Should I start typing code? Or should I read a bunch of papers or look at a bunch of other people's projects? It's the answer isn't really clear. Yeah. That, that does a good job of summing it up. Um, and I, I think your advice of finding an in-person community is makes a lot of
Starting point is 01:05:37 sense. Um, I'm wondering what, what approaches there are, if that's like not an option um you know uh i kind of kind of like your a lot of your work is like enabling you know learning programming at scale i wonder um what what sorts of ways we can scale like research you know mentorship it's kind of like learning learning at scale right yeah well i guess yeah and i'm thinking more like specifically like scaling research like uh no that's right okay i see so scaling kind of how do you that's right so you know research has been by definition kind of a non-scalable thing right you're doing it in a certain kind of institution you might need close mentorship you know you have this uh there's a lot of structure behind it, you know, how do we actually enable, you know, discoveries, you know, you know, there are billions of people in the world, there are many, you know, many,
Starting point is 01:06:33 many of these people have the ability to create really interesting discoveries or inventions. But they're not able to right now, of institutional barriers or just lack of access to the right information. I think that is a really, really cool. It's an interesting problem. One way that some of my colleagues have dealt with this, it's actually called a crowd research project. This is some of my colleagues from Stanford did this and it's called crowd research. And what they've basically done is they've basically done remote mentoring. So it's back to this mentoring thing. So they've structured research projects. I don't know the details.
Starting point is 01:07:10 But basically, they have grad students. Let's say grad students at Stanford or something. And you're like, I want help with my research project. I want help brainstorming and ideating and implementing. So they actually put out a call online. And they have students like undergrad students or even people who are not in school from all around the world kind of sign up to be on these kind of project teams. And they kind of have weekly meetings and try to usher it
Starting point is 01:07:36 kind of usher the teams together to formulate ideas and implement them. And they've actually, you know, their marker of success is literally, can we get these teams together to say, participate in research projects with people from, you know, from the US. And some of them might actually want to go to graduate school in the US or go work in the US later. And they're motivated to do this as kind of a credentialing, right? Like, if I can participate in an interesting project that gets published, then I can get recognition from the publication and from a recommendation letter from, you know, a Stanford professor. So in fact, the long story short is kind of closing out the hours. One of those students actually, from a university in India, ended up coming to San Diego as a as a master's student. And I didn't know about him before. But one of the crowd research grad students referred him to me and he said, oh, yeah, you're you're joining the faculty being a professor at UC San Diego. There's this guy that I was working with and he got into the graduate program here and he would love to chat with you. And I actually chatted with him right when I started two years ago.
Starting point is 01:08:58 And we work really well together. So we've we've we published one paper together, and we submitted a second one, he's, he's well poised to, you know, going, he's going to industry right now, he wants to work in industry for a few years, he has a job lined up, but he wants to come back to do a PhD later. And with these research publications under his belt, he's well poised to get into a very good place. And that all started because of this crowd research program, because otherwise, he wouldn't have been really discovered. So that was a happy ending. Wow. Yeah. That's, that sounds amazing.
Starting point is 01:09:29 Yeah. Very cool. Maybe, yeah, maybe now it's, it's inspiring me. I feel like I need to go, go find myself a mentor of some sort. Yeah. And that's, it's, it's a challenge. It's, it's really a challenge. And that's why, I mean, one way, you know, one thing I tell students about is, is looking into alumni networks, right? So we know from your university, or from, you know, you know, I think just in person networks are so key. And, and you're right, you know, before and now, you're this kind of mentoring at scale, or really this kind of scaling of research is, you know, you can reduce it to a problem of mentoring at scale, right? How do you scale up mentoring and, and finding people, uh, mentors who can point them in the right direction? That's, that's really hard, right? Because even the work that I've talked about isn't really mentoring. It's kind of helping you do some programming and do some more rote and simple tasks, but not like,
Starting point is 01:10:22 how can we take someone who is you know very talented and very uh hard working and motivated and connect them to the proper resources and guide them and that's i think that's like the you know a trillion dollar question that's the holy grail um cool well anyways i don't want to take up too much of your time i just want to thank you again for for taking the time to speak with me from a cold email i really appreciate it and great this is fun

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