Tony Hoare begins by distinguishing computer science from related fields like electronic engineering, applied mathematics, linguistics, and logic, stressing that while it intersects with these disciplines, it is uniquely unified by the art of programming. He uses the problem of selecting the smallest 20,000 values from a list of 100,000 as a practical case study. Through a series of analogies—using playing cards and heaps—he outlines the iterative design of an efficient algorithm, culminating in a precise program-like description.
Hoare emphasizes that programming requires a rare blend of skills: problem abstraction, analytical reasoning, meticulous accuracy, creativity, and clear communication. He argues that these qualities make computer science an intellectually rigorous and essential university discipline. He concludes by echoing Edsger Dijkstra’s sentiment that computers’ true significance lies not just in their utility but in the intellectual challenge they pose—a challenge worthy of academic pursuit.
“What is the central core of the subject [computer science]? What is it that distinguishes it from the separate subjects with which it is related? What is the linking thread which gathers these disparate branches into a single discipline? My answer to these questions is simple—it is the art of programming a computer.”
Tony Hoare (verified)
• Title: Computer Science
• Author: Tony Hoare
• Type: Article
• Publisher: Prentice-Hall
• Publication time: February 10, 1971
• Publication place: New Jersey, United States
• Link: https://dl.acm.org/doi/10.5555/63445.C1104362