How can we define computer science?
Shall we limit it to the standard textbook “study of algorithms” definition? What’s the difference between a programmer cranking out widgets and a computer scientist? Functionally, a professional programmer may need to focus on profitable algorithmic problem solving in electronic computers. But, a computer scientist may be drawn to tougher questions than, “Does it meet the customer’s specs?” or “Does it compile? …Ok, how about now?”
Algorithms and understanding electronic computers are prerequisites for a computer scientist. Like a composer needing to master musical notation and understand pianos before being able to be creative.
Ada Augusta Byron (1815-1852), considered the first computer programmer said,
“We may say most aptly that the Analytical Engine weaves algebraic patterns just as the Jacquard Loom weaves flowers and leaves.”
Before Von Neumann architecture, this suggests a theoretical emphasis not on the mechanics but in the potential of the mechanics as medium for autonomous execution of abstraction. Lovelace was not a programmer, but a computer scientist recognising ideal beauty in mathematics and flowers.
Donald Knuth, another pioneer suggested we change our traditional attitude to constructing programs.
Instead of imagining that our main task is to instruct a computer what to do, let us concentrate rather on explaining to human beings what we want a computer to do.
In his seminal /Literate Programming/ paper, Knuth suggested considering programs as “works of literature”. If a computer scientist applies a literate programming methodology, he functions as an essayist, primarily concerned with exposition and style. (Knuth, 1984)
Computer science evolved into an interdisciplinary study via distributed cognition, not limited to university departmental silos. With the rise of Artificial Intelligence and major players like Google and Elon Musk investing in human brain interfaces, we need to think outside the computer box in redefining computer science.
Or, at least I do if I want to make a living with computer science.
“In this new economy, three groups will have a particular advantage: those who can work well and creatively with intelligent machines, those who are the best at what they do, and those with access to capital.”
― Cal Newport, Deep Work: Rules for Focused Success in a Distracted World
Knuth, Donald E. (1984). “Literate Programming” (PDF). The Computer Journal. British Computer Society. 27 (2): 97–111. doi:10.1093/comjnl/27.2.97.