<<

viewpoints

Vdoi:10.1145/2133806.2133818 Selma Tekir Viewpoint Reading CS Classics Revisiting required reading.

e often focus so much and 1970s in Britain. The program- of our attention on our ming languages community of those particular research - Knowledge of the years was also well described in the eas that we do not fully theories of computer reading. Hoare wrote a more efficient utilize the potential algorithm than the one invented science helps 9 Wcoming from the core theoretical com- by D.L. Shell. When he had the op- puter science. We lack the fundamen- in understanding portunity to hear about the recursive tal theoretical knowledge of the field. procedures in an ALGOL 60 course, Moreover, the clas- the limitations Hoare realized this mechanism is sics are unknown to many computer of the field. the right way of expressing his new scientists. Knowledge of the theories sort algorithm, which is the original of computer science helps in under- QuickSort. The moral of this example standing the limitations of the field. is that one should communicate with This directly influences your ongoing people to seek better solutions to the research by providing you with new problems at hand and extend the ex- perspectives and insights. In addition, isting solutions. His remark on sim- the stories of the pioneers of the field ˲˲ “Gödel’s Undecidability Theo- plification is of high importance as inspire young professionals, provide a rem,” S.F. Andrilli well. A simple, reliable core is criti- common history to unite the commu- ˲˲ “Computing Machinery and Intel- cal for a programming language, an nity, and facilitate the recognition of ligence,” A.M. Turing , and even for any computer science as an independent ˲˲ “Reflections on Trusting Trust,” K. software product. With this realiza- science and profession. Thompson tion, Hoare provides a foundation for With these ideas in mind, I orga- ˲˲ “The Humble Programmer,” E.W. the formal proofs of programs by an nized CS classics meetings in my com- Dijkstra algebraic assertions-based approach, puter engineering department during ˲˲ “An Interview with Edsger W. Dijks- which is named as “An Axiomatic Ba- the last summer term. Our group se- tra,” P. Frana sis for Computer Programming.”7 lected a subset of classics to initialize ˲˲ “Computer Programming as an Gödel’s undecidability theorem1 the project. The selected classics and Art,” D. Knuth states that any mathematical system their respective ordering reflected our ˲˲ “The ‘Art’ of Being ,” containing all the theorems of arith- personal interests; in the end, they be- E. Feigenbaum metic is an incomplete system. This come part of a coherent whole. ˲˲ “Donald Knuth: A Life’s Work In- opens the way for Turing to introduce It can be a good practice for CS pro- terrupted,” E. Feigenbaum the famous halting problem: There is fessionals to compile their own list of We found these intellectual gath- no general algorithm that can always classics that highlights some key scien- erings quite useful and subsequently correctly predict whether a randomly tific concepts of the field. Such an at- decided to the CS classics group selected computer program will run tempt improves the understanding of reading a regular activity of our aca- or not.11 Before knowing about Gödel the field and serves as a valuable source demic environment. Here, I give an and his undecidability theorem, Tur- of reference, as this Viewpoint attests. overview of the classics we discussed ing stands out as the most prominent Our group discussed these CS classics: and encourage further reading. figure in computer science. After you ˲˲ “The Emperor’s Old Clothes,” hear about Gödel’s work, you realize .A.R. Hoare Classics Overview Turing is standing on the shoulders of ˲˲ “An Axiomatic Basis for Computer In reading Hoare,6,7 you learn about giants. The proof of the undecidability Programming,” C.A.R. Hoare the computing industry of the 1960s theorem has important implications

32 communications of the acm | april 2012 | vol. 55 | no. 4 V viewpoints viewpoints

for computer science by introducing period and the products that were herent in computer science. Abstrac- the Gödel numbering scheme, which launched, independent but consis- tion is extending the viewpoint in a introduces unique numbering to each tent views are required. In this sense, way that the specificities of the prob- symbol, formula, or proof in the sys- Dijkstra and Hoare’s identical views lem can be reflected in a better way tem. This system is the basis of the on ALGOL 60 help us appreciate this rather than being vague. The tools computer numbering systems that programming language. Additionally, we work with can then have vital im- provide unique representation to every the realization of the recursion mech- portance in abstracting. Dijkstra’s programming construct: due to this anism by both is spectacular—a good comment on computing tools is re- property, code can be treated as data. example of the axiom “great minds markable in this sense:2 he states that The idea of this unique numbering think alike.” computing tools have direct influence system can be better explained by the Dijkstra’s dialogue with his profes- on the thinking habits of their users. challenge of writing a source program sor cannot be overlooked. Most signifi- If you constrain yourself with one that, when compiled and executed, cant is his realization of the high intel- specific tool, your thinking becomes will produce as output an exact copy lectual challenge of programming and constrained in the boundaries of this of its source. It is a Turing machine the professor’s encouragement that tool. You continue to stay at the same SELF that is printing itself. The SELF made him one of the greatest minds of level of thinking as the creator of this machine is constructed such that it computer programming.5 tool in accordance with the famous contains two concatenated machines One lesson comes from the huge quote by Einstein: “The significant and one of them is the Gödel number abstraction capability/potential in- problems we face cannot be solved at equivalent of the other. Such a self- the same level of thinking we were at reproducing program is introduced when we created them.” by Ken Thompson in “Reflections on Reading CS classics Donald Knuth is extraordinary with Trusting Trust”10 as the most primitive his perspective on computer program- version of today’s trojans. When you widens your ming.3,4 His definition of programming see the scientific layers on top of each perspective by identifies the right balance between other like the one presented, you begin conceptual clarity and implementation to appreciate the real beauty of science introducing stable, efficiency. He says: “Programming is and the scientific developments. timeless ideas. the art of telling another human being By reading Dijkstra independent what one wants the computer to do.” from his contemporary Hoare you In understanding the importance have information about the comput- of this definition, one should realize it ing environment of that era. To make is beyond the traditional definition of

h by G eet Duggal p h by Photogra a correct assessment of that time the task of telling a computer what to

april 2012 | vol. 55 | no. 4 | communications of the acm 33 viewpoints

do. Knuth’s viewpoint is more encom- bining the assessments of Dijkstra References passing and is helpful in understand- and Knuth, what we (plan to) do is not 1. andrilli, S.F. Gödel’s Undecidability Theorem. Applications of Discrete Mathematics. J.G. Michaels ing the diversity and convergence of independent of how we (plan to) do it. and K.H. Rosen, Eds. McGraw-Hill, 1991. programming languages. Moreover, The is a good indicator of the 2. Dijkstra, E.W. The humble programmer. Commun. ACM 51, 10 (Oct. 1972), 859–866; DOI: it points out an important trade-off resultant product most of the time. 10.1145/355604.361591. between conceptual clarity and imple- 3. Feigenbaum, E. Donald Knuth: A life’s work interrupted. Shustek, L., . Commun. ACM 51, 8 (Aug. mentation efficiency. When the task is Conclusion 2008), 31–35; DOI: 10.1145/1378704.1378715. to define a job to a computer, low-level Reading CS classics widens your per- 4. Feigenbaum, E. The ‘art’ of being Donald Knuth. Shustek, L., Ed. Commun. ACM 51, 7 (July 2008), instructions are better in terms of ex- spective by introducing stable, time- 35–39; DOI: 10.1145/1364782.1364794. ecution efficiency. However, people less ideas. You escape the popular 5. Frana, P. An interview with Edsger W. Dijkstra. T.J. Misa, Ed. Commun. ACM 53, 8 (Aug. 2010), 41–47; have difficulty in understanding such themes of your times and evaluate the DOI: 10.1145/1787234.1787249. 6. hoare, C.A.R. The emperor’s old clothes. written code. When you try to describe field from a more literal position. You Commun. ACM 24, 2 (Feb. 1981), 75–83; DOI: a task to a human being, you can skip learn about the qualities that make a 10.1145/358549.358561. 7. hoare, C.A.R. An axiomatic basis for computer some steps because humans are good person a great scientist. You realize programming. Commun. ACM 12, 10 (Oct. 1969), at filling in the blanks; machines have those people are delighted to think 576–580; DOI: 10.1145/363235.363259. 8. Knuth, D.E. Computer programming as an art. difficulty doing this. The best is to over problems. By learning the histo- Commun. ACM 17, 12 (Dec. 1974), 667–673; DOI: compromise: to discuss the task at a ry of computers and studying the lives 10.1145/361604.361612. 9. shell, D.L. A high-speed sorting procedure. high level but in a manner that can be and works of eminent computer sci- Commun. ACM 2, 7 (July 1959), 30–32; DOI: converted into a machine-processable entists we all recognize the true merit 10.1145/368370.368387. 10. thompson, K. Reflections on trusting trust. format as indicated by Knuth’s prodi- of being part of such a respectful pro- Commun. ACM 27, 8 (Aug. 1984), 761–763; DOI: gious statement. fession and privileged community. 10.1145/358198.358210. 11. turing, A.M. I—Computing machinery and intelligence. Knuth’s opinions about tools are I hope this Viewpoint raises read- Mind LIX, 236 (1950), 433–460; http://mind. similarly noteworthy.8 Like Dijkstra, ers’ interest in CS classics, causes CS oxfordjournals.org/content/LIX/236/433.full.pdf+html he thinks the tools we utilize have professionals to revise their reading direct influences on what we accom- lists to include these books and ar- Selma Tekir ([email protected]) is a postdoctoral instructor in the Department of Computer Engineering at plish. He puts emphasis on the artistic ticles, and inspires them to further ex- Izmir Institute of Technology in Turkey. aspect of programming. According to tend their classics library. Time spent I would like to thank Burcu Külahçiog˘lu, Murat Özkan, and him, the beauty and aesthetics of tools on the classics is not wasted but is Serap S¸ahin for the joyful CS classics meeting we had. improves the enjoyment of users and an investment in your career as a re- enhances their thinking habits. Com- searcher as well as an educator. Copyright held by author.

Graduate Fellowships in TCS

Up to 10 Fellowships will be awarded to applicants with a track record of outstanding results in theoretical computer science.

Applicants must be Ph.D. students at a U.S. institution of higher education.

There is a limit of one application per university; please coordinate with the Department Chair

Application Deadline: May 1, 2012

Simons Foundation Program for Mathematics & the Physical Sciences seeks to extend the frontiers of basic research. The Program’s primary focus is on the theoretical sciences radiating from Mathematics: in particular, the fields of Mathematics, Theoretical Computer Science and Theoretcial Physics.

For more information on our grants programs visit simonsfoundation.org

34 communications of the acm | april 2012 | vol. 55 | no. 4