## Thursday, May 31, 2007

How do non-theorists view algorithms? If ask.com has its way they will associate algorithms with ask.com. Or they will associate ask.com with algorithms. There latest ad campaign seems to define algorithms to be search algorithms, which is even narrower than mine!. The company ask.com is bragging that their search engine uses an algorithm! Uh- we knew that. We also know that google and yahoo use algorithms! But apparently they don't use the algorithm.

I saw a billboard a few weeks ago which said
The Algorithm killed Jeeves.

Since I am a fan of of P.G. Wodehouse's fiction revolving around Jeeves and Bertie my curiosity was aroused. It turns out that this is ask.com's way of saying that they are changing their name from ask-jeeves to ask-the-algorithm (I'm not sure this is really their new name.) This is rather odd- you are supposed to kill the compeition, not your former selves.

This is only ask.com's second stupidest ad. The stupidest one is called the unabomber hates the algorithm What does this even mean? Nowadays most people have forgotten who the Unabomber is. But even if they know who he is, is the reasoning if a bad guy didn't like this product, then I should.'' ?
(Thanks to Paul Beame who send me this idea for a blog.)

1. But even if they know who he is, is the reasoning if a bad guy didn't like this product, then I should.'' ?

Well, as I understand it we're supposed to vote for Republicans because the terrorists prefer the Democrats :-P

2. Oh, but there are others (They've been around the billboards at BART stations for months). I think the worst so far is "The Algorithm Constantly Finds Jesus".

In a bit of SEO fun, the webcomic xkcd.com has also put this on their page: "We did not invent the algorithm. The algorithm consistently finds Jesus. The algorithm killed Jeeves.
The algorithm is banned in China. The algorithm is from Jersey. The algorithm constantly finds Jesus.
This is not the algorithm. This is close."

Which now causes xkcd.com to appear above ask.com on google searches for the slogans. ^_^

3. My take on this is completely different:

The ad campaign may be for Ask.com (and some of the billboards clearly are weird) but I expect that. at the end of it. people will remember the word "algorithm." (It is fun hearing TV sports announcers learning to pronounce the word in their sponsor spots.)

People might tend to associate "algorithm" too much with web search but at least this is something they find worthwhile, maybe even cool. I particularly like the TV spot where the kid asks his Dad whether the algorithm they use for search is a lame one like the one their neighbors use. The implication that algorithms can have properties like lameness or coolness is good for public education about our field.

4. The fact that students do not learn about algorithms and programming in primary school is rather sad actually.

How did that happen?

5. #4, are you on crack? While we're at it, should we teach them about transistors, Fourier transforms, and quantum mechanics.

6. It's probably easier to teach them about algorithms and programming than it is to teach them about reading and writing a natural language.

7. "...transistors, Fourier transforms, and quantum mechanics"

You need a more advanced math background than most primary schoolers can be expected to have to cover those things. On the other hand, not much background is needed for basic programming (and in fact, some young kids do learn to program, just not in school).

8. Something that is essentially formalized kin of kitchen recipes is hardly as difficult to introduce kids to as "...transistors, Fourier transforms, and quantum mechanics".

9. For years, I taught rather complicated skills to people with minimal, or no, literacy. This involved explaining the importance of doing something in such a way so the results could be duplicated multiple times. A lot of people, especially women who never finished high school and married young, could easily relate to the importance of learning to follow a recipe so you can get food on the table the whole family will eat, night after night. (I don't mean this as a sexist crack, but rather as an honest description of what actually produced "a-ha" moments.)

Often these people spoke no English, and could barely read in their native language. I think "average" people are smarter than many academics give them credit for. Just because you struggled through your Theory of Algorithms class, it does not follow that the basic concept of an algorithm or its importance in life is hard to describe. It only follows that *you* had a hard time with it.

For an everyday-experience-only description of Fast Fourier Transforms, check out Scott Aaronson's post "Shor, I'll Do It." Robin Blume-Kohout comments with another no-math explanation of FFT's. Both presentations are excellent, and neither author claims to use crack on a regular basis.

10. If you want to teach "average" people and young children about programming, it will help to raise the level of abstraction significantly.

Moreover, it would help if the programming language were to have common sense.

One way to accomplish this is to build a "human computer". In such a computer, programs are written in English and executed by people.

Such a human computer can be built with web 2.0 style collaboration and verification. Imagine something like wikipedia but where people focus on executing fragments of other people's high-level programs.

Sure, execution will be extremely slow. But it might be an interesting thing to try anyway.

11. Everyone take a deep breath, and chill out. "The algorithm" referred to by Ask (which they clarified in a full-page ad I saw on the San Jose Mercury News) is Jon Kleinberg's Hubs-and-Authorities algorithm, developed when Jon was at the IBM Almaden Res. Center (1996-97, I think).

So why is "the algorithm from Jersey", you ask? The hubs-and-authorities, aka, HITS algorithm, was the genesis of a research project called Clever at Almaden, and also of the commercial search engine Teoma, which was bought by AskJeeves (and which probably saved AskJeeves by killing the Jeeves part, and and switching to "the algorithm").

12. Haven't had my morning coffee, yet - forgot to mention the Jersey connection for Teoma. Teoma was the outcome of a Rutgers research project morphed into (see the same USA Today article I pointed to)...

In any case, why all the negativity about the ad? I thought it was quite cool the way these billboards had these cryptic messages that eventually got unraveled.

I must say I don't quite understand why "the algorithm is banned in China" and how the algorithm got attributed to the Garden State and not the wildflowers of Almaden.

13. Many non-computer scientist use "algorithm" and "computer program" interchangeably.

14. As a theoretical computer scientist, I would have to say that adding programming and algorithms to the curriculum for primary schoolers would be disastrous. You guys sound like those mathematicians who believe that we should be teaching children about set theory and proofs. Sorry to say, it just won't work!

15. To Anon#14:
Right, and you would know because you're a "theoretical compter scientist", and we should take your argument seriously because you have an exclamation point at the end of your sentence, as opposed to a clear argument supporting your belief.

Nobody that spends any amount of time thinking about these things seriously is proposing to include a full 5-hours-a-week course on algorithms/programming for fourth graders. If rudimentary algebra and probability can be taught at the fifth grade level, I don't see why elements of algorithms/programming can't be.

Group activities like sorting 30--50 students by height can be used to teach some ideas behind the various sorting algorithms. Solving several (large) instances of things like binary search in a group setting might be a fun exercise. Exercises in designing (small, 3-4 state) deterministic finite state automata (or even PDA's) is entirely doable at the fifth grade level as well. If you think concepts like a loop with a loop variable is too cumbersome/difficult to comprehend, one can always teach loops with constructs like "foreach member of set S do:" etc.

I am as skeptical of doing too much formalism at very young ages as you appear to be, but that does not mean there aren't creative ways to introduce powerful ideas. If you don't believe that algorithmic thinking is a truly fundamental, trainable skill (like probability and venn diagrams and such are), then I wonder why you're doing theoretical CS.

16. CS topics have been done successfully in elementary school. For example, see the following report by Mike Fellows.

17. As a theoretical computer scientist, I would have to say that adding... algorithms to the curriculum for primary schoolers would be disastrous.

Could Anons 4, 5 and 14 as well as Siv please explain what exactly they think the algorithm for multiplication from primary school is, if not, as hinted so delicately in its name an ALGORITHM????

Students cover algorithms in elementary school. According to people who do educational math this is a very important component of the math curriculum.

Now, me thinks that what they really meant by "algorithms/programming" is actually programming alone.

Would this be a good thing? Perhaps, so long as the language of choice is logo- or mindstorms-like (i.e. allowing the student to focus on the routines instead of the syntax).

18. As a follow up to the "human computer" suggestion, note that you can build this within the framework of human computation games such as the ESP Game.

In this case, each function described by high-level English along with the input can be viewed as a two-player game.

As with the ESP Game, when two players agree on the output, they would then move on to the next function (possibly from a different program).

Another possibility is to teach programming via Game Maker:

http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=1297314

19. You guys sound like those mathematicians who believe that we should be teaching children about set theory and proofs. Sorry to say, it just won't work!

Sorry, can you say why not? Rigorous mathematics is something I wish I'd been exposed to as a child. It's a subject area that builds a lot of critical thinking, and I don't know why my teachers never exposed it to me until college.

20. How I wish "theoretical computer scientist" simply meant "NOT the rude know-it-all D. Sivakumar" ..

21. #14 here. I am not saying that these topics should not be taught at a young age, but rather that it would be extremely difficult to add them to the curriculum to any significant degree. You all are being so defensive about this, it's almost childish. Didn't the failures of New Math teach you guys anything?

22. I agree strongly with #14.

#7: "You need a more advanced math background than most primary schoolers can be expected to have to cover those things. On the other hand, not much background is needed for basic programming (and in fact, some young kids do learn to program, just not in school)."

It isn't all that advanced. I think the limited time is better spent progressing towards learning that math. I don't see the point in learning toy algorithms prematurely, since unlike the math it doesn't lead into any progression.

23. Anonymous #5:

I guess you've never seen this paper:

http://arxiv.org/abs/quant-ph/0510032

You're never too young to be exposed to strongly compact closed categories.

Then again, maybe the author is on crack...

24. I agree with D. Sivakumar (15), also introducing earlier is good for the subject too, - (in terms of) both quality and quantity of future researchers

25. #22
Still algorithms can be taught as a part of mathematics.

26. I would like to publicly say that I have learned more from the comments of D. Sivakumar and Ken Regan than almost everyone else put together on this blog. #20: your comment was poor etiquette, at best, and I hope it does not discourage DS from continuing to post.

The posts and comments most valuable to me are those that follow scientific method -- conclusions drawn from facts and analysis. That is the algorithm :-) I try to use when I comment here, and I wish others used it more often, too.

27. I just read/skipped/slogged through "Kindergarten Quantum Mechanics"
http://arxiv.org/abs/quant-ph/0510032
referenced facetiously in a previous comment. Here are some completely raw observations on these lecture notes, which may help you decide whether you want to slog through it yourself:

- Pretty colors (especially when seen on a Mac ;-)
- The "picture calculus" does unify some concepts from linear algebra and QM in a nifty way, and for that it may have value as a mnemonic aid for people studying quantum information.
- Teach it to kindergarteners? No way. There's way too much complexity hidden behind the "simple" rules for manipulating the pictures.

There have been off-again/on-again arguements on the FOM (Foundations Of Math) list---and obviously other places---about how to teach math to youngsters. One particularly flame-scorched debate pitted proponents of category theory against those of the more traditional set theory.

28. #24, such an education would be great for those who will become researchers in the future, but unfortunately this set represents an extremely small subset of the population. If one were to introduce algorithms and programming to young children, I imagine that it would end up benefiting 1 child for every 49 that it confuses the hell out of (or ends up being completely useless for). The same could be said to #19 for wishing that we would teach proofs in elementary school.

Face it, teaching sorting algorithms to children would be pointless and wasteful. I am glad for the optimism of D. Sivakumar, but I am also glad he does not have a hand in educating our children.

29. "If one were to introduce algorithms and programming to young children, I imagine that it would end up benefiting 1 child for every 49 that it confuses the hell out of (or ends up being completely useless for)."

If you view programming as a medium for self-expression -- rather than merely a way to solve other people's problems -- then it becomes more obvious that this is an important skill for everyone to have.

30. Responding to #29 primarily, though relevant to the whole discussion of education.

In order to excel at any given task there must exist a disposition towards that task. People, simply put, are not identically inclined to all ideas, even when those ideas are articulated using generic language.

The phrase 'programming as a medium of self-expression' has very little value to me. It could be argued that such is the case because of my limited exposure to programming, or it could be argued that my inclinations simply prevent me from accepting that idea.

In truth, my father was extremely fluent in these fields and did his best to introduce me to rudimentary programming from a young age as well as more advanced concepts in math. He taught me well considering that I've been extremely proficient at those tasks when required of me, but I still loathe doing it. I do not consider it a form of self-expression, no matter how I was raised.

My point is that you can't say, "Well, if you teach it this way it will magically appeal to everyone!" That is an extremely inept statement. Now, you can qualify and say, "Well, it will appeal to more than 1 in 49." That's slightly more fair, but one must be realistic. Even at a marginally better ratio, the cost of implementing this new education and schooling education professionals in teaching the material outweighs the benefit to 'future research' that might be gained.

For that matter, I think it's important to avoid field bias. Not everyone can or should be a mathematician or programmer. I am very happy that many of you love the field you're working in, but please stop absurdly believing that your fascination makes it more worthwhile in terms of what people can do. This, to me, is the fundamental problem with my opponents on this board.

At any rate, I hope you are all well and pray that you take this comment in the light it was meant.

31. If you view programming as a medium for self-expression -- rather than merely a way to solve other people's problems -- then it becomes more obvious that this is an important skill for everyone to have.

I'm sorry, programming as a medium for self-expression? A society of programmers?

This must be a joke, right?

32. "I'm sorry, programming as a medium for self-expression? A society of programmers?

This must be a joke, right?"

No joke. Here's an example:

http://web.genarts.com/karl

33. For self-expression, maybe we should go back to teaching kids LOGO on trash-80's...

34. Or:

http://en.wikipedia.org/wiki/Livecoding

"Live coding (sometimes known as interactive programming, on-the-fly programming, just in time programming) is the name given to the process of writing software in realtime as part of a performance. Historically, this technique has been around since computers were used to produce early computer art, but recently it has been explored as a more rigorous alternative to laptop DJs who, live coders often feel, lack the charisma and pizzazz of musicians performing live."

35. FFS! It's 'their' not there you dolt!

36. Responding to 30: Yes, and maybe we could offer programming/algorithms as elective courses. I for one (and I realize I may be in the minority here) wish that I was exposed to more advanced concepts as an elementary schooler. For those of us who feel as I do, the option should be available.

37. We did not invent the algorithm. The algorithm consistently finds Jesus. The algorithm killed Jeeves.
The algorithm is banned in China. The algorithm is from Jersey. The algorithm constantly finds Jesus.
This is not the algorithm. This is close.
this refers to googles indexing algorithm, Jesus being one of the most searched words ever, ask Jeeves was once the best search engine, but then google overtook them, google has been banned in china for some reason(government).

38. first of all, I want to say I agree with #37. maybe a mandatory class is too much, and it for sure is unrealistic, but there should be possibilities to do such things.

if the only justification for a class is its future usability, then we could easily fit in algorithms instead of art - or are more than one in 50 pupils going to be artists? don't get me wrong, it's for sure good to have art classes, but the reasoning is not supported by the school system.
i want to push this even further: who of you thinks positive about airport security - don't blame me for it, but my stereotypical opinions make me believe that many who say education for 1/50 is useless agree to have security for one in a billion. Yeah, terrorism is taking lives, but, metaphorically speaking, so does unemployment.

39. Tskune is exactly right. I don't know how you came to the conclusion that "Ask Jeeves" was trying to kill themselves...
Remember not to take things out of context.