Beware of bugs in the above code; I have only proved it correct, not tried it.
I can't be as confident about computer science as I can about biology. Biology easily has 500 years of exciting problems to work on. It's at that level.
Trees sprout up just about everywhere in computer science...
Science is knowledge which we understand so well that we can teach it to a computer; and if we don't fully understand something, it is an art to deal with it.
The process of preparing programs for a digital computer is especially attractive, not only because it can economically and scientifically rewarding, but also because it can be an aesthetic experience much like composing poetry or music.
Programs are meant to be read by humans and only incidentally for computers to execute.
Programming is the art of telling another human being what one wants the computer to do.