Important Quotations in Computing Learning how to learn is life's most important skill. - T. Buzan We think too much about effective methods of teaching and not enough about effective methods of learning. No matter how good teaching may be, each student must take the responsibility for his own education. - J. Carolus S.J If you cannot describe what you are doing as a process, you really don't know what you're doing. -- W. E. Deming Computing is not just learning to use technological tools, it is really about reasoning about complex problems and eventually using a computing tool (or developing a new one) to solve these problems. - JG The person who knows HOW will always have a job. The person who knows WHY will always be his/her boss. - Anonymous Don’t worry about debugging (or testing), think more about a correct implementation. - JG Dakin (to Irwin, his teacher): Do you really believe that, sir, or are you just trying to make us think? - A. Bennet (in "The History Boys") Today, most software exists, not to solve a problem, but to interface with other software. - I. O. Angell If you don't think carefully, you might believe that programming is just typing statements in a programming language. - W. Cunningham Testing can show the presence of errors, but not their absence. - E. Dijkstra If you can't explain it simply, you don't understand it well enough. - A. Einstein Imagination is more important than knowledge. - A. Einstein The proof of a high education is the ability to speak about complex matters as simply as possible. - R.W. Emerson Education's purpose is to replace an empty mind with an open one. - M. Forbes In the development of the understanding of complex phenomena, the most powerful tool available to the human intellect is abstraction. Abstraction arises from the recognition of similarities between certain objects, situations, or processes in the real world and the decision to concentrate on these similarities and to ignore, for the time being, their differences. -- C.A.R. Hoare Programs must be written for people to read, and only incidentally for machines to execute. - H. Abelson and G. Sussman (in "The Structure and Interpretation of Computer Programs) They know enough who know how to learn - J. Adams Think twice, code once. - Anonymous He who asks is a fool for five minutes; he who does not ask remains a fool forever. - Anonymous Chinese Prover The first step towards wisdom is calling things by their right names. - Anonymous Chinese Proverb There is a division in the student population between those who go to college to learn and those who go to college to earn a diploma. - J. Blau (letter to the editor, Chronicle of Higher Education, May 24, 2002) The American university is built on two false premises: that all teachers must add to the existing stock of knowledge by research, and that all self-respecting institutions fulfill this role only by employing productive scholars...Of course, the teacher must keep reading and thinking abreast of his time, but this does not mean that he must write and publish. The confusion hides a further absurd assumption, which is that when a man writes a scholarly book that reaches a dozen specialists he adds immeasurably to the world's knowledge; whereas if he imparts his thoughts and his reading to one hundred and fifty students every year, he is wasting his time and leaving the world in darkness. One is tempted to ask what blinkered pedant ever launched the notion that students in coming to college seceded from the human race and may therefore be safely left out when knowledge is being broadcast. - J. Barzun ("Teacher in America") More than the act of testing, the act of designing tests is one of the best bug preventers known. The thinking that must be done to create a useful test can discover and eliminate bugs before they are coded - indeed, test-design thinking can discover and eliminate bugs at every stage in the creation of software, from conception to specification, to design, coding and the rest. - B. Bezier Software development has been, is, and will likely remain fundamentally hard. Building quality systems involves an essential and irreducible complexity, which is why the entire history of software engineering can be characterized as one of rising levels of abstraction. As such, the task of the software development team is to engineer the illusion of simplicity. - G. Booch (in a blurb from a talk, "The Limits of Software") Scientists build to learn; Engineers learn to build. - F. Brooks Simplicity is the ultimate sophistication. - L. Da Vinci Being abstract is something profoundly different from being vague... The purpose of abstraction is not to be vague, but to create a new semantic level in which one can be absolutely precise. - E. Dijkstra Simplicity is prerequisite for reliability. - E. Dijkstra Object-oriented programming as it emerged in Simula 67 allows software structure to be based on real-world structures, and gives programmers a powerful way to simplify the design and construction of complex programs. - D. Gelernter ("Machine Beauty", Basic Books, 1998) Premature optimization is the root of all evil in programming. - C.A.R. Hoare The unavoidable price of reliability is simplicity. - C.A.R. Hoare The ability to simplify means to eliminate the unnecessary so that the necessary may speak. - H. Hofmann (in "Introduction to the Bootstrap") Before software can be reusable it first has to be usable. - R. Johnson Controlling complexity is the essence of computer programming. - B. Kernighan Beware of bugs in the above code; I have only proved it correct, not tried it. - D. Knuth Computers are good at following instructions, but not at reading your mind. - D. Knuth (Tex, pg. 9) Any sufficiently advanced bug is indistiguishable from a feature. - R. Kulawiec We don't have much time, so we don't teach them; we acquaint them with things that they can learn. - C. Leiserson (on "The Undergraduate Practicum" at MIT, from a talk at CMU) Making the simple complicated is commonplace; making the complicated simple, awesomely simple, that's creativity. - C. Mingus A good program is an elegant human readable implementation of a well-defined algorithm. JG Developing large and complex systems does not have to be difficult, just apply decomposition and abstraction. JG If you are never confused, then you will never learn. If your intellect is not challenged, you will not understand or learn. JG Dakin (to Irwin, his teacher): Do you really believe that, sir, or are you just trying to make us think? - A. Bennet (in "The History Boys")