Similarities between programming and teaching science to 13 yo kids

At his TED talk, the middle school teacher Tyler DeWitt talks about how he thinks science texts are too serious and often too detailed. I saw a lot of similarities between his approach to science and the act of programming. As rubists, the “make it fun” part is easy, we all agreed on that. The real challenge though lies on the “too detailed” part.

http://www.youtube.com/watch?v=6OaIdwUdSxE

A typical science text book had the following explanation:

Bacteriophage replication is initiated through the introduction of viral nucleic acid into a bacterium.”

and he says that text could be much more undestandable if it went:

The viruses make copies of themselves by slipping their DNA into a bacterium.”

Hey, he just “refactored” a scientific text! And he also explains the the second text have some details missing, and that's good thing for a first look at the subject.

"sliping" → implies that the virus can move, change to “introduces”

"viruses" → not specific enough: use bacteriophage

"DNA" → Not always, change to nucleic acid. Actually the majority of the bacteira have RNA. Using “nucleic acid” is much more precise.

Noticed the similarities there? The teacher would leave out the detail that not every bacteria has DNA (but RNA) in favor of the simplification. If it was code, the DNA would be a method call, and the explanation that not all viruses have DNA, but some have RNA, would be the method definition.

Its a matter of communication and is that's not a exact science. Programming is a task that's is more a communication challenge than is its a logic challenge. We don't write code only for the machine to work but, mostly, for people. Knowing what details to leave out is the art of abstraction, both in programming and teaching science to 13 year old students.

... it is important knowing what details we should leave out, so that the main point still comes across” - Tyller DeWitt