Embedded

View Original

482: Reference the Same Dog Object

Transcript from 482: Reference the Same Dog Object with Colleen Lewis, Christopher White, and Elecia White.

EW (00:00:06):

Welcome to Embedded. I am Elecia White, alongside Christopher White. Our guest this week is Professor Colleen Lewis. We are going to talk about teaching computer science.

CW (00:00:18):

Hi Colleen. Thanks for joining us.

CL (00:00:20):

Yeah, thanks so much for having me.

EW (00:00:22):

Could you tell us about yourself as if we met, I do not know, at a Women in Technology meetup in Chicago.

CL (00:00:33):

Oh, okay.

CW (00:00:33):

Very specific.

CL (00:00:35):

<laugh> It is very specific. Oh, my God.

EW (00:00:36):

I was going to go in front of the Lion's Den at Lincoln Park, so it was not as specific as it could have been.

CL (00:00:41):

<laugh> Yeah. Well, first we need to have an elaborate conversation about the weather, but then I might tell you my name is Colleen Lewis. I am currently an associate professor of computer science up at the University of Illinois Urbana-Champaign.

(00:00:54):

I study how people learn computer science, and how people feel about learning computer science. My PhD is actually in education, rather than most of my colleagues that have a PhD in CS.

EW (00:01:04):

I have a bunch of questions about that, but I think we want to do lightning round first.

CL (00:01:09):

Great.

EW (00:01:09):

We are going to ask you short questions. We want short answers. If we are behaving ourselves, we will not ask for more detail, but we will see.

CL (00:01:16):

Yeah, and I am a professor, so I obviously cannot give you short answers. No, I will be good.

CW (00:01:21):

Teaching or research?

CL (00:01:23):

Teaching.

EW (00:01:25):

Favorite building at Harvey Mudd College?

CL (00:01:28):

The Hoch, specifically the dining hall. I know that a lot of things have Shanahan's name on it.

CW (00:01:33):

Worst part about teaching at Mudd?

EW (00:01:35):

Is it the students?

CL (00:01:36):

We only got two free meals a week in the dining hall. I could have eaten there every meal.

CW (00:01:43):

This is such a shock to hear about how people wanted to eat in the dining hall. It was so awful when we were there.

CL (00:01:48):

No, as an adult, I never have a salad where I have cucumbers and carrots and mushrooms. I love a salad bar.

CW (00:02:00):

Our fellow students were...

EW (00:02:01):

We had an ice cream bar. <laugh>

CL (00:02:04):

I think the food got a lot better too.

CW (00:02:05):

Yes, it did.

EW (00:02:06):

Yes, it did.

(00:02:08):

What is your favorite LeapFrog toy?

CL (00:02:12):

You know, I worked on the Didj, which I would not say is my favorite LeapFrog toy. But I am pretty excited that I helped make the included game on it. So anyone, and I think not that many people bought it, but anyone who bought it got to work on it.

CW (00:02:27):

That was the little tablet-like thing, right?

CL (00:02:29):

No. It was after the tablet, but had less functionality. So maybe I will say CS ClickStart. It was this big remote control that was shaped like a keyboard, that allowed a three, four, or five-year-old to interact with the TV as if it was a computer. It was pretty cool.

EW (00:02:51):

Mudd food got better after we left, but I think LeapFrog was more fun when I worked there.

CW (00:02:54):

<laugh>

CL (00:02:57):

I did not realize you worked there. That is awesome!

CW (00:03:01):

What is your favorite way to learn new things?

CL (00:03:04):

I really love audio books. I am not an amazing reader. I am jazzed to sit or walk or exercise or put away dishes while learning new things.

EW (00:03:18):

Do you prefer to complete one project, or start a dozen?

CL (00:03:22):

I wish that I could say that I did not like to just start dozens and dozens and not always finish all of them, but that is definitely my tendency.

CW (00:03:33):

Favorite fictional robot?

CL (00:03:35):

I do not think I have one.

CW (00:03:37):

Okay.

CL (00:03:37):

Maybe if it was multiple choice I could give you something, but I am not that roboty.

CW (00:03:41):

Fair enough.

EW (00:03:43):

Do you have a tip everyone should know?

CL (00:03:46):

I have so many tips that I think everyone should know. I will give you a recent one, which is I have started giving myself M&M's when I take my vitamins, and now I take my vitamins every day. It is like a miracle.

EW (00:03:58):

You should try that.

CW (00:03:58):

<laugh>

EW (00:03:58):

Anyway.

CW (00:04:02):

Okay. <laugh>

EW (00:04:08):

<music> Thank you to Memfault for sponsoring this show. We appreciate their sponsorship, and the work that they do. Memfault is a leading embedded device observability platform, that empowers teams to build better IoT products, faster.

(00:04:22):

What that means is that if you have just realized that you are going to build five, ten, a hundred, 50,000 units, and you need to keep track of them, they will let you create your own dashboard to observe how your system is doing in the field. Memfault gives developers a more scalable and sustainable process. This accelerates the time to market and de-risks product launches. You can cut product costs and deliver more high quality software.

(00:04:50):

Trusted by leading brands such as Bose, Lyft, Logitech, Panasonic, and Augury. Memfault improves the reliability of devices across consumer electronics. And across mission critical systems, such as access control, point of sale, energy and healthcare. Thanks again to Memfault for sponsoring this show. Check out memfault.com and the Interrupt blog, which is filled with incredible amounts of information. <music>

(00:05:16):

So LeapFrog. I worked there at the end of the LeapPad era, but before the little tablet thing really took off.

CL (00:05:31):

Mm-hmm.

EW (00:05:33):

I worked on the Odyssey Globe. Then I had the preschool line and the pre-K lines.

CL (00:05:39):

Oh, cool.

EW (00:05:39):

And I had...

CW (00:05:44):

Just was an endless series of frogs, is what I remember.

CL (00:05:46):

<laugh>

EW (00:05:47):

There was the Karaoke. Do not forget the Karaoke. It is the most irritating toy possible, and yet people learn with songs. Why did LeapFrog not make an iPad app with all of the content they had?

CW (00:06:01):

Too early.

CL (00:06:04):

Yeah.

EW (00:06:04):

They still had all the contents.

CW (00:06:06):

The iPad did not come out till 2010, right. Where were they at that point?

EW (00:06:10):

Still existed.

CW (00:06:10):

Oh, okay.

CL (00:06:11):

They still existed. I started in, I think it was 2006. On my first day of work, they laid off a hundred people.

EW (00:06:18):

Yeah.

CL (00:06:21):

So I think it was the beginning of the end. But it was such a perfect place to work, because I feel like everyone there was a hundred percent focused on kids' education. I feel like I do not have any background in business, but I was like, "Whoa, whoa, whoa. Are we making good business decisions here? <laugh> This is aligned with my values, but this is not going great." But I loved working there. It was just perfect.

EW (00:06:48):

It was so fun to work on kids' educational. You are right, everybody was just so happy to be doing something that was both fun and worthwhile.

CL (00:06:58):

Yeah.

EW (00:06:59):

Okay. But these days you teach computer science. Okay. But you also do this thing called "Java 3D," which is not a game engine for Java, as-

CL (00:07:12):

<laugh>

EW (00:07:14):

I initially read it to be.

CL (00:07:16):

Mm-hmm.

EW (00:07:16):

Could you tell us about what Java 3D is?

CL (00:07:19):

Yeah, as I mentioned, I have a PhD in education. So I read a lot of broader education stuff, and a really popular thing in how we teach math is using physical objects. We cannot imagine a child learning about what the number "three" is, without using physical objects, whether they are their fingers or blocks or apples.

(00:07:42):

If we think about what we accomplish in math education, of being able to help people map a squiggle that is to us a "three," to this idea of a quantity, which is such an abstract idea. I just think like, "Wow! One, we have been teaching math for a really long time. But we are accomplishing really impressive cognitive feats, in getting essentially every human to be able to understand this squiggle means the quantity three."

(00:08:14):

Inspired by this math practice that is so ubiquitous, at Harvey Mudd I started trying to get better at teaching Java. I was teaching at Harvey Mudd Java all the time. I am a teacher who cares about their students, and it was not always great. Students will give me thumbs up or thumbs down about how it is going. I am like, "Okay, thumbs up, that made sense. Thumbs down, that did not make sense." And I was getting a lot of thumbs down.

(00:08:41):

They were very honest, and it was helpful. I started throughout my semesters there, experimenting with using physical objects to teach aspects of Java. They do different things at different times, but I have continued to try and develop those, and continued working a lot with high school math and computer science teachers, who have helped me make them hopefully more pedagogically valuable.

(00:09:07):

So I have got this project funded by the National Science Foundation. I have got it on my website, csteachingtips.org/3D. It is a collection of all the ways I use physical objects to teach Java.

EW (00:09:22):

Okay. I saw some stuffed animals, and they had little tags on them. Bookmark tags.

CL (00:09:28):

Yeah.

EW (00:09:30):

References? Pointers?

CL (00:09:31):

Yeah, totally.

EW (00:09:33):

What does a tiger represent?

CL (00:09:38):

In Java, because it is OOP, we are always talking about creating objects. I was drawing them as little boxes, with instance variables inside and stuff like that. I transitioned to starting to use stuffed animals. One, I like that it challenges some of our stereotypes about what it means to do computer science. You come into the classroom and there are stuffed animals on the board. I do not hate that.

EW (00:10:02):

But this idea that in our code we are creating an object, I think is quite complex. Specifically I try and help- One of the things that I try and do, is help students understand how two variables could reference a single object, and that that is actually different than two variables referencing equivalent objects. That key learning goal, if you do not have it, essentially nothing in programming makes sense. And I think my students were not getting it, before I was using physical objects.

(00:10:38):

So let me walk you through in a podcast version what this looks like. So I have two pockets. Each one would represent a variable. To the left of those pockets, I write the variable name, so say I have got "X" and "Y." And both are variables that can reference say a dog object, and I have got a dog stuffed animal there.

(00:11:00):

Then what I do is I put a little bookmark or remote control- That goes in the pocket, and then from the top of that little remote controller bookmark, I have a ribbon that connects to the stuffed animal. So try and picture this. I have got two pockets, each of which has a bookmark or remote control with ribbon connecting it to a single stuffed animal. So there X and Y are both referencing a single dog object.

(00:11:27):

Versus I could have Y, its little bookmark is referencing a completely separate dog object, but maybe it looks identical to the other dog object.

(00:11:39):

Okay. So we have two dogs. We have one dog, two leashes that go to X and Y. Versus two exact same dog.

CL (00:11:48):

Yeah. Each with their own leash.

EW (00:11:49):

Two leashes going to X and Y.

CL (00:11:50):

Yeah.

EW (00:11:50):

Okay. Dogs and leashes. Got it.

CL (00:11:55):

Yeah. Yeah, yeah. Yeah. Maybe the idea of coming on a podcast, to talk about your work with physical objects, is not the best option.

CW (00:12:00):

Well, we have talked about way more difficult to visualize stuff, so you are fine.

CL (00:12:05):

Okay, great.

EW (00:12:06):

But is this just because people do not understand pointers at a deep level?

CL (00:12:11):

Oh, yeah!

EW (00:12:12):

Or is there something else?

CL (00:12:14):

Oh! What else might it be?

CW (00:12:18):

To me, abstraction is always something that people seem to struggle with with computers if they are not exposed to it. They can do abstraction in their daily lives, but as soon as you put a computer program in front of them, it is supposed to be-

(00:12:30):

I think the initial impression a lot of people have is that a computer program is a set of recipes, instructions to make the computer do something. Not a description of how the computer is organized. I think that leap is really tough for people.

(00:12:45):

And then I do think we do try to make physical abstractions, right? The word "object" is in itself a thing saying, "This is a thing." I have read books about object-oriented programming where they try all kinds of things like, "Oh, this is a car. And you might have a special instance of a car. And the car has wheels and those wheel-" And all that kind of stuff.

EW (00:13:06):

My book makes the point that object-oriented in embedded is easier, because when you talk about an inertial sensor, that is an object. That is an actual physical object.

CL (00:13:19):

<laugh> Yeah.

CW (00:13:20):

Yeah. So I wonder if it is that shift from computer as instruction interpreter, versus computer programming as coming up with structure, is just the leap.

CL (00:13:35):

Yeah, I buy that. One way I think about it is when a student who does not know Java looks at Java, they might have a lot of different ideas about what it is doing. And for any of their ideas, probably we could create a programming language or a programming language exists that actually does it that way. Do you know what I mean?

CW (00:13:56):

Mm-hmm.

(00:13:56):

That they have reasonable ideas. Those probably exist somewhere in the world. And so I think our job as teachers- They do need understand abstraction. That is challenging. But I think as teachers, we need to be like, "Hey, here is some Java code. Let me try and communicate to you what is actually happening."

(00:14:18):

In the code that we just talked about, where X and Y both referenced the same dog, I had shown students that code, and box and arrow diagrams of that, for years and years and years. And when I started doing it with physical objects, students would raise their hand and they would say, "Colleen, what you have got on the board is wrong. That would mean that either variable X or variable Y could modify the dog."

(00:14:44):

Mm-hmm.

EW (00:14:44):

Indeed!

CL (00:14:44):

<laugh> And I am like, "Oh, damn!" I love that they are accurate and overconfident in their interpretation in some ways of what the model is communicating. It is just like, "Oh man! How many times had I drawn the equivalent from my perspective, the equivalent boxes and arrows, and they had not understood it."

(00:15:11):

It is actually- At Mudd, I often would get two questions where someone tries to correct me, per lecture section. Like it is so-

CW (00:15:21):

It does not surprise me at all <laugh>.

CL (00:15:23):

No, no. I think of it- Maybe I love Mudders more than you guys do. But I just think that day for people who have not seen this kind of idea, and who have not thought about aliasing, is so cognitively demanding that they cannot even pay attention to other people's questions.

(00:15:40):

I do not know. Students just ask more and better questions, and I think partially it is about it is a better medium. They more accurately are able to interpret the models when I do that, instead of these boxes and arrows.

CW (00:15:57):

I think for me, one thing I still struggle with sometimes, if somebody hands me a code base in an object-oriented programming language like C++ or whatever, figuring out the actual flow of what is happening-

CL (00:16:08):

Oh, yeah.

CW (00:16:08):

And where it starts. Often, it is like, "Okay. Where? What? Okay, we have got 15 objects here. Here is 'main.' And it instantiates this-"

EW (00:16:17):

It instantiates everything, but does not call anything. Because instantiations do it all.

CW (00:16:19):

But it does not call anything, because something happens in the constructor. Where? Where is the code? And how does it? It takes a long time. I think that is a microcosm of the bigger problem with object-oriented programming. It is like, "This is very loose," <laugh> in some ways.

CL (00:16:35):

<laugh>

EW (00:16:38):

Flexible.

CW (00:16:38):

Yes!

CL (00:16:38):

Yeah. But I do not hate it for some of the big ideas. I think we do not need to be talking about OOP, to be thinking about two variables referencing an array.

CW (00:16:49):

Sure. Yeah.

CL (00:16:52):

I still think I was doing a bad job teaching two variables referencing an array, and so hopefully it gets better here. Sometimes my students will think like, "Oh, but Colleen, I am not a visual learner." I am like, "One, visual kinesthetic auditory learner, Google it. It is education pseudoscience. You can Google 'Dan Willingham.'" But I think the-

EW (00:17:15):

Really?

CL (00:17:16):

Yeah. Yeah, yeah. Oh, it is not a thing. All the things that you would predict would be true based upon that, are not true. So they give teachers this really crap advice, which is, "Oh, mix up the modalities," and that is bad. You should only communicate information in modalities that actually make sense for the content.

(00:17:36):

So if I am going to teach you about the- This is the common example they use. The shape of the United States. I am going to make it visual. If you are low vision or blind, okay, I am going to use a different modality for you. But for people who are sighted, the modality that makes sense is visual. No modality that is kinesthetic makes sense. Okay. Sorry, that was a hot take.

CW (00:18:07):

No, no.

EW (00:18:09):

Oh. Oh. Yeah. No. I actually concentrated in education at Mudd, well at Claremont Grad School.

CL (00:18:15):

Oh, cool.

EW (00:18:15):

So yes, I am all, "Yes, yes, yes! Tell me more."

CL (00:18:20):

But, do you know what? A lot of colleges of Ed still teach about learning styles. So, yeah. There have been some reports about the number of colleges of ED who teach things that we know to be untrue. That is a separate story.

(00:18:36):

But I think my students would tell me that they are not visual learners. And it is like, "Oh, when I am talking to other professors or colleagues about Java, we just look at Java or talk about Java. But you do not know what Java means or does. So I need a secondary representation to communicate what is happening when this code runs. I think that is the role that the physical objects play. And I think they in particular play that in a better way than diagrams."

EW (00:19:09):

Do your students take stuffed animals to their exams?

CL (00:19:11):

<laugh>

CW (00:19:15):

Can we do that anyway, without using them for visualization <laugh>?

CL (00:19:18):

That is a good question. So originally I was using a stuffed dog that I had from my childhood. It was a little bit ratty and not that cute. Then one day I was walking back from my office and I put my box of props on my trash can, and it got taken to the trash and I was so, so sad.

EW (00:19:37):

Ohh!

CL (00:19:39):

Then I found out that money can buy happiness. I bought eight replacements on the internet. I spent $400 in total. So then instead of having one of this cherish childhood possessions, I had eight of them.

(00:19:54):

Obviously they do not all need to be used in class. I would come up with the most elaborate code to try and justify having eight of them. But students would ask if they could sit with one of the stuffed animals in their lap during class. And I think they are just-Stuffed animals are pretty comforting.

EW (00:20:14):

One of my pieces of advice going back to when I was a TA at Mudd was, "Do not tell me about your problem. Tell the stuffed animal that sits outside my office about your problem. Then come in if you still need it. But the chances are you just thank the bear and walk away." And now it is rubber duck debugging.

CW (00:20:33):

They gave you an office?

EW (00:20:35):

Yeah, when I TAed for-

CW (00:20:37):

Oh. Wow.

EW (00:20:37):

But only for the hour I was supposed to be there. It was not my office.

CW (00:20:43):

<laugh> That is fine.

CL (00:20:45):

That is awesome. Yeah. Yeah, yeah, totally. I think often I do well by writing a question I have for somebody in an email or on Slack, and then I am like, "Oh, okay, sorry. Now I have broken this down enough that I can Google it, or I actually just know the answer." It turns out that the act of asking a specific question for help, or explaining it to somebody else or a rubber duck, helps me a lot.

EW (00:21:18):

Do you think the stuffed animals provide a level of security and comfort, that maybe if you had used Hot Wheels-

CL (00:21:27):

Star Wars action figures?

(00:21:28):

<laugh> Yeah. Yeah, I think it creates a different vibe. One of the high school teachers I work with, also teaches math. She has always got the stuffed animals sort of magnetized and attached to her whiteboard. So the math kids will come in and be like, "Oh, what is that?" And she is like, "Oh, these stuffed animals? Oh, that is just computer science." And I think it-

EW (00:21:55):

<laugh> That would be a good way to get people to take a CS course.

CL (00:21:57):

Right! I had this very fortunate public school experience, where from second through ninth grade, I was in a mandatory computer science class. In elementary school we just did it once a week or whatever, but I was learning Logo and BASIC. It was so cool, and I did not opt into it.

(00:22:17):

Then in high school, after taking the ninth grade required class, I did not opt into it. Because I was like, "Computer science is not for me." When I got to college, I was like, "Well, I am not going to major in electrical engineering / computer science. That is for super smart people, not for me."

(00:22:33):

Little did I know I was going to meet somebody who was going to drag me into EECS, and that was going to be my major. But I was confident that it was for people unlike me. And I think stuffed animals could help.

CW (00:22:48):

Where did you get that impression, do you think?

CL (00:22:51):

It is a good question. Because I do not know that I was consuming a lot of media that portrayed it. Certainly at Berkeley, there was a lore of- At the time, the stereotype was you needed to be an antisocial man. You needed to not want to shower. You needed to want to stay up all night. You needed to have no other interest.

CW (00:23:10):

Black leather duster.

CL (00:23:10):

Yeah.

EW (00:23:10):

<laugh>

CL (00:23:11):

And it was like, "That is not me. I like to go to bed at 9:00 PM, and wake up in the morning. I like to socialize. And computer science is one thing I love, but it is not the only thing I love."

EW (00:23:26):

It is good to be a morning person in CS. That means you get access to the computers. You do not have to fight for them.

CL (00:23:31):

<laugh>

CW (00:23:32):

Unless somebody is there overnight, like me.

EW (00:23:34):

Yeah. But then they are so sleepy, you just push them off.

CW (00:23:36):

That is true.

CL (00:23:36):

Yeah. LeapFrog, I would easily have four hours of work time, before any of my coworkers got in. But people have told me, as a kid the number of people where-

(00:23:47):

Even when I had decided, "Okay, EECS or computer science, this is what I am going to do." I met so many adults who were like, "Oh, Colleen, you will not like it. You will not like sitting in a basement, coding until three in the morning." Oh yeah, and I was also alone, "Sitting in a basement alone, coding until three in the morning." It was like, "Yeah, I would not enjoy those things."

EW (00:24:10):

This is why you go into embedded-

CW (00:24:11):

None of which are necessary <laugh>.

CL (00:24:13):

Right.

EW (00:24:13):

Where you go to race tracks, and have to deal with race cars during pit stops. Or you have to work in a multidisciplinary team, with people who speak an entirely different language, because they work with mechanical engineering stuff. Embedded. It is where it is at. You do not even need stuffed animals here. Or even better, you can make your own.

CW (00:24:35):

Yeah. You say that now.

CL (00:24:36):

<laugh>

EW (00:24:36):

<laugh>

CW (00:24:39):

I want to go back to pointers for a second, because it is a concept that when we are talking to people who are learning either embedded or something else, or even people who have graduated and are working in the field, still struggle with.

(00:24:53):

I cannot explain it, because it seems completely obvious to me. This is not a dig at anybody that they are being dumb. It is, "I do not remember the time I did not understand it." I am sure it was very hard for me, but I really do not remember it. Now it is just like, "Yeah, it is this, and it is this. And what is the problem?"

EW (00:25:13):

I wanted do a conference talk about it, and I realized I could not explain it. Because my talk was, "Pointers. Yep. Cool!"

CL (00:25:20):

<laugh>

CW (00:25:24):

I do not know how to bridge that gap, and figure out how to explain things, that are just so ingrained and understood by me now. That I cannot even articulate a different way of explaining them beyond, "It is a pointer. It is right there in the word."

CL (00:25:40):

Yeah.

EW (00:25:43):

<laugh> It references objects. <laugh>

CW (00:25:45):

Sometimes, but sometimes just memory. It is just memory. It is just an address. <laugh>

CL (00:25:51):

Yeah. Yeah, I think there are two main pieces. One we see in Java, where they only have to deal with references, of just this idea of "What is this indirection?" I think another piece in C++ in particular, or C, is just the syntax is not obvious to people.

CW (00:26:16):

Yeah. It is terrible.

CL (00:26:16):

Do you know what I mean? Of like, "Oh. But if we use a star over here, it means this thing. But if we put it over here, it means this other thing."

EW (00:26:24):

Yeah. I hate that.

CW (00:26:25):

When we have two stars, well, that is a totally different ball game.

CL (00:26:28):

Yeah. I have become a little bit obsessed with some work around syntax exercises. I saw it first from this guy, Professor John Edwards at Utah State. What he does is he just has students practice syntax. So it is like you give them a for loop, and it is missing a semi colon after the initialization, and they have to fix it. And then you give them a for loop, and you have them add the initialization, because it is missing.

(00:26:54):

In these tiny exercises that each take about ten seconds, you draw students' attention to specific aspects of syntax, and have them write them. Eventually to the point where you are like, "Oh, now write the for loop that prints the numbers one to ten, from scratch."

(00:27:13):

I think we often just go for the conceptual understanding, and give an example or two. And do not give people enough opportunities to practice that syntax. Like, how much time did we spend learning to spell, as kids? I think we are not doing that equivalent scaffolding for people as they are developing the syntactic fluency, that can really get in the way of their conceptual understanding.

CW (00:27:44):

That is a really good point.

CL (00:27:45):

At Mudd, I started doing something where on the first day of the mainly Java focused class, I would be like, "Hi, here are six programs-" Actually it was Racket and Java. So I would be like, "Hey, here are six programs. You need to memorize these." They are like, "What!? I have to memorize something?" And it is like, "Yeah."

(00:28:03):

They would complain and complain and they were like, "Oh my gosh, we hate this." And I was like, "Did it take you a long time?" And they are like, "It did not."

CW (00:28:13):

<laugh>

EW (00:28:13):

<laugh>

CL (00:28:13):

They are like, "It did not." And I am like, "Cool. Cool, cool, cool. I think that is going to be fine."

(00:28:17):

One of the programs was a basic class. The extent to which when I am trying to introduce the idea of instance variables, or objects, and how is an object different than a class, and what is a constructor. Having them already have the syntax that I was going to use in all of my examples memorized, I think made it easier for them to pay attention to the words I was saying and the examples I was providing. And not being distracted by the syntax.

EW (00:28:49):

Ah. I would never have thought that method. But yes.

CW (00:28:52):

It is something that-

EW (00:28:53):

It is something I see with students.

CW (00:28:55):

We do in other disciplines.

CL (00:28:56):

Yeah.

EW (00:28:59):

Do you want to know how many pages of cheat sheets I have on my desk that have little syntax cookbooks, because I forget things so easily?

CL (00:29:08):

Yeah. Some of it is just helpful to remember like, "Oh, the object, and then a dot, and then the method name, and then I need parentheses." Some of it is I think, better memorized than cheat sheeted. Or is-

EW (00:29:24):

Oh. Yes. For my cheat sheets, I do tend to when I need them, read the whole thing. But when I change big topics, it is kind of like, "Which program I am loading into my cache right now?"

CW (00:29:41):

<laugh>

CL (00:29:43):

Mm-hmm. I love that. I love that. Yeah.

EW (00:29:47):

Okay, back to the stuffed animals, because that is really where-

CL (00:29:52):

Yeah.

EW (00:29:53):

Stuffies, it is where it is at.

CL (00:29:55):

Yeah.

EW (00:29:55):

You also use them to represent polymorphism and inheritance. Wait, wait. Before I get to the good question, I have a terrible question. Did you put "stuffed animals" as a line item on your grant study?

CL (00:30:12):

I did. <laugh>

EW (00:30:16):

<laugh>

CL (00:30:16):

Yeah, it is amazing. Yeah.

EW (00:30:20):

That is so cool.

CL (00:30:22):

I just sent a spreadsheet to Darryl Yong to buy me a thousand dollars worth of stuffed animals and magnets and clothes pins on a shared grant. So it is maybe on multiple grants I have had stuffed animals as a line item.

EW (00:30:39):

Okay, polymorphism and inheritance with stuffies.

CL (00:30:42):

Okay. Yeah. So I had been teaching inheritance very poorly for many years. I was often using a example of an animal and then an animal has a child of a dog and maybe also a child class of cat, and the dog has a child class of Dalmatian.

(00:31:00):

I figured through working with high school teachers and refining my practice, I think I figured out students do not find it confusing that one class can be extended by multiple classes. So I think I was just distracting them by giving them a second example.

CW (00:31:14):

Oh.

CL (00:31:14):

I do not think it was buying me anything. I think also like, "What is an animal?" I think you cannot visualize it. One of these eight stuffed animals that I bought as replacements to my childhood toy actually was not a dog. It was an elephant. So I would use that as the animal, but it did not make logical sense.

(00:31:37):

Now I have a series I do for inheritance, where my base class is a cat. It looks like a little house cat stuffed animal. And then its child class is a tiger. I think, "Okay, those are distinguishable and both are recognizable." I think about, "Oh, they make different sounds, purr versus roar. Tigers like to swim, cats do not like to swim." And then I have a child class of tiger, which is "cartoon tiger," and I use a Tigger stuffed animal.

CW (00:32:08):

Okay.

CL (00:32:10):

So I think a few things. I stopped distracting people with multiple classes. There are other pieces where I just got better at explaining things about like, "Oh, we look in the parent's class for the code." I got more routinized in the ways I explained some of what was happening for students.

(00:32:30):

But I think the actual hierarchy that you are using, particularly if you are going to visualize it like I do, I think you need to be able to visualize an object of each of the types.

(00:32:43):

I spend actually a lot of time creating those classes with the behavior, and having students understand what a cat can do, what a tiger can do, what a cartoon tiger can do, and how they are different. So I almost want them to memorize that behavior. Then we can pay attention to the syntax of how we get that same behavior that we can make without inheritance, but now with inheritance. That is a big idea.

(00:33:12):

I have a paper that I have written about this, that has been rejected roughly twice a year since January 2021. So maybe someday you will be able to read about this.

EW (00:33:24):

Because a tiger is not a cat.

CL (00:33:28):

What?

EW (00:33:28):

A tiger and a cat are both felines.

CW (00:33:31):

Here we go.

CL (00:33:34):

Oh. Oh, okay. Okay. Yeah.

EW (00:33:38):

Because a tiger is not a cat.

CL (00:33:39):

Do you think that is why the paper keeps getting rejected? Oh, sorry.

EW (00:33:43):

Sorry.

CL (00:33:44):

Yeah.

EW (00:33:44):

You toss a fox in there, and you talk about hardware.

CW (00:33:46):

What?

CL (00:33:46):

What?

EW (00:33:46):

You talk about a dog hardware running cat software.

CW (00:33:52):

I think that is not going to help.

CL (00:33:59):

 <laugh>

EW (00:33:59):

No, it is definitely not. Foxes are cool. Okay. Changing subjects, unless you want to talk about evolutionary branches.

CL (00:34:07):

No. No, I am okay.

EW (00:34:11):

We have been watching the Olympics some. It is always amazing to me that people do better and better. Gymnasts go higher and further. Runners run faster. Swimmers- Well, except for Ledecky who just keeps swimming and swimming. It is always- Do humans get better because we have learned to teach better?

CL (00:34:41):

I think that is reasonable. Yeah, that we have better coaching. I think flying through- How to convince people to fly through the air-

CW (00:34:48):

<laugh>

CL (00:34:51):

That one, I do not have my mind wrapped around. But I enjoy lap swimming, and so joined a lot of lap swimming teams. I am not a fast swimmer. I am not competitive. But I got to swim with someone who, as a teenager, had trained for the Olympics. Maybe she was 50, ten years ago. She explained that she was a sprinter, but at the time, the training regimen she did still involve a lot of long distance stuff.

(00:35:27):

Now we know- It is not a thing I know, but she explained. Now we know that, "Oh, it is really better to just focus on sprinting. And to not do a lot of long distant workouts." So from one would have been Olympian with better training, I think your argument holds water.

(00:35:51):

Maybe there is also additional social value of people participating in the Olympics, which then makes people more focused on identifying potential Olympians and training them. So maybe it is both more searching and seeking for those people, and also improved pedagogy. But I honestly do not know. No one should listen to anything I just said.

EW (00:36:21):

The Olympics were my example, but it is more with CS. Are we actually getting better at teaching people to understand these concepts, so that they can approach more complex concepts earlier in their careers, earlier in their education?

CL (00:36:41):

I think so. I have done a lot of stuff with the programming language Scratch. I am really intentional in calling it a programming language, because kids will be like, "Oh no, that is just a game. Look at it, it is colorful." And I am like, "No, I can teach you all the content from my intro programming course using Scratch. I can get you to more complicated concurrency bugs in Scratch, than I can in my intro programming course."

(00:37:08):

So things like Scratch, particularly compared to something like Logo which it is based on, I think it just enables students to engage more powerfully. Early on in my career, I did a study where I was like, "Oh, when students program in Logo and when I programmed in Logo, I really had to think about what I was doing. So that is the really meaningful thing."

(00:37:33):

So I designed a little study where I compared a set of students doing isomorphic problems, in this written with characters, rather than dragged and drop, language called Logo, versus Scratch. I really thought that Logo was going to be better, because the fifth graders I was working with would not be great typist. And so they would really think through their program before they wrote them down. I was wrong. The students doing Scratch-

EW (00:38:04):

Well, no, because they had to learn to type as well.

CL (00:38:07):

Yeah. It just takes cognitive demand to plan it, and then type it. It turns out- My hypothesis of why I saw this is with Scratch, you can just try it, and then try it. And then try something else, and then try something else.

(00:38:21):

You can just do rapid prototyping and rapid experimentation, to try and understand the semantics of a Scratch program, in ways where particularly for the typing skills of fifth graders was not possible. So I think we are getting better and teaching people more.

EW (00:38:42):

What other types of things are good to teach in CS with physical objects?

CL (00:38:54):

Maybe I will give you one other example, that is quite different than the Java ones we have been talking about. That was all about a low level understanding of the semantics of a few lines of code. That is what I was using for the pockets and the animals.

(00:39:07):

Okay, I think as students are learning about arrays and algorithms on arrays, I like to use physical objects there too. And it is not about the low level semantics. At that point, they understand what an array is. They know how to access an index, et cetera. An element in an index, yada, yada, yada.

(00:39:25):

But something like code for quick sort, or code for merge sort, or any of these intro programming, complicated nested loop programs. I think it is really important for students to be able to understand the big picture.

(00:39:42):

I find that if I trace the algorithm using physical objects, I can help illustrate the big picture of the nested loop. In ways that if they do it themselves, trying to reason through the code, just takes too long. And so it is hard for them to see the patterns.

(00:40:03):

Or we might talk about them as the invariance that are constructed as you are doing a sort. So I think that is another thing that is helpful to have physical, but for a very different reason, or with a very different goal.

EW (00:40:17):

That one is pretty easy. A pile of blocks, even a bunch of post-it notes. It is pretty simple to have somebody scramble these, and now using this algorithm, we will walk through and order them.

CL (00:40:33):

Yeah. Another one I like to do is little Dixie cups. I do not know what their generic brand name is, sorry. But I will write numbers, like the values in an array, at the bottom of the cup. If you have got a row of cups, you have to explicitly pick up the cup to see what is on the bottom of it. You could do that with cards that are face down, but they are just more annoying to pick up.

(00:40:57):

I find it is very helpful to get students to think about, "Oh, I cannot just look at an array and see the smallest number. I have to walk through the array and figure out the smallest number." So I think there are interesting ways where sometimes a physical representation, can map well to specific tokens of syntax. Where it is like picking up a cup, maps really cleanly to an array axis.

EW (00:41:28):

That is really- Yes, exactly. I think I have done the post-it thing. It did not occur to me that I was missing the step of accessing the variable. Which, I mean, I am an embedded programmer, I know that that has cost.

CL (00:41:43):

<laugh>

EW (00:41:44):

But it is not always obvious when you are explaining to someone, what parts you need to represent.

CL (00:41:53):

Yeah. It is arbitrary, right? Whoever designed the programming language, decided our level of abstraction.

EW (00:42:02):

How do you decide what you want to teach with this method? Do you have a list of "If only someday I can figure out how to represent the flyweights in design patterns"? Do you have a list?

CL (00:42:15):

I do not, but whatever I am teaching, I am always thinking about it. I love having something that I do not know how to teach, and then randomly going down rabbit holes on Amazon, seeing if I can find any objects that spark some creativity.

(00:42:34):

An example where I think this happened was, students in this Java class were fine working with dictionaries or hash tables or hash sets. They could write code with them, reason about programs with them, no problem. But they were like, "Colleen-" Consistently at the end of the semester. They were like, "The main thing I do not understand is how hash tables work."

(00:43:01):

I am like, "Everybody does great on all the coding questions related to this." I think I was just doing a bad job explaining the internal workings of them. I started using file folders. So with the file folder representing an element in the array- My friends make fun of me, because they are like, "Kids do not know what file folders are." But ignore that. Teach students what file folders are.

(00:43:31):

Then I would label them with indices like we would have. It is like, "Oh, I use hash code on this. It gives me a value. I will just use its ones digit to figure out which of these spots to put it in." Doing a three minute demo, putting some strings into a file folder, students stopped complaining about not knowing how hash tables work.

(00:44:02):

I think a lot of times students will be like, "Colleen, that was not helpful. You made it worse." But sometimes I really land on something in all my experimentation, that clears up a problem that I have been struggling with. I think I just experiment a lot.

(00:44:17):

And then I am very, very open to coaching. Particularly at Harvey Mudd, students were very willing to sit around with me after class, and do a play-by-play <laugh> about how the physical objects could have been more helpful.

CW (00:44:31):

<laugh>

CL (00:44:33):

Students were just so generous where they were like, "Oh my gosh, Colleen. Please do not demo more than one line of code using these stuffed animals. You drop stuff. You mess up. It gets too confusing. Set up the model before class. Show us one line of code."

(00:44:48):

It really shaped how I teach with their coaching. Between them and the high school teachers I work with, where they are like, "Wow, Colleen. That is not a good idea." I am like, "Oh, okay. Okay, great."

EW (00:45:02):

Okay, now I need to hear what was not a good idea. I need to hear an example of something you tried, that really did not work the way you thought it was going to.

CL (00:45:14):

My life is riddled with those. But going back to inheritance, I was like, "Oh, I have got this great idea." Children classes can override a parent method. So I will try and reinforce this being like, "Oh, children do what they want."

CW (00:45:31):

Ohh!

CL (00:45:33):

I was like, "Wow, I am so innovative. This is going to be great." And students were like, "No-"

EW (00:45:39):

"And we will have a tantrum function." No? No? No?

CL (00:45:44):

<laugh> Yeah. I think the key thing- A lot of times I do not understand why something was a bad idea. I try and figure it out later. But I think the idea is, actually overriding a parent's method is not that confusing. Inheriting a parent's method is. Because, "Oh, I look in the child class, and there is the method. Why would I think I would call the parent one?" So I am more sympathetic.

EW (00:46:09):

Okay.

CL (00:46:09):

Yeah.

EW (00:46:09):

Okay. I was thinking about it as more is using the parent's credit card.

CL (00:46:16):

Oh, I love that.

CW (00:46:17):

<laugh>

EW (00:46:20):

You mentioned that you have a website called "CS teaching tips dot org."

CL (00:46:22):

Yeah.

EW (00:46:30):

These are not for computer science learners?

CL (00:46:33):

No, they are for teachers. Yeah.

EW (00:46:36):

Are they for high school teachers? College professors?

CL (00:46:38):

Yeah. It is a mix actually. Some of them, I think that high school teachers or K-12 teachers do not need. I have a tip sheet on lecturing, and basically the point is like, "Do not lecture. Ask your students to solve problems." I give them many options other than lecturing. And I think high school teachers mainly do not need that.

(00:46:59):

How it happened was, I was TAing in grad school. I would come to my advisor who was a very accomplished educator and very thoughtful. I would be like, "Oh my gosh, Mike Clancy. I have just had the biggest insight into the teaching and learning of computer science. Let me tell you what happened and my insight."

(00:47:15):

Maybe I am very, very arrogant, but we had a lot of these conversations. Every time he would be like, "Yeah." I was like, "Wait. What?" This deep insight that I feel like I just discovered, you just already knew. So I think to some extent I wanted to create this website, to capture Mike Clancy's and other educators' knowledge about teaching.

(00:47:40):

I think particularly in this research sphere, we value, "Oh, did you do a randomized study of it? Yada, yada, yada." But it is like, "Oh, actually teachers know a lot of stuff." Let me give you one example where in algebra teaching, there are physical objects people can use, that are called "algebra tiles." They are pretty cool.

(00:48:01):

I have read a lot of papers about algebra tiles, and the story is, "Oh, mixed results. Sometimes they are better, sometimes they are not better, or worse." I mentioned this to one high school teacher- So it is like, "It is a mystery. Why does it not work?" I mentioned it to one high school teacher, Angel Kwo. She is like, "Oh yeah. If you ask students to use algebra tiles on algebra problems that they find really easy, they think the algebra tiles are a little kiddish. And they refuse to use them for the rest of the school year."

(00:48:35):

And it is like, "Oh my God. None of the research captures that very simple insight, that might help us understand the teaching and learning of algebra, and the effectiveness of this tool." So I think I lean heavily on the like, "We really as a community would do better by tapping, by respecting, practitioner knowledge. And trying to capture and compile that to make it more usable."

(00:49:04):

The website has a thousand tips for teaching computer science. It turns out that a thousand tips, it is just not that helpful. How are you going to find what you want when you need it? That is not that helpful. But I have some tip sheets that try and synthesize around key points, and I think those are more usable.

EW (00:49:21):

Do you have one that is your favorite tip sheet?

CL (00:49:25):

I am maybe keen on the most recent one, which is "How to use peer instruction, or how to have students solving problems in class." I am really an advocate of it, because I think it gets you more feedback about how students are understanding things.

(00:49:42):

If I give students problems where I think everyone is going to get the answer, "Here is this multiple choice question. I think I am going to get a hundred percent right." And then 50% of my students get it wrong. Like, "We need to take a real hard fork in this lecture, to try and improve it."

(00:50:03):

My broader philosophy about teaching is like, "We can do a lot better as teachers, if we are getting feedback from our students. And have insights into their thinking, and what they are having trouble with." I think peer instruction is a really powerful tool for that.

(00:50:22):

I had- In using peer instruction, had developed a bunch of different strategies. That is my second tip on that tip sheet is, "Test your assumptions." It is just like every time I think, "Oh, well, no. I will just include this one, but we will probably spend 15 seconds on it. Because everybody will know it." If one of those is wrong, it really, really helps me avoid a terrible lecture.

EW (00:50:50):

"Peer instruction" seems like a term.

CL (00:50:53):

Oh, yeah. It is. Sorry. It is created in physics education. What they do is you give people a multiple choice question, they answer it individually, then you have them discuss it, then they answer it in a group. It is quite common.

(00:51:09):

I am a little loosey-goosey with whether I do each of the steps in all the times. I am using a little polling software, so I can see, "Oh, within ten seconds of me putting this question on the board, 90% of my students answered correctly." I am not going to force them to discuss it. Let me try not to waste their time.

CW (00:51:34):

Right, right.

CL (00:51:34):

So I do not use it in the rigid way that it is that capital "P," capital "I," "Peer Instruction" is. But yeah, sorry, a little lingo.

EW (00:51:44):

Christopher is pointing out to me that I keep saying, "Pure," P, U, R, E, and you keep saying P, E, E, R.

CL (00:51:50):

Yeah.

EW (00:51:50):

"Peers," like colleagues, not "pure," like innocent.

CL (00:51:57):

Yeah. Yeah.

EW (00:51:59):

Okay. Okay. Moving on. "Peer instruction," that I actually do understand. I have heard that <laugh>.

CL (00:52:06):

<laugh>

CW (00:52:09):

"Pure instruction" is where it is instruction that you got to fill in yourself, like a pure virtual phone? Never mind.

CL (00:52:15):

<laugh>

EW (00:52:17):

Oh, I see.

CW (00:52:20):

Object-oriented humor. <laugh>

EW (00:52:23):

How do you get people to like computer science? And this is-

CW (00:52:27):

And why would you do that? Sorry. <laugh>

CL (00:52:28):

<laugh>

EW (00:52:29):

Why would you do that to them? Actually, this is a multi-part question, because when we say, "Like computer science," as a tool, as a career, as an academic field of research? I think first, since you were talking about high school students, it is getting people to like computer science as a tool. Is that valid?

CL (00:52:52):

Yeah. I think that everyone deserves to understand how the computational world around them works. I am a big advocate for- I think you cannot understand how to interact online privately, interact online securely, and understand the ways in which companies and the government collect data about you, if you do not understand conditionals and loops.

(00:53:16):

I think everybody deserves to understand a little bit about the internet, so that they can adult. A little bit about computer science, so that they can adult. I really bristle at computer scientists who are like, "Everyone should learn computer science, because computer scientists are the only ones who think logically." I am like, "What?"

EW (00:53:38):

Ow.

CW (00:53:39):

Excuse me?

EW (00:53:39):

No, send those people to me.

CL (00:53:41):

People literally say that, though.

CW (00:53:42):

As a math major, I find that offensive.

CL (00:53:45):

<laugh> It is offensive to everybody. I think there is so much colonial energy in the computer science community that I think, "Oh, I think this knowledge is helpful for adulting." And then secondarily, I think we have a lot of stereotypes about who does computer science, who can be good at computer science, who is likely to be interested in computer science.

(00:54:11):

I think that those stereotypes are bad, and exclude people from already marginalized groups. And so I think it is really important to try to dismantle those stereotypes and encourage people to try it. Particularly if they are stereotyped as not being likely to be successful or interested or commonly participate.

(00:54:30):

Does everyone need to love computer science? No. People can have different passions. I go to the doctor and I am like, "Wow. I can imagine no job that I would hate more than being a medical doctor." We do not all have to the same things, but I do want students to think that, "Oh, that is a path that they could take. And that interest in computer science is not innate. It is something that can be developed."

EW (00:55:00):

Why is it important for there to be more diversity in computer science? Am I really going to ask that question? Yeah, I guess I am. Go ahead.

CL (00:55:10):

Yeah, a lot of my research relates to broadening participation in computing. I think about it from a justice lens, of it is wrong that we have all these barriers that exclude. And exclude through harassment, exclude through limited opportunities, et cetera. I think it is unjust, our current system. So I think we need to make a more just system, where everyone has equitable access to computer science learning opportunities.

(00:55:40):

Then within computer science specifically- You know how people talk about, "Oh, if there were a woman in the room, there were a woman engineer on the team, they would not have made that mistake." I think that is a little bit naive.

(00:56:06):

I think of the example of seat belts and car crash test dummies. They used to use crash test dummies that were all different sizes. Then they created much more sophisticated crash test dummies that had a ton of sensors in them, were very, very expensive to produce and design. So they started using only one crash test dummy size, which was the size of the median American man.

(00:56:33):

Do I think that any of the engineers did not know that people come in different sizes? That people have boobs? I think they all knew that. But I think that the people who were deciding whose lives were valued, they decided that there was only going to be one crash test dummy.

(00:56:55):

Often I get really frustrated when we think about my little mutters that we were sending out into the world being like, "Oh, and then they are going to go into these tech workplaces, and make them less sexist and racist." And I am like, "That is not their job. That is everybody's job."

(00:57:08):

I do not think we need people from marginalized communities in tech, so that they can do the heavy lift of making tech less racist and sexist and ableist. I think that we all need to do that. And then we benefit from the talent that we can recruit, et cetera.

EW (00:57:30):

And the viewpoints we did not expect. And the perspectives that they can bring us. And the markets they can bring us.

CL (00:57:40):

Yeah. We had a talk at Mudd from a trans faculty member who studies biology. On all the ways in which biology questions that were open to the possibility of something beyond a gender binary or a sex binary, has only been done by trans individuals. It is just like, "Oh, I think there is something to this."

(00:58:06):

Particularly in spaces where employees or people have a lot of autonomy of what questions we ask, might be fundamentally different based upon our perspective and our worldview.

(00:58:17):

If you are a random pregnant woman with boobs working at a seatbelt manufacturing company, you still might not have a lot of autonomy to decide whether or not there are crash test dummies that allow you to exist in a car with safety in mind. I do not know.

EW (00:58:40):

The engineer part of me totally understands. These crash test dummies started to get expensive, which means they needed to be manufactured in a central location, with regulated parts. They needed to be safety regulated, so you could not just change things willy-nilly, like they used to with the different sizes.

CL (00:58:59):

Yeah.

CW (00:59:00):

And somebody had a gigantic book of statistics, and they just pointed to the top of the normal distribution and said, "How about this?"

EW (00:59:06):

You needed an answer. You did not have time, money, or mental capacity, to deal with multiple answers.

CL (00:59:13):

There is also a reason why they did not pick the median American woman. Do you know what I mean?

CW (00:59:21):

Yeah. Yeah <sigh>. I think your point of putting the onus on people, that the people in marginalized communities to stand up for themselves and fix everything, is insane! Literally, it is just another form of discrimination, right?

(00:59:39):

It is like, "Well, we have now trained you. Here are all the problems that we have caused. Get yourself into a company, and go fix- Go fix Apple or whatever." The giant company that is going to grind you to dust in ten minutes.

CL (00:59:55):

Yeah. Exactly.

EW (00:59:56):

Not only do we want you to do this job, which we have told you is hard-

CW (01:00:00):

Be the savior of your community.

EW (01:00:02):

Yes.

CW (01:00:03):

Yeah, that is fine.

EW (01:00:04):

While everybody else is trying to ignore that, because it is inconvenient.

CL (01:00:09):

I think you see that a lot in academia, with faculty from marginalized communities. They come in and everyone is like, "Oh my gosh. We are so glad you are here. Mentor these 30 people, and-"

CW (01:00:21):

Our problems are solved!

CL (01:00:23):

Right. Create this institutional change. And then at the end of six years, they are like, "Sorry, you did not get tenure. You just did not do enough research." It is just like, "I did what you asked me to do." I think that happens more often than we would like. And so I do not know exactly what that looks like in industry, but I do not support it.

EW (01:00:42):

Like that. It looks like that.

CL (01:00:44):

Yeah.

EW (01:00:47):

"I am sorry you did not accomplish your technical goals-"

CW (01:00:50):

"And therefore we cannot promote you."

EW (01:00:51):

Yes.

CL (01:00:51):

<sigh>

CW (01:00:51):

Anyway, I am not going to bring up ChatGPT and LLMs now, because I do not want to.

CL (01:00:58):

<laugh> Right.

EW (01:01:02):

Colleen, what would you wish you could tell early career you?

CL (01:01:08):

In grad school, I started giving myself stickers for doing work, and it has been a life changer. I used to sit down and do some work, and then not accomplish anything. Then I would say mean things to myself, about how I was never going to finish my dissertation, or whatever. "Stop wasting time like this. You are lazy."

(01:01:28):

Now when I do work and have accomplished some delta or epsilon of work, or maybe even nothing, maybe I have just thrown away stuff. I give myself a sticker for every 45 minutes and I think, "Yeah. Good job, Colleen." I could have started that sooner.

EW (01:01:48):

What do you do with the stickers? Do they go in a book?

CL (01:01:51):

Every week has its own eight and a half by 11 piece of paper, organized by the project. And then I save them forever. I just have a whole box of old sheets with my stickers.

EW (01:02:05):

Do you get different stickers, or are they all gold stars?

CL (01:02:10):

Thank you for asking. You are just being kind.

CW (01:02:14):

Oh, no.

EW (01:02:14):

Oh, no. I am-

CW (01:02:14):

I assure you she is not.

EW (01:02:15):

<laugh>

CL (01:02:17):

Every day-

EW (01:02:18):

I am planning my sticker collection.

CL (01:02:20):

She wants to know exactly what you are into. <laugh>

(01:02:22):

Yeah. I use rainbow colored stickers. Monday I can earn red stickers, and Tuesday I earn orange stickers. I have a Google Doc that has the minutes not above 45 minutes, that I have earned on particular projects.

CW (01:02:38):

Ahh.

CL (01:02:39):

When I get over the 45 minutes mark on a particular day of the week, I get that sticker. It really adds a lot of value in my life.

EW (01:02:48):

I got these little stickers that are apparently to use with day planners. It was not why I got them, but now I am tempted to get a day planner so I can give myself <laugh> stickers.

CL (01:02:59):

I think you could just take out a post-it note and give yourself stickers.

EW (01:03:04):

I would feel terrible throwing it away.

CL (01:03:06):

Yeah. Okay. Then save them forever. Maybe. <laugh>

EW (01:03:10):

Exactly. <laugh>

CL (01:03:10):

<laugh> It is a slippery slope.

EW (01:03:11):

I think I need to save it forever.

CL (01:03:15):

I do not know what to do to help you there.

EW (01:03:18):

Do you have any thoughts you would like to leave us with?

CL (01:03:22):

Maybe one of your listeners will make a thing that I want to exist, come into existence. So at one point my Mom was using oxygen and also was using a wheelchair or a walker. You really worry about rolling over the oxygen tubing with the wheelchair.

(01:03:40):

So I bought online some industrial cord wrap, and I wrapped it around the oxygen tubing, and so then you could roll over it. It was such a game changer in their household, and I think that this should exist. It took me about two hours to wrap one 50 foot piece of oxygen tubing.

(01:04:02):

I would like some entrepreneur who is listening to this podcast, to email me. I will send them the links to the cord wrap that I purchased. I would like them to make it commercially available. That is my request. I need no credit. I just think this should exist.

EW (01:04:19):

Yeah, that is not a singular type of that problem.

(01:04:21):

Our guest has been Colleen Lewis, Associate Professor of Computer Science at University of Illinois, Urbana-Champaign.

CW (01:04:32):

Thanks, Colleen.

CL (01:04:32):

Thanks so much. This was a lot of fun.

EW (01:04:36):

Thank you to Christopher for producing and co-hosting. Thank you to our Patreon listener Slack group for their support. Thank you to Memfault for their sponsorship. We really appreciate it. And of course, thank you for listening. You can always contact us at show@embedded.fm or hit the contact link on embedded.fm.

(01:04:54):

Now a quote to leave you with, by Christa McAuliffe, “I touch the future. I teach.”