I am a computer scientist delving into Bioinformatics and I need to gain insight in biological phenomena. How would you explain three core concepts as: Evolution, Selection and Variation, to a Computer Scientist? I am looking for something in the middle. I read Futuyma's book and was very useful, but I would like an explanation I can relate with my background, something to start building "bridges"...

Bibliography suggestions are welcome.

  • 2
    $\begingroup$ You might be interested in mathematical formulations of evolutionary processes. Here are some book recommendations. As you are a computer scientist, I suppose that you are aware of what a genetic algorithm (artificial intelligence) is. Genetic algorithm also provide good analogies. $\endgroup$
    – Remi.b
    Apr 3, 2015 at 21:22
  • $\begingroup$ @Remi.b +1 for the genetic algorithms $\endgroup$ Apr 3, 2015 at 21:47
  • 2
    $\begingroup$ how about just open a molecular bio textbook? $\endgroup$ Apr 4, 2015 at 0:16
  • $\begingroup$ Read on fishers fundamental theorem, the price equation, the breeders equation, and evolvability $\endgroup$
    – rg255
    Apr 4, 2015 at 5:08

2 Answers 2



Evolution is the accumulation of genetic mutations that results in phenotypic variation (physical characteristics) where surviving variations are more suited to the environment the organism lives in, thus allowing it to survive better and -- critically -- reproduce as-good-as or better-than its competing organisms.

In terms of computer science this would be like a starting with basic CPU design with all the absolute necessities. Now, let's pretend every generation of CPU after your first is going to be randomly designed by something called "Pressure OS". Pressure OS doesn't care if the CPUs it designs match the needs of the consumer. PrOS is unfeeling. An OS of pure logic. ALL it will do is make a bunch of random ones, note which ones sell the best, and make the best-selling ones to be the template for its next round of random designs.

Selection and Variation

Selection is the process by which environmental pressures (low moisture, high heat, high altitude, available food, extreme pressures at the bottom of oceanic trenches, etc.) dictate how well each successive generation of organisms survive.

In our analogy, the Pressure OS is the cause of Selection. Some CPU designs aren't going to meet the needs of consumers (first-gen Atoms which could barely operate a toaster). Those ones won't be produced again. Others will be very successful (like the Pentium-4 Series which lasted for years) and will quickly outnumber the inferior ones.

Some designs, as odd as they are, will find success in areas outside enthusiast desktops or workstations. Like ARM designs which were never part of the desktop market, but found lots of success in phones and business devices.

Market requirements/environments, as met by the random variations produced by Pressure OS, created Variation in the types of CPUs available.

ARM Snapdragons could never, ever compete in the desktop enthusiast market. That's the realm of Sandy Bridges, Haswells, Semprons, and Phenoms. Then again, they're dramatically different designs -- which stem from common designs decades ago that have been heavily modified over the years -- that don't need to compete. Snapdragons and Semprons can co-exist because they fill different niches.

Now, when consumer needs change again -- if everybody gets tired of mobile phones, tablets, and desktops in favor of cone-shaped personal assistants which go in your ear -- then designs will change again under that new pressure. Eventually CPU one design will become the standard for that particular piece of hardware, and you could say that CPU variation had evolved to get there via selective pressure from consumers.

Biology operates in the exact same way, except the selection process is instigated by environmental pressures to produce organism variations that can successfully reproduce. It's also been going on for >3 Billion Years.

  • $\begingroup$ I'm happy to see that someone came from the hardware point of view :) I really like your examples. $\endgroup$ Apr 4, 2015 at 0:32

Please note that these are just analogies not exact definitions.

Okay so let's imagine DNA as string of 4 letters that is the program code of an organism. Also the running environment is a good analogue to the biological environment (RAM, CPU time, disk space - as resources like food, water etc.) Genes of organism could be imagined as methods of an object like in object oriented programing. Let's define some functions:

Reproduction: copies the string and creates a new instance of the organism (like a new instance of the program) - cell or an offspring - this stands for asexual reproduction. Sexual reproduction takes two instances of the program and randomly exchange their functions and create a new instance with this shuffled code (recombination).

Mutation: induces random changes to the string at random times. This ensures that different "versions" are present of the code. You need mutation for evolution to work.

Also you need Selection - or rather selective pressure - that is like changing the environment - more efficient codes will survive, the rest die of (aka crash, run out of memory (food)) etc.) Selection drives evolution forward. Also programs can interact with each other and function as a selective pressure - think of anti-virus programs and trojans or viruses - you need better and better AV programs because new viruses come out, and bad guys need new viruses because AV virus programs keep getting better and better - they both put selective pressure on the other and drive each other's evolution.

(Genetic) Variation: think of a group of softwares with similar function: like text editing. These are like different individuals of a species because they can do the same thing but they are all a bit different. These "species" evolve by gaining new functions by mutations (the programmer adds new code sections - mutation), and after they gain enough new function they turn into a new software - new species. Evolution takes a lot of time to produce new species - as does coding a new software :).

I hope this helps.

  • 1
    $\begingroup$ It might be good to remind your readers that analogies are just analogies. One must not make the mistake of bringing such analogy to far away and complain about incompatibilities. Selection that is like changing the environment. A changing environment would rather be a change in selection pressure. For example the concept of variation is limited to genetic variation in the analogy you presented. $\endgroup$
    – Remi.b
    Apr 3, 2015 at 21:19
  • $\begingroup$ @Remi.b - Thanks for pointing things out, I'll edit and refine my answer. $\endgroup$ Apr 3, 2015 at 21:38
  • $\begingroup$ Why the downvote? $\endgroup$ Apr 4, 2015 at 6:35
  • $\begingroup$ I want to make a declaration of innocence for this downvote :) Unexplained downvotes are always bothering me too. $\endgroup$
    – Remi.b
    Apr 4, 2015 at 14:43
  • $\begingroup$ @Remi.b - I've not accoused anyone, I'd not assume that you or anyone would down vote a competing answer (if it has no obvious incorrectness etc.) - that's just low... But i see down votes as tool to indicate more serious problems with a post. $\endgroup$ Apr 4, 2015 at 14:47

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .