Preparing 10 year old Alana for Harvard CS50

A mentor guides 10-year-old Alana through her transition from Scratch to C in Harvard's CS50 course. They compare programming languages to human languages like Spanish and Hawaiian, showing how the same logical structures like variables and loops appear across different syntaxes. Alana's experience learning Spanish through immersion helps her understand that new languages are just different ways to express familiar ideas.
Chapters
Yeah, I will email you the accurate link. Your dad just sent me your email address. So after this, I'll send you the right link so we have it. So are you still moving forward with Harvard CS50?
I am. I've been a bit slow on it, though. But this week, I will be very active on it.
OK, well— It's summer, you know, you deserve to take it easy during summer. Are you— I know I just looked at it and there's a Lesson 0 on Scratch and a Lesson 1 on C. Are you on Lesson 0 with Scratch or did you get to Lesson 1 on C?
I'm just finishing up my project on Lesson 0.
With Scratch?
Yes.
Got it, got it. To know that you— and first of all, is the project hard or not too hard?
Well, it's not too hard. You have to create something in Scratch that are within a few requirements.
Got it.
Yeah.
And you've done earlier projects in Scratch, and this is not too much harder than earlier projects?
Yeah, I took a course on Scratch a few years ago, so I'm familiar with most of it.
Got it. And then now that you know Python and you know Scratch, so next week you'll get into C, but I thought given that you know two programming languages, Scratch and Python, how are they similar to each other and how are they different from each other?
Well, Scratch has a lot of the same things as, or attributes as Python. It's just hard-coded into blocks that you can move around easily. You don't have to type anything in. You just make— there might have— you might have to just create an input or something, fill in the blanks, just some blocks. Like if you're going to have your sprite say something, you need to tell it what it's going to say. It has variables, functions, moving, because most of the time you move sprites, which are the actors. That, yeah, and it has— I mean, some of it's different. Some of it I haven't really done in actual Python, but most of the basics are very similar.
Would you say that in general, there's kind of an abstract structure, a background structure that is mostly similar, and then the kind of way it looks up front is more different? Does that kind of abstract in the background and upfront make distinction make sense?
What do you mean in the background?
Good question. I didn't know if that was the best way to say it. What I'm thinking of is I have— I've looked at Scratch many years ago, so my Scratch familiarity is not very good. But I, for instance, I think of most programming languages often have some kind of if-then structure or loops. Do both Scratch and Python have if-then and loops?
Yes, they do.
So that's what I'm thinking of in terms of abstract.
They do.
And I'm saying, I'm saying abstract because presumably, especially because Scratch has a visual language, the way it looks to do if-then in Python and Scratch kind of looks different on the front. But kind of the logic in the background is very similar. Does that make sense?
Yes.
So that's why I think, and I think actually realizing that there are logical similarities in the background, I think of programming and computation as about those abstract structures. And as you learn different languages, The front end may be different and you may have to, there's syntax. So how do you organize the Python language? You know, there are certain things you can and cannot do in the Python language in terms of how you organize it. But the goal is to have this, the logic of the programming work, and then you just have to learn the details of the syntax for Python. Does that make sense?
Yes, it does.
Are there any— because I don't know Scratch— are there any differences that you can perceive in the kind of abstract structure of Scratch versus Python? Or as far as you know, do they seem pretty similar?
I mean, they're pretty similar, except, I mean, in Scratch, there's no really formatted text area, so you can place different chunks of code. Wherever you want. It's not very organized that way, but you do have to arrange the blocks in a similar order if you want to connect them as to Python.
Got it. Got it. This may sound like a strange analogy, but now I'm thinking, you know, you also know 3 human languages, you know, English, French, not French, English, Spanish, and a little bit of Portuguese. Do you think that human languages in some ways have a similar kind of abstract structure, even though their words are all different?
Yes.
And then the question is, yeah, what is that? So, I mean, the grammar, just because I know Spanish and I don't know Portuguese, The grammar can— words are arranged differently. So if I say, let's see, I'm thinking of a good example, but if I say a blue rose, a blue rose, that's ridiculous. Well, una rosa azul. In English, you put the adjective before the noun. I see a blue rose. Whereas in Spanish, you put the in Rosa Asul, the noun first and then the adjective afterwards. Is that correct?
I think so, yes.
So, and then we get into what counts as abstract structure, because I know I, my intuition kind of agrees with you that just like computer languages share some kind of abstract structure, I guess the question is, does it make a difference Do we want to say that Spanish and English are pretty different or pretty similar, even if the words are different and the order of the words are different? Are they still pretty similar in their structure, even if the order of the words is different?
Yeah, I think they're similar and different in both ways. Sometimes if the words are sort of matching English words and somebody who doesn't really know anything could like pick a sentence up. So it is similar, but in some ways different also.
How would you describe the ways in which Spanish and English are similar?
Well, There's different words, cognates, that makes Spanish words sort of sound English. And then using those words in the structure of a sentence, if you know some basic words, then you can piece together a sentence pretty easily.
So, um, would you say that the grammar of English— do you need to tell your dad something? I see you turning away. Do you need to pause and say something?
Uh, sort of. My connection is weird, so you're freezing a little at moments, and sometimes it's better when I use his Wi-Fi.
Got it.
It seems to be fine now, though.
Yeah. So would you say that in general, the way we make sentences is similar in Spanish and in English?
Yes.
And then what if— did you ever learn Spanish grammar? How much do you know about English grammar versus Spanish grammar?
Um, well, I mean, I know they're pretty similar. Um, do you mean like just structure of sentences or past tense or something like that?
Well, all of the above, but you know, that's why I took the very simple example of the order of nouns and adjectives are different in Spanish and English. But I'm trying to think, you know, There are two ways to learn a language. You can kind of in a school, often you learn the vocabulary and grammar, and then you try to speak it. Or if you just learn it through immersion, you just practice speaking it all the time and you kind of learn the grammar by osmosis. You know, you just sort of absorb it. And would you say that you spent more time learning Spanish by just practicing it or more time by studying it, studying the grammar and vocabulary.
Wait, can you say that again?
Yeah, what I'm saying is I, I've actually forgotten how you learned Spanish. And is it mostly through Duolingo, or did you have a class?
Mostly, mostly nowadays, because I used to be better at it than I am now when I was younger because I went to a Spanish immersion preschool, and I had a Spanish babysitter who would always speak to me. But then when I went into kindergarten, uh, there was no Spanish class. And, um, since I was at school, I started to not go to my babysitters so much, so I did kind of lose it.
Got it. So immersion, that's how we learn English, you know. Were raised in households where our parents were speaking English. Everybody around us was speaking English. So we, we didn't need to be taught English. We just absorbed it through environment. And it sounds like that's how you learned Spanish mostly or entirely, correct? Or have you, have you studied Spanish a little bit since then?
I have.
Duolingo?
Yeah, Duolingo and then some classes.
Okay. And do the— does Duolingo get into grammar at all, or is it just vocabulary?
Um, I don't think it emphasizes on grammar as much. It shows you sentences, and I, I think just by looking at those so much, you sort of get it.
Not at all. Yeah, yeah.
There's some instances where it gives you like a lesson, but it doesn't really like tell you this is how the sentence is. Always do it here or here.
Got it. And we're kind of jumping ahead, but, um, there is, there is a long conversation about, you know, how different languages are similar or different. And I think a long time ago you and I talked about how English and Spanish are— well, Spanish and Portuguese are very closely related. English and— they're both Romance languages, and then English, Spanish, and Portuguese are not so far apart. But like Hawaiian is completely different. And you know just a tiny bit of Hawaiian, correct?
Just a few words here and there. My dad knows more than me.
Yeah, I mean, at some point again, it might be interesting to learn because it's a very different grammar. And especially, you know, if you were ever to learn it, you'd have an example of a very different grammar. But what I'm thinking is that you know, next you are going to learn C, and in some ways C is going to have a whole different— in terms of computer languages, C is going to have a whole different set of, you know, commands. You'll have to learn different, you know, the language itself, the syntax. But insofar as you know Python and Scratch, I'm hoping that the general kind of logical structure of C will still be familiar. And I thought it might be interesting to kind of think about the general structure of programming languages versus the particular details of particular languages. And then think about two human languages. Do they have a general structure in common versus, you know, their obvious differences? Does that make sense?
Yes, it does.
And part of it is, I think we learn better when we recognize things that are familiar. So I think you'll learn C more easily if you see, oh, I see they're doing if-then statements and loops and conditionals, and I know all of this from Scratch and Python. And then you just have to, you know, figure out the kind of details of how C is expressed, and you don't kind of have to relearn all of the logical structure. And then just to continue the analogy with human languages, at least, you know, most human languages, you know, say I say I go to the store, yo voy a tienda, or yeah, you know, we can, yo voy a tienda is not quite right. Do you know how to say I go to the store? I think my grammar is wrong there in Spanish.
That would be the first thing that pops into my mind. I'm not sure I can look it up though.
Okay. Um, but anyway, my point is the structure is pretty similar, and even if it's not quite right, um, you know, I think most Spanish speakers could understand us, and I honestly don't know if it's quite right or not. And, and so as long as the basic structures are okay, um, you know, I think it's easier to learn something new, whereas I think, you know, with Hawaiian, you would learn just a completely new grammar Um, and someday, do you hope to learn Hawaiian someday?
Um, I'm— I mean, at least just a few sentences. Um, I don't— besides my dad and then I think sort of my grandpa, I don't really— I don't know anybody who speaks Hawaiian. I think I might be able to pick up a few from them.
Does your grandpa speak Hawaiian fluently?
No.
Okay.
No, he doesn't. But, um, like my dad, he probably knows a few words.
Okay. Well, um, yeah, in which case maybe it's not a project you'll do. But, um, yeah, at this point let's keep it short, but I want you to think about kind of the abstract structures that are similar across both computer languages and human languages, and then how the details are different. Does it make sense that that would make it easier to learn, say, a new computer language if you think of how some things are similar and some things are different?
Yes.
Okay, cool. Well, in which case, good luck on your Scratch project, and I look forward to hearing how the course on C goes. Okay? All right.
Thank you.
Welcome. Have a great week. Bye-bye.










