←back to thread

359 points FromTheArchives | 8 comments | | HN request time: 0s | source | bottom
Show context
Imnimo ◴[] No.45293673[source]
I looked at the example for computer science basics for a 7th grader interested in food. Explanations include:

"a list can be used for a recipe"

"a set can be used to list all the unique ingredients you need to buy for a week's meals"

"a map can be used for a cookbook"

"a priority queue can be used to manage orders in a busy restaurant kitchen"

"a food-pairing graph can show which ingredients taste good together"

Maybe I'm over-estimating the taste of 7th graders, but I feel like I would get sick of this really quickly.

replies(12): >>45293709 #>>45293849 #>>45294241 #>>45294326 #>>45295433 #>>45295632 #>>45295729 #>>45295945 #>>45296066 #>>45297739 #>>45300529 #>>45301902 #
1. raincole ◴[] No.45295729[source]
> "a list can be used for a recipe"

I don't even know what it means, tbh. I feel it's going to confuse the hell out of 7th graders.

replies(1): >>45295753 #
2. kccqzy ◴[] No.45295753[source]
How is that difficult to understand? A recipe is an ordered list of steps of what to do. So of course a list can be used for a recipe.

I personally prefer a serious text without bringing in unrelated concepts like food, but this is still understandable.

replies(5): >>45296311 #>>45296696 #>>45297063 #>>45297726 #>>45301823 #
3. non_aligned ◴[] No.45296311[source]
I think it's just clunky, like "a pencil can be used for a recipe". My first take is "wait, are we cooking a pencil? or stirring with it?"

The first meaning of "use for a recipe" is "use as an ingredient."

But then, it's a pretty weird thing to explain to begin with, approximately every human on the planet knows what the word "list" means. So what does this pseudo-definition add?

replies(1): >>45299047 #
4. layer8 ◴[] No.45296696[source]
You have to already have a good understanding of the concept that is meant by “list” here, in order to make sense of that sentence. And even then it might not be clear that the list would be used to represent the recipe.

This does almost nothing to explain what a “list” is in the CS sense. Teaching material needs to show how a list could be used for a recipe, and from that the student might begin to form a first incomplete understanding of what a “list” is.

5. qingcharles ◴[] No.45297063[source]
I read it fine, but it would have been clearer as:

- a list can be used for the steps of a recipe

6. raincole ◴[] No.45297726[source]
Uh, exactly. See how you describe the same concept:

> A recipe is an ordered list of steps of what to do

Understandable.

> a list can be used for a recipe

Not so much.

Moreover, a recipe usually at least consists of two parts, ingredients and steps.

"pierogi_recipe": { ingredients: Set<(Item, Quantity)>, steps: List<Step> }

So the analogy kinda muddies the waters.

7. a96 ◴[] No.45299047{3}[source]
Well, this list (heh) was cs concepts or data structures. Most humans on the planet definitely don't know what a linked list is or how it's used, let alone how it's implemented. The cooking analogy is trying to bridge that gap a little.

I don't think it's good either. You'll mostly get the meaning if you already knew it.

8. legacynl ◴[] No.45301823[source]
> A recipe is an ordered list of steps of what to do. So of course a list can be used for a recipe.

That you felt you need to add 'ordered ... of steps of what to do' to your definition of list, kind of proofs that a recipe is a bad analogy for a list.

A recipe contains multiple lists, has a name, has a purpose and a desired outcome. Totally different from a simple list. But a kid who's unfamiliar with the programming concept of 'list' doesn't know that, so it's very possible that at some point they will get confused when a list can't do things that a recipe can do.