Loving your child's mind: Computational thinking and flow states

Michael Strong and student Alana explore computational thinking, a problem-solving method that breaks complex tasks into explicit steps. They use making a peanut-butter-and-jelly sandwich as an example, showing how computers need every micro-action spelled out. They also discuss flow states, where intense focus makes you lose awareness of everything else, and how both modes of thinking serve different purposes.
Chapters
Very well. So first, any updates on Socratic Humanities?
Yeah, we're working on— sorry, we're working on our personal project. I'm enjoying that a lot. And then we're also— we were more focused on reading our novel this week, which I found very fun because I love novels. I am enjoying it a lot.
What is your personal project first?
Uh, well, our personal projects just in general, I'll talk about mine after this, um, is basically just something you can work on, but it does have to include some type of writing. Um, I decided to— I don't know if I mentioned this last Saturday or Sunday, but I decided to, um, go to— go down to my neighbor. Her name is Stella. She was a Disney editor. Yeah, she is 90 years old. She's from England. And I asked her to tell me a story. And I just— and I recorded it. And I am— I'm about a page in, I think. I've been thinking about it and working on it slowly. Because we have— we have a few more weeks. Yeah. And I'm gonna— I started working on some illustrations. And yeah, that's my project. I'm working on story and drawings.
How about novel? What novel are you reading?
We are reading A Wizard of Earthsea by Ursula Le Guin, and I looked it up on Google and reading all of those bad reviews made me sick to my stomach because they are certainly bad readers because I love the book.
Oh, I don't— I didn't know it had bad reviews. What are people complaining about?
It doesn't have much context, or not very. I mean, it's just one part, then another part, then another part, and then the book is done. Bad stars, waste of money, blah blah blah, horrible.
Wow.
They just need to stick it in more. I know, it's horrible.
Did you think of writing a good review yourself? I—
yes, but I am going to. But I just want to finish the book first.
Of course, of course, of course. No, I think it's always good. One of the great things about writing reviews on Amazon is it is public. In a way, it's a way for you to publish your writing to the broad public because anybody who lands there could read your review. So I think anytime there's a book, especially if I would say those are unjust reviews, you know, if you think the book is not getting the credit it deserves, Alana to the rescue. You can go and write a review and, you know, tell them how they should be seeing it and understanding it. Sound good?
Yes.
Very cool. And how's Python coming?
It's going good. We have leveled up and we're on a different level now. I think I'm enjoying it a lot and it's supplementing just in general a lot. I'm learning a lot more.
Got it. And are all of you— when you say you level up, are all the students more or less at the same level in terms of where you are?
Um, our— my normal classmate who comes, uh, who is there almost every day, she should be on my level, uh, or close to it anyways.
Yeah.
Um, we do have another classmate who is a bit ahead of us. We don't see her often. But yeah, that's where we all are.
Okay, cool. Well, I was gonna look at computational thinking. Have you ever heard of computational thinking?
No.
Okay, so I put a paragraph in there on computational thinking. You wanna read it or do you want me to read it?
I'll read it. Computational thinking, CT, is a, is a problem-solving technique that imitates the process computer programmers go through when writing computer programs and algorithms. This process requires programmers to break down complex problems and scenarios into bite-sized pieces that can be fully understood in order to then develop solutions that are clear to both computers and humans. So, like programmers, those who apply computational thinking techniques will break down problems into smaller, simpler fragments and then outline solutions to address each problem in terms that any person can comprehend.
Does that make sense?
I think it does. Could you give me an example though? Of when I could use computational thinking?
Yeah, so an example, I think I mentioned this in the past, but sometimes I've heard of situations where when people are applying to jobs as software programmers, software developers, coders, sometimes they'll be asked, explain how to make a peanut butter and jelly sandwich. And in one way, that sounds easy, but in another, when you realize, you know, I expect you're used to programming computers enough, you know that you can't just say, Python, make a peanut butter and jelly sandwich. That is, it has to be broken up into lots and lots of little parts. Does that make sense?
Got it. Yes.
So let's play around with this example. If you were to— and let's assume that your Python program has hands so it can pick up a knife and a slice of bread and open up the jelly jar and all of that. How would you break up the problem of making a peanut butter and jelly sandwich so that a computer could understand it.
Okay, go into your kitchen, open up your refrigerator, take out the peanut butter and the jelly— any type of jelly, I guess it doesn't really matter. Um, now put it on the counter, get 2 slices of bread Take, uh, or put your hand on the peanut butter top, twist it, then take the top off. Do the same for the jelly or something like that. And then take out a butter knife, put the sharp part of the butter knife into the peanut butter, stir it over. I mean, this is one way you could do it, just if you had no idea. Stir it around, then take it back out and put the pointy end onto the bread and rub your hand— rub the knife on it back and forth. I don't know. Make sure you get all of the peanut butter onto the bread. And then do that for the jelly. I'll just say it. Open— I think I already said open the jelly. Stick the peanut butter— or the butter knife into the jelly. Stick the pointy part into the jelly. Then swirl it around Take it out, put the pointy part on the bread, rub it, make sure you get all of the jelly off, and then take it off. Now put the other slice of bread on top of the other. I guess I don't, I don't know if that's too, not, or not specific enough, but so that was a fun start.
It's a fun start. So the way I think of computers is that they are really stupid, and so You probably had enough experience where you thought you put enough steps in and you were missing a step and the computer couldn't figure it out. So I don't think I— you said get the bread, but I don't think you told it where to get the bread. And, you know, especially different places. Yeah. And then, you know, how to get the bread. So you think of get the bread. And so does it just put the loaf of bread on the counter and then it spreads the peanut butter and jelly over the top of the bread loaf?
I did say take 2 pieces of bread.
Okay, fair enough, fair enough. But it— how does it know? How does it know how to open up the plastic thing? Does it know how to put its hand in? You know, all of that. The other thing is when you said, you know, take the knife and then spread it around or stir it around, I could imagine a stupid computer grabbing the knife with peanut butter, putting it pointy side in, and totally ripping the bread to shreds. That is, it's critical, right, that, you know, you gently fold it flat side across the peanut butter, so you're not mangling the bread, not stabbing the bread. So, you know, these are the kinds of things, but this is— so you wanted an example. I would say this is an example of computational thinking. You have to break up everything into tiny tiny bits. The other thing is you didn't tell it, you said spread the bread on the slice, but is it just a corner? I mean, ultimately you'd have to explain what is the perimeter of the bread and how the, I mean, ideally we want it spread evenly across the perimeter of the bread, right? It's actually pretty tricky to get that right. And then even when you put it together, you need to make sure the peanut butter side is facing the jelly side. And so it's not, you know, stacked the other way. It'd be a disaster if we put it together and, you know, it was blank side and the peanut butter and jelly sticking out. So, you know, the way I think about these things is in our minds, we try to figure out every way we were not as explicit as possible so that every way the computer could misunderstand us. Makes sense?
Yes.
And that way, you know, when you're doing code, it'll, it'll say, it'll tell you if you have an error, right? You've gotten far enough along that sometimes it says this doesn't work or whatever. And, and also if you just are looking for a certain answer and it gives you the wrong answer, then you know, whoops, I didn't explain it right. So yeah, to go through this definition, Computational thinking is a problem-solving technique that imitates the process computers, programmers go through when writing computer programs and algorithms. So in this peanut butter and jelly example, we didn't actually make a peanut butter and jelly sandwich, but in our minds, we imitated the process or tried to imitate the process computers go through when they, when they solve a problem. And you see, we have to break down the next sentence. Requires programmers to break down complex problems and scenarios into bite-sized pieces, you know, no pun intended since we were doing a peanut butter and jelly sandwich, that can be fully understood. And I'm sure we'd have to break it down into even more bite-sized pieces, you know, for a computer to understand. Trying to think how else could it— I mean, ultimately, we may want to put the peanut butter and jelly jar back into the fridge. We might want to put the peanut butter and jelly sandwich onto a plate, in which case we'd need to get a plate. You know, I bet you can walk into your kitchen and make a peanut butter and jelly sandwich and almost not think about it. Is that true?
Um, yes, probably.
Yeah, but you see how to explain it to a computer? Um, you have to think of every little thing. Um, screwing the peanut butter— of course, the peanut butter lid needs to go in the peanut butter jar, and the jelly lid needs to go in the jelly jar. That's the sort of thing that's obvious to you and I, but the computer, huh, what? Unless you tell it explicitly, it doesn't get it. I'm trying to think of other examples. No, but you know, you were certainly headed in the right direction. It's just adding things, adding detail after detail after detail to get things right. Do you think it's a useful way to think sometimes to learn to break problems down like that?
I think it is. You can use that in multiple different scenarios. I mean, if you were just trying to solve— I don't know, you were taking a test for school and you didn't understand a problem, or I don't know, and you just needed to understand it more, you could just break it down and then solve those little pieces first.
So for yourself, you, you could, you could learn to break things down, and you're saying that would help you on a test solve your own problems better, or math problems, or something like that.
Yes, that's one way.
Can you think of other use cases, ways in which it might be useful to use computational thinking?
I don't know if this is considered the same. Or similar to as the peanut butter and jelly, but following a recipe. Maybe you don't understand something, or maybe cooking something, learning how to do something, learning how to do a task. And if it's hard, you don't understand.
Actually, those are interesting examples because on the one hand, I think following a recipe, in a way, a recipe is a set of I'm going to make— it's almost like instructions for us. We're not quite computers, but sometimes if you don't follow a recipe exactly, it doesn't turn out well. Oh, whoops, I was supposed to stir the eggs and flour together before adding the milk or whatever. And so sometimes we have to learn to follow instructions better. Or if we're helping somebody else, we need to learn to write really clear instructions for them. And of course, full-on computer, you know, even following like a cake recipe, we'd have to tell it how to get the flour out and how to get the milk and eggs out and all of that, how to crack an egg, you know, what it means to stir an egg. So a recipe is sort of like a program, but for humans, we're so much smarter than computers, you know, pretty easy to do it. I think that's a great analogy that, A recipe is sort of one, sort of like computational thinking, but then a computer version of it would have to be just way more detailed.
Yeah.
Have you ever had to explain something to someone else where you had to kind of make it more detailed and break it into smaller parts?
I'm sure I have. I mean, maybe if it's just for learning how to play a game or something. I've probably done— I know I've done more specific things than that. I can't think of the exact examples off the top of my head.
I can imagine, you know, explaining to somebody how to play a game might be a good example. And one of the things I often find is that we take so much for granted in our own worldview that, you know, a lot of things are obvious to us and Yeah, even to explain things like rules of a game to somebody else. I imagine that sometimes you thought you had explained all the rules and you forgot and had to add a few more rules. Does that sound likely?
Yes, that's happened to me before.
Yeah. So in a lot of ways, I think it's useful whether we're programming computers or even just explaining to other human beings how to learn to break things up into exact steps of instructions. 'Cause computers just follow instructions blindly. And in some ways, I think the thing about computers, because they follow them blindly, we know we have to spell everything out. Whereas I think sometimes with humans, we assume they'll just get it. And sometimes they do, and sometimes they don't. But yeah, it might be an interesting exercise to write things down. You know, as you program more, you might think of problems like that of, Could I, could I teach a computer to play chess, or could I teach a computer to bake a cake and try to think through all the steps that would be required? And I think it helps you understand how you do things as well, because does it make sense we do a lot of things intuitively without even knowing we're doing them?
I think so. Yes. If you've just done them so much, doing them, doing it subconsciously, if that's what you mean.
Exactly. Have you ever been walking around and doing something and you not even— you only realize, oh, I'm in the middle of doing this? That is, you weren't even quite aware of what you were doing?
Sometimes, just, I guess this isn't exactly taking a walk, but most of the time when I read, I usually get lost in the book and then when someone talks to me, I don't hear them. Yeah, or hear them. I mean, it's subconscious. I do it without thinking. Turn off. I think that's one example that I could give you.
Yeah, no, that's great. And I love being so immersed in a book that I barely, barely hear people. And it's tricky. Sometimes I literally don't hear them. Sometimes I don't want to interrupt my engagement with the book. And so I kind of screen them out. And sometimes, I guess, if you're not sure if something's background noise or addressed to you and you're in a book, then— but it's the way I think of it is consciousness can be very focused. That is, when you're in a book like that, your consciousness is totally focused on kind of the reality within that book, and you kind of screen out all other phenomena. Does that sound right?
Yeah. Yes.
And I think you can Go ahead.
I'm sorry, I wasn't going to say anything.
Yeah, I know. I think even things like, trying to get another example, but I think sometimes when we're doing something that requires focus, you know, we can be so focused on, you know, doing something, maybe fixing something or building something or painting or drawing. Would you say you get that laser-like focus you get in a book when you're like writing or anything like that?
I think I notice it more while I'm reading, but I think it is possible that I could do that while I'm writing, especially something I'm really excited to write about.
Yeah, it's sometimes, and we, sometimes people call that a flow state when you are in such a creative mode that you don't know what else is going on. And again, it's like a book. It's sort of like, you know what's going on. And if there was a fire or something, you'd probably notice or smoke. But you do focus, your focus is sort of excluding some aspects of things you would otherwise notice. And I think it's really useful when your mind is super engaged because you're, yeah, you're making sense of a world and you're screening things out. Cool. So that's sort of different from computational thinking, but I was thinking it's sort of the opposite example. Computational thinking is becoming conscious of every step, whereas this flow state is where you're completely unaware of, of any kind of explicit things because you're just, you know, do you see why they call it flow? Does it make sense to call it flow? Okay. All right, cool. In which case, have a wonderful week and I'll see you next week.
Thank you, Michael. See you next week.
Bye-bye.










