al recognition of being the language for computation. We help people find representations for real-world things and then prove things about their representations. In computer science we have invented new mathematics for analyzing algorithms. We explained why a binary search is so much faster than a linear search, and why a bubble sort is so much slower than a merge sort. We figured out how to parse programming languages efficiently, making the jobs of programmers so much easier. Our tools help programmers prove that their complicated programs actually work, meaning that users can sleep at night knowing that their airplanes won’t crash and their business software won’t ruin them. Our biggest triumph has been to show that over 3,000 common problems in science, engineering, and business are so difficult to solve that even the fastest supercomputers would take centuries on simple versions. We call this the P=NP issue. Whoever proves that P=NP would win all the math prizes and the ACM Turing Award. And no, proving P=NP does not boil down to proving N= 1.

the engineer

I love building things. My math friends like picturing things in their minds; I like holding things in my hands and putting them through their paces. You tell me what you want, what budget I have, and how much time I have, and I’ll find a way to build a computing system that does it. I don’t need everything to be figured out mathematically before I can start. I built your operating systems, your networks, your TCP and IP, your air traffic control system,

your banking systems, your game engines, and your search engines. I built your memory chips, your CPUs, your stacks, your graphics displays, your warehouse computers, your BlackBer-ries, and your iPods. I know how to make software and hardware artifacts reliable, dependable, usable, safe, and secure. I love the smells of solder, motherboards, routers, power supplies, and musty cable racks. Sometimes I even think I can smell rotting bugs in software. I’m so good at doing things faster, cheaper, and better that I keep on giving you Moore’s Law year after year.

the scientist

I love discovering new things about nature. Recently my friends in biology have discovered that DNA transcription is a natural information process. What an amazing discovery. Computation is not an artifact of a computer, it’s part of life! My friends in physics, economics, materials, chemistry, meteorology, oceanography, and cosmology are all making similar discoveries. What a great time for collaborations on new discoveries about those natural processes. But that’s not all I do. I discovered scientific principles for computing. My scientific analysis guided the design of the first electronic computers. My principle of locality helped us achieve high performance through caching in everything from chips to the Internet. I discovered fast algorithms for throughput and response time of large systems and networks, launching the performance evaluation industry. I brought the experimental method to architecture, program per-

formance improvement, large system design, mathematical software, modeling, and simulation. My greatest triumph in the CS realm has been with artificial intelligence. Now that they have accepted my methods, they are making remarkable advances with machines that mimic human intelligent behavior.

 

the Last Voice: the catalog Students begin by learning the use of computer programming as a problem-solving tool. Topics in procedural programming include expressions, control structures, simple data types, input-output, graphical interfaces, testing, debugging, and programming environments. The student then advances to problem solving with object-oriented programming. Topics include classes, inheritance, packages, collections, exceptions, polymorphism, and recursive thinking. A good deal of time will be spent on programming projects.

 

References

1. Denning, P. Who are we? Commun. ACM 44, 2 (Feb.

2001), 15–19.

2. Denning, P. The field of programmers myth. Commun.

ACM 47, 7 (July 2004), 15–20.

3. Denning, P. Recentering computer science. Commun.

ACM 48, 11 (Nov. 2005), 15–19.

4. Denning, P. et al. Computing as a discipline. Commun.

ACM 32, 1 (Jan. 1989), 9–23.

5. Dijkstra, E. The humble programmer. Commun. ACM 15, 10 (Oct. 1972), 859–866.

6. Shirky, C. Here Comes Everybody. Penguin, 2008.

7. Snyder, L. Fluency with Information Technology. Addison-Wesley, 2002.

8. Wing, J. Computational thinking. Commun. ACM 49, 3 (Mar. 2006), 33–35.

 

Peter J. Denning ( pjd@nps.edu) is the director of the Cebrowski Institute for Information Innovation and Superiority at the Naval Postgraduate School in Monterey, CA, and is a past president of ACM.

© 2008 ACM 0001-0782/08/0800 $5.00

References:

mailto:pjd@nps.edu

Archives