Hacker News new | past | comments | ask | show | jobs | submit login
Alligator Eggs (worrydream.com)
158 points by jmduke on Jan 18, 2015 | hide | past | favorite | 24 comments



Serious question: Has anyone tried this out on actual children? How did it go? Maybe children can more easily accommodate the number of arbitrary elements and rules the game requires, because as an adult, I find the alligator motif actively confusing.

Using concrete names, people, chocolates rather than abstractions usually helps a lot in teaching, because it leverages existing mental models and reduces the cognitive burden of tracking abstract tokens and behaviours. In this case, the alligators and their eggs behave so differently from anything familiar (egg hatching to whatever the parent ate?!) that I find the cognitive burden increases to the point of giving up. IMHO, for adults, a straight-up explanation with abstract symbols would actually be easier to comprehend.


I've been playing through Light Bot with our 7 year old. I always like when he gets to the levels where he needs to use functions, because he's learning about programming without even knowing it. He doesn't try to discern deeper meaning, he just enjoys playing the game and making the tiles light up. [1]

If you can make learning enjoyable, then the cognitive burden can be quite high, so long as the kid has fun with it.

It's the same with Settlers of Catan, supposedly a game for 10 years up. Our 7 and 9 year olds are doing just fine with it, picking up the strategy about as fast as I am, because it's fun!

The thing I'd not be sure of with the alligator game is whether kids actually find something like that fun... that's the real question in my mind. :)

[1] http://armorgames.com/play/2205/light-bot


> In this case, the alligators and their eggs behave so differently from anything familiar (egg hatching to whatever the parent ate?!) that I find the cognitive burden increases to the point of giving up.

I imagine, in this case, it's because us adults are (a) trying to figure out what exactly (what computing concept) Bret is trying to explain while we come across each rule and (b) trying to find logical explanations for everything. Children are not burdened with these things, and I'm guessing would have no problem going along with eggs that hatch into whatever their parent ate.

Personally, I think it's really cool. Real-life play-testing definitely required though!


I think I agree with the GP. I just tried to explain this to my 5 y/o (admittedly she is possibly too young).

Questions I faced:

"Which alligator is the mummy?"

"Why does the alligator want to eat the other one? Don't alligators eat people?"

"Where is the pink alligator?"

"When the egg hatches will it be a boy or a girl? Because I don't like boy alligators."

We had a lot of fun, but it didn't come anywhere close to achieving any kind of stealth learning outcomes, which seems to be its intention.


We tried it on CS students. Anecdotal evidence says some more easily understood the traditional math. Others understood the alligator approach first.


The man it was made for tried it with his daughter: http://wadler.blogspot.com/2007/05/oh-no-alligators.html


I don't like this alligator analogy because it relies on magic. Whenever an alligator eats it transforms its eggs by no obvious mechanism. If some abstract mechanism is unintuitive then I don't see how decorating it with superficial real life analogies makes it any easier to understand. The unintuitive behavior is still there. At least draw attention to it by making the alligators wizards or something.


Good idea: express complex concepts in simple forms that children understand: multicoloured alligators that die when they eat other alligators or alligator eggs and then the eggs that they previously laid hatch, resulting in alligators that are the same color as the...

Wait I'll start again...


Seems fairly complex still. Not completely sure this makes it more understandable. But maybe that wasn't the point?


We need to have discussions on how to explain complex things in simple ways, e.g. to kids. Not every contribution to such discussion will be effective, or even complete, but it can still build up to some progress later on.


I, too, did not find this very understandable when I was trying to learn Lambda Calculus for the first time. Even now, it is still quite baffling how alligators eating aligators makes more intuitive sense than the regular notation (well, at least it's recursive). In the end, I was only really able to grasp Lambda Calculus from reading a hard book.


Frankly, I think the best way to learn lambda calculus is by writing code in Scheme or Common Lisp or some other language with a nearly one-to-one mapping between the language's syntax and semantics and what lambda calculus has. Learn by doing, in other words, and introduce hard concepts using code.

Yes, that's SICP. It's pretty much inevitable that book would get mentioned here, because there's a whole group of people (not everyone) who learn best when they learn by doing, and SICP is the paradigmatic contribution of the learn-by-doing school to this topic.

My point is, maybe this alligator stuff could be made into a game and people could learn by playing. That's a well-verified method.


"Do some arbitrary stuff, that doesn't make any sense as an analogy. Oh, look! You just learned the lambda calculus!"

Is this an art project satirising computer science?


Previous discussions (I wish HN did this automatically):

https://news.ycombinator.com/item?id=4586692 https://news.ycombinator.com/item?id=600736

Related: "To Dissect a Mockingbird" http://dkeenan.com/Lambda/index.htm

(also previously discussed on HN: https://news.ycombinator.com/item?id=7684210)


When I first discovered this, I found all this bafflegab about alligators and eggs only served to confuse the issue. If you understand that a lambda expression is a rule for generating expressions which, when applied to a value, substitutes the value for the lambda variable, that is sufficient to have an intuitive grasp of what LC is all about.


I'm left wondering if anyone has made an app out of this, to obviate the need to print things and as well provide an onboard means of educating the user how the game works. This is still quite a complicated concept and I can't say I understand it better just because I've got toy alligators all over the place .. but with an app it could be a bit more intuitive. That in itself might be an interesting exercise ..



Play store says it is not compatible with any devices


Thanks for that - checking it out now.


What is the purpose of learning/teaching lambda calculus? I get that it's cool. In what ways it is an important or useful concept?


It's a model of programming. Rather, it's a remarkably simple model of programming. Any language could be interpreted [0] into it and thus its behavior is important for the comprehension of what "programming" means.

But that's a bit weak. There are tons of models which achieve these properties. Turing Machines are popular. Why lambda calculus?

One answer is that LC is easily augmented with things like simple types or System F types or Dependent Types to introduce the entire space of nice type systems that people are beginning to really enjoy these days.

A better answer is that LC is essentially nothing more or less than a minimal description of what a "name" means. LC provides the simplest, best notion of variable yet imagined and its influence strikes every time you use one in any language (programmatic, logical, mathematical, human).

This isn't the only way to go (for instance, the SKI calculus is equally powerful as LC, but manages to avoid all naming) but it's a remarkably powerful one which has, if popularity is any metric, been completely dominant throughout the entire history of languages.

So, studying LC is a good way to learn about all that.

[0] Side effects would have to be modeled "in universe", but the principle stands.


It's a simplified version of, basically[0], programming, in which it's easier to prove things. The same as any other piece of abstract math, really.

[0] I'm waffling because I'm not 100% sure of the exact relationship or whether it's well-defined, but it's a close enough comparison.


Rather a simplified version of computing. Programming to me necessarily includes making machines do things.


Somehow lambda calculus/fp community has no end of embarrassing produce - be it books, pictures and now images.

Something about pure lack of self-criticism perhaps.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: