In writing Computing for Ordinary Mortals, I had to think about where to point readers who might want more depth in each of the topics I wrote about. The result (in the Further Reading sections and end notes) is a reading list for someone who would like to come up to speed in computer science. My choices are biased, of course (a systems person would have more to say about architecture, operating systems, and networking), but I think they're plausible overall.
What is
computing?
General reading
W. Daniel Hillis, The Pattern on the Stone: The
Simple Ideas that Make Computers Work (Basic Books, 1999).
Allen Newell, Alan Perlis, and Herbert Simon, “What
is computer science?” Science, 157 (1967), pp. 1373-4.
Ian Horswill, “What is computation?” ACM XRDS
18, 3 (March 2012), pp. 8-14.
Herbert Simon, The Sciences of the Artificial
(MIT Press, 3rd edition, 1996).
Textbooks
Brian W. Kernighan, D is for Digital: What a
well-informed person should know about computers and communications
(CreateSpace, 2012).
Selected further reading
Paul Rosenbloom, On
Computing: The Fourth Great Scientific Domain (Cambridge University Press,
2012).
Interim Review Task Force, Association for Computing
Machinery, Computing Curricula Computer Science Volume (2008).
Committee on Information Technology Literacy,
National Research Council, Being Fluent with Information Technology
(National Academies Press, 1999).
Peter Denning, “Great Principles in Computing
Curricula,” ACM Technical Symposium on Computer Science Education
(2004).
Donald Knuth, “Computer science and its relation to
mathematics,” The American Mathematical Monthly, 81, 4 (1974), pp.
323-343.
Jeanette Wing, “Computational thinking,” Communications
of the ACM, 49, 3 (2006), pp. 33-35.
Committee for the Workshops on Computational
Thinking, National Research Council, Report of a Workshop on The Scope and
Nature of Computational Thinking (National Academy of Sciences, 2009).
A partial
history of computing
General reading
James Essinger, Jacquard’s Web: How a Hand-Loom
Led to the Birth of the Information Age (Oxford University Press, 2003).
Charles Babbage, Passages from the Life of a
Philosopher (Longman, Green, Longman, Roberts, and Green, 1864), pp.
116-117.
Ada Augusta and L. F. Menabrea, “Sketch
of the Analytical Engine invented by Charles Babbage, by L. F. Menabrea, with
notes upon the memoir by the translator Ada Augusta, Countess of Lovelace.
Denise Gürer, “Pioneering women in computer
science,” Communications of the ACM, 38, 1 (1995), pp. 45-54.
W. Barkley Fritz, “The women of ENIAC,” IEEE
Annals of the History of Computing, 18, 3 (1996), pp. 13-28.
Selected further reading
Alan G. Bromley, “Charles Babbage’s analytical
engine, 1838,” IEEE Annals of the History of Computing, 20, 4 (1998),
pp. 29-45.
John von Neumann, “First Draft of a Report on the
EDVAC”, Moore School of Electrical Engineering, University of
Pennsylvania (June 30, 1945).
Computer
architecture
General reading
Charles Petzold, Code: The Hidden Language of
Computer Hardware and Software (Microsoft Press, 2010).
Textbooks
John L. Hennessy and David A. Patterson, Computer
Architecture: A Quantitative Approach (Morgan Kaufmann, 4th edition, 2006).
Miles J. Murdocca and Vincent P. Heuring,
Computer Architecture and Organization: An Integrated Approach (John Wiley
& Sons, 2007).
Selected further reading
Donald Knuth, “An empirical study of FORTRAN
programs,” Software—Practice and Experience, 1 (1971), pp. 105-133.
David Patterson, “The Future of Computer
Architecture,” Version 3, December, 2008.
Algorithms and
structured data
General reading
John MacCormick, Nine Algorithms That Changed the
Future: The Ingenious Ideas That Drive Today’s Computers (Princeton
University Press, 2012).
Textbooks
Thomas H. Cormen, Charles E. Leiserson, Ronald L.
Rivest, and Clifford Stein, Introduction to Algorithms (MIT Press, 3rd
edition, 2009).
Selected further reading
Donald Knuth, The Art of Computer Programming
(Addison-Wesley).
C. A. R. Hoare, “Algorithm 63: Partition” and “Algorithm
64: Quicksort,” Communications of the ACM, 4, 7 (1961), p. 321.
Programming
General reading
George Polya, How to Solve It (Princeton
University Press, 2nd edition, 1957).
Alan Kay, “Computer software,” Scientific
American, 251, 3 (1984), pp. 41-47.
Paul Graham, Hackers and Painters: Big Ideas
from the Computer Age (O’Reilly, 2004).
C. H. Waddington, Tools for Thought: How to
Understand and Apply the Latest Scientific Techniques of Problem Solving
(Basic Books, 1977).
Textbooks
Mark J. Guzdial and Barbara Ericson, Introduction
to Computing and Programming in Python, A Multimedia Approach (Prentice
Hall, 2nd edition, 2009).
Harold Abelson and Gerald Jay Sussman with Julie
Sussman, Structure and Interpretation of Computer Programs (MIT Press,
2nd edition, 1996).
Selected further reading
Peter Norvig, Paradigms of Artificial
Intelligence Programming: Case Studies in Common Lisp, (Morgan Kaufmann,
1992).
Frederick P. Brooks, Jr., The Mythical Man-Month:
Essays on Software Engineering (Addison-Wesley, 20th Anniversary Edition, 1995).
Niklaus Wirth, Algorithms + Data Structures =
Programs (Prentice Hall, 1976).
John W. Backus, “Automatic programming: properties
and performance of FORTRAN systems I and II,” the Proceedings of the
Symposium on the Mechanisation of Thought Processes, The National Physical
Laboratory, England, pp. 232-255.
John W. Backus, “The history of FORTRAN I, II and
III,” ACM SIGPLAN Notices - Special Issue: History of Programming Languages
conference, 13, 8 (1978), pp. 165-180.
Jon Bentley, Programming Pearls
(Addison-Wesley, 2nd edition, 1999).
Andy Oram and Greg Wilson, Beautiful Code:
Leading Programmers Explain How They Think (O’Reilly, 2007).
Edsgar Dijkstra, “Go-to statement considered
harmful,” Communications of the ACM, 11, 3 (1968), pp. 147-148.
Ruven Brooks, “Towards a theory of the comprehension
of computer programs,” International Journal of Man-Machine Studies, 18,
6 (1983), pp. 543-554.
David Parnas, “On the criteria to be used in
decomposing systems into modules,” Communications of the ACM, 15, 12
(1972), pp. 1053-1058.
Operating
systems
Textbooks
Abraham Silberschatz, Peter Baer Galvin, and Greg
Gagne, Operating System Concepts (John Wiley & Sons, 8th edition, 2008).
Andrew S. Tanenbaum and Albert S. Woodhull, Operating
Systems: Design and Implementation (Prentice Hall, 3rd edition, 2006).
Selected further reading
Jerome H. Saltzer, “Protection and the control of
information sharing in Multics,” Communications of the ACM, 17, 7 (July
1974), 388-402.
Networking and
related topics
General reading
Vannevar Bush, “As We May Think,” Atlantic
Magazine (July, 1945).
Vannevar Bush, Science: The Endless Frontier (U.S.
Government Printing Office, 1945).
Ted Nelson, Computer Lib/Dream Machines (1974).
J.C.R. Licklider, “Man-computer symbiosis,” IRE
Transactions on Human Factors in Electronics, 1 (1960) pp. 4-11.
J.C.R. Licklider and R.W. Taylor, “The computer as a
communication device,” Science and Technology, 76, 2 (1968), pp. 21-31.
Ian H. Witten, Marco Gori, and Teresa
Numerico, Web Dragons: Inside the Myths of Search Engine Technology (Morgan
Kaufmann, 2006).
Textbooks
James F. Kurose and Keith W. Ross, Computer
Networking: A Top-Down Approach (Addison-Wesley, 2010).
Selected further reading
Ted Nelson, “Complex information processing: a file
structure for the complex, the changing and the indeterminate,” Proceedings
of the 20th ACM National Conference, pp. 84-100.
J.C.R. Licklider, “Memorandum for members and
affiliates of the intergalactic computer network” (1963).
Leonard Kleinrock, “An early history of the Internet
[History of Communications],” Communications Magazine, IEEE, 48, 8
(2010), pp. 26-36.
Barry M. Leiner, Vinton G. Cerf, David D. Clark,
Robert E. Kahn, Leonard Kleinrock, Daniel C. Lynch, Jon Postel, Larry G.
Roberts, and Stephen Wolff, “A brief history of the Internet,” ACM SIGCOMM
Computer Communication Review, 39, 5 (2009), pp. 22-31.
David D. Clark, “The design philosophy of the DARPA
Internet protocols,” SIGCOMM Computer Communication Review, 18, 4
(1988), pp. 106-114.
Theory
General reading
David Evans, Introduction to Computing:
Explorations in Language, Logic, and Machines.
David Harel, Computers Ltd.: What They
Really Can’t Do (Oxford, 2000).
Joseph Weizenbaum, Computer Power and Human
Reason (W.H. Freeman, 1976).
Douglas Hofstadter, Gödel, Escher, Bach: An
Eternal Golden Braid (Vintage, 1980).
Textbooks
Michael Sipser, Introduction to the Theory of
Computation (International Thomson Publishing, 1996).
John E. Hopcroft, Rajeev Motwani, and Jeffrey D.
Ullman, Introduction to Automata Theory, Languages, and Computation (Prentice
Hall, 3rd edition, 2007).
Alan P. Parkes, A Concise Introduction to
Languages and Machines (Springer, 2008).
Selected further reading
MIT Technical Translation of Konrad Zuse,
“Rechnender Raum,” Schriften zur Datenverarbeitung, 1 (Friedr.
Viewag & Sohn, 1969).
Alan Turing, “On computable numbers, with an
application to the Entscheidungsproblem,” Proceedings of the London
Mathematical Society, 2, 42 (1936), pp. 230–265.
Jack Copeland, “The Church-Turing thesis,” The
Stanford Encyclopedia of Philosophy, Edward N. Zalta, editor (Fall, 2008).
Torkel Franzén, Gödel’s Theorem: An Incomplete
Guide to Its Use and Abuse (A. K. Peters, 2005).
Stephen A. Cook, “The complexity of theorem-proving
procedures,” Proceedings of the Third Annual ACM Symposium on the Theory of
Computing (1971), pp. 151-158.
Richard M. Karp, “Reducibility among combinatorial
problems,” Proceedings of a Symposium on the Complexity of Computer
Computations (Plenum Press, 1972), pp. 85-103.
Artificial
Intelligence
General reading
Nils J. Nilsson, The Quest for Artificial
Intelligence (Cambridge, 2010).
Simon Blackburn, Think (Oxford University
Press, 1999).
Pamela McCorduck, Aaron’s Code: Meta-Art,
Artificial Intelligence, and the Work of Harold Cohen (W. H. Freeman,
1990).
Textbooks
Stuart Russell and Peter Norvig, Artificial
Intelligence: A Modern Approach, (Prentice Hall, 3rd edition, 2010).
Thomas Mitchell, Machine Learning (McGraw
Hill, 1997).
Selected further reading
Alan Turing, “Computing machinery and intelligence,”
Mind, 59, 236 (1950), pp. 433-60.
Paul R. Cohen, “If not Turing’s test, then what?” AI
Magazine, 26, 4 (2006), pp. 61-67.
Allen Newell and Herbert A. Simon, “Computer science
as empirical inquiry: Symbols and search,” Communications of the ACM,
19, 3 (1976), pp. 113-126.
Nils J. Nilsson, “The physical symbol system
hypothesis: Status and prospects,” Max Lungarella, Rolf Pfeifer, Fumiya Iida,
and Josh Bongard (editors), 50 Years of Artificial Intelligence, Lecture
Notes In Computer Science, 4850 (Springer, 2007), pp. 9-17.
M. Ross Quillian, “Semantic Memory,” Semantic
Information Processing, Marvin Minsky, editor (MIT Press, 1968), pp.
227-270.
John Searle, “Minds, Brains and Programs,” Behavioral
and Brain Sciences, 3, 3 (1980), pp. 417–457.
Allen Newell, “The knowledge level: Presidential
Address,” AI Magazine, 2, 2 (1981), pp. 1-20.
Rodney Brooks, Cambrian Intelligence: The Early
History of the New AI (MIT Press, 1999).
J. Alan Robinson, “A machine oriented logic based on
the resolution principle,” Journal of the Association for Computing
Machinery, 12 (1965), pp. 23-41.
Thomas G. Dietterich, “Machine Learning,” Nature
Encyclopedia of Cognitive Science (Macmillan, 2003).
Claude Shannon, “A mathematical theory of
communication,” Bell System Technical Journal, 27 (1948), pp. 379-423
and 623-656.
Allen Newell, J. C. Shaw, and Herbert A. Simon,
“Elements of a theory of human problem solving,” Psychological Review,
65, 3 (1958), pp. 151-166.
Human-Computer
Interaction
General reading
Donald Norman, The Design of Everyday Things (Doubleday,
1990).
Richard Harper, Tom Rodden, Yvonne Rogers, and
Abigail Sellen, Being Human: Human-Computer Interaction in the Year
2020 (Microsoft Research, 2008).
Textbooks
Ben Shneiderman and Catherine Plaisant, Designing
the User Interface: Strategies for Effective Human-Computer Interaction
(Addison-Wesley, 2009).
Frank E. Ritter, Gordon D. Baxter, and Elizabeth
Churchill, The ABCs of HCI (lulu.com, 2002).
Harold Thimbleby, Press On: Principles of
Interaction Programming (MIT Press, 2007).
Selected further reading
Ivan Sutherland, Sketchpad—A Graphical
Man-Machine Interface (MIT Press, 1963).
J. C. Shaw, “JOSS: a designer’s view of an
experimental on-line computing system,” Proceedings of the Fall Joint
Computer Conference, Part I (ACM Press, 1964).
Jeff Johnson, Teresa L. Roberts, William Verplank,
David C. Smith, Charles H. Irby, Marian Beard, and Kevin Mackey, “The Xerox
Star: A Retrospective,” IEEE Computer, 22, 9 (1989), pp. 11-26.
Paul Dourish, Where the Action Is: The
Foundations of Embodied Interaction (MIT Press, 2001).
Ross Koppel, Joshua P. Metlay, Abigail Cohen, Brian
Abaluck, A. Russell Localio, Stephen E. Kimmel, and Brian L. Strom, “Role of
computerized physician order entry systems in facilitating medication errors,” Journal
of the American Medical Association, 293, 10 (2005), pp. 1197-1203.
John D. Gould and Clayton Lewis, “Designing for
usability: Key principles and what designers think,” Communications of the
ACM, 28, 3 (1985), pp. 300-311.
Eskişehir
ReplyDeleteAdana
Sivas
Kayseri
Samsun
RN83E
elazığ
ReplyDeletebilecik
kilis
sakarya
yozgat
7B5X
whatsapp görüntülü show
ReplyDeleteücretli.show
VİWİE2
görüntülü.show
ReplyDeletewhatsapp ücretli show
STO
ankara parça eşya taşıma
ReplyDeletetakipçi satın al
antalya rent a car
antalya rent a car
ankara parça eşya taşıma
MZAPHR
izmir evden eve nakliyat
ReplyDeletemalatya evden eve nakliyat
hatay evden eve nakliyat
kocaeli evden eve nakliyat
mersin evden eve nakliyat
F135
C66EE
ReplyDeleteReferans Kimliği Nedir
Tiktok Takipçi Satın Al
Coin Kazma Siteleri
Tiktok Beğeni Satın Al
Kripto Para Çıkarma Siteleri
Youtube Beğeni Hilesi
Threads İzlenme Hilesi
Binance Referans Kodu
Referans Kimliği Nedir
1158F
ReplyDeleteSohbet
Telegram Abone Satın Al
Bitcoin Nasıl Alınır
Bitcoin Kazma
Coin Para Kazanma
Kripto Para Nasıl Üretilir
Likee App Takipçi Hilesi
Parasız Görüntülü Sohbet
Soundcloud Takipçi Hilesi
FHBGFNHGNJ
ReplyDeleteشركة مكافحة حشرات
شركة صيانة افران بمكة jyRQ1nSB6y
ReplyDeleteشركة تسليك مجاري بخميس مشيط 0GF8EAsX9F
ReplyDeleteشركة تنظيف بخميس مشيط 6dOBvCJJrD
ReplyDeleteشركة مكافحة حشرات بالقطيف 2FHtyl2PRX
ReplyDeleteشركة تسليك مجاري بالاحساء Ai12du46lp
ReplyDeleteشركة عزل اسطح بالاحساء csidK7p8qO
ReplyDeleteشركة تنظيف سجاد بالاحساء T9o0FMwfEc
ReplyDeleteشركة تنظيف موكيت بجازان AALysI4Tuf
ReplyDeleteشركة عزل اسطح بالجبيل bpKc84ckV7
ReplyDelete