0% found this document useful (0 votes)
4 views

Book List

The document is a summary list of recommended books for the Computer Science Tripos at the University of Cambridge for the academic year 2024. It categorizes books based on their relevance to different parts of the course and includes details such as editions and ISBNs. The list serves as a resource for college librarians and those purchasing course materials, emphasizing the importance of consulting syllabus booklets for further guidance.

Uploaded by

nakshatrdulwich
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

Book List

The document is a summary list of recommended books for the Computer Science Tripos at the University of Cambridge for the academic year 2024. It categorizes books based on their relevance to different parts of the course and includes details such as editions and ISBNs. The list serves as a resource for college librarians and those purchasing course materials, emphasizing the importance of consulting syllabus booklets for further guidance.

Uploaded by

nakshatrdulwich
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

UNIVERSITY OF CAMBRIDGE COMPUTER LABORATORY

Computer Science Tripos Parts IA, IB, and II

Summary List of Books Recommended by Lecturers


September 2024

This list is prepared once a year for the benefit of College Librarians and those
purchasing course books. As such it aims to list the most recently available editions of
current course books. However, in many cases, older editions are equally useful and this
list should be used in conjunction with those in the syllabus booklets, which give more
information on the suitability of titles for each course.
Key to the present list:
IA On Part IA reading lists
IB On Part IB reading lists
II On Part II reading lists

*** Most recommended


** Recommended
* Further reading

The syllabus booklets can be found via links from


http://www.cl.cam.ac.uk/teaching/

At least one copy, and in many cases two copies, of each of the course texts are held in
the West Hub library (see http://www.cl.cam.ac.uk/library/).
Nicholas Cutler (Librarian)
[email protected]

Aho, A.V., Sethi, R. & Ullman, J.D. (2007). Compilers: principles, techniques and tools.
Addison-Wesley (2nd ed.). ISBN 0321491696 [**, IB, II]
Akenine-Möller, T. (2018). Real-time rendering. CRC Press (4th ed.).
ISBN 9781138627000 [**, IB]
Anderson, R. (2020). Security engineering. Wiley (3rd ed.). ISBN 9781119642787
Available at: http://www.cl.cam.ac.uk/users/rja14/book.html
Anderson, T. & Dahlin, M. (2014). Operating systems: principles and practice.
Recursive Books (2nd ed.). ISBN 9780985673529 [**, IA]
Appel, A. (1997). Modern compiler implementation in Java/C/ML (3 editions).
Cambridge University Press. [***, IB, II]
Awodey, S. (2010). Category theory. Oxford University Press (2nd ed.).
ISBN 9780199237180 [***, II]
Bacon, J. & Harris, T. (2003). Operating systems. Addison-Wesley (3rd ed.).
ISBN 0321117891 [***, IA, IB]
Barber, D. (2012). Bayesian reasoning and machine learning. Cambridge University
Press. ISBN 9780521518147 [**, II]

–1–
Ben-Ari, M. (2012). Mathematical logic for computer science. Springer (3rd ed.). ISBN
9781447141280 [**, IB]
Bertsekas, D.P. & Tsitsiklis, J.N. (2008). Introduction to probability. Athena Scientific.
[*, IA]
Blackwell, A.F. (2024). Moral codes: designing alternatives to AI. MIT Press.
ISBN 9780262548717. Available at: https://moralcodes.pubpub.org [**, II]
Biggs, N.L. (2002). Discrete mathematics. Oxford University Press (2nd ed.). ISBN
9780198507178 [**, IA]
Bishop, C.M. (2006). Pattern recognition and machine learning. Springer.
ISBN 0387310738. Available at: https://www.microsoft.com/en-us/research/
uploads/prod/2006/01/Bishop-Pattern-Recognition-and-Machine-Learning-
2006.pdf
Bratko, I. (2012, 2001). PROLOG programming for artificial intelligence. Addison-
Wesley (4th, 3rd eds.). [***, IB]
Brachman, R.J. & Levesque, H.J. (2004). Knowledge Representation and Reasoning.
Morgan Kaufmann. ISBN 9781558609327 [*, IB]
Cachin, C., Guerraoui, R. & Rodrigues, L. (2011). Introduction to reliable and secure
distributed programming. Springer (2nd ed.). ISBN 9783642152597 [*, IB]
Carroll, J.M. (2003). HCI Models, theories and frameworks: toward a multi-disciplinary
science. Morgan Kaufmann. ISBN 1558608087 [*, IB]
Cawsey, A. (1998). The essence of artificial intelligence. Prentice Hall. [*, IB]
Clark, A., Fox, C., & Lappin, S. (2010). The handbook of computational linguistics and
natural language processing. Wiley-Blackwell. ISBN 9781405155816 [*, III]
Comer, D. & Stevens, D. (2014). Internetworking with TCP-IP, vol. 1 and 2.
Prentice Hall (6th ed.). [**, IB]
Compeau, P. & Pevzner, P.A. (2018). Bioinformatics algorithms: an active learning
approach. Active Learning Publishers (3rd ed.). ISBN 9780990374663 [**, II]
Cormen, T.H., et. al. (2022). Introduction to Algorithms. MIT Press (4th ed.).
ISBN 9780262046305 [***, IA, IB]
Crole, R.L. (1993). Categories for types. Cambridge University Press.
ISBN 9780521457019 [**, II]
Crowe, J. & Hayes-Gill, B. (1998). Introduction to digital electronics. Butterworth-
Heinemann. [*, IA]
Cutland, N.J. (1980). Computability: an introduction to recursive function theory.
Cambridge University Press. [**, IB]
Davenport, H. (2008). The higher arithmetic: an introduction to the theory of numbers.
Cambridge University Press. ISBN 0521722365 [**, IA]
Davis, M.D., Sigal, R. & Weyuker, E.J. (1994). Computability, complexity and
languages. Academic Press (2nd ed.). [**, IB]
Dechter, R. (2003). Constraint processing. Morgan Kaufmann. [*, IB]
Deitel, H.M. & Deitel, P.J. (2017). Java: How to Program. Prentice Hall (11th ed.).
ISBN 9781292223858 [**, IA]

–2–
Dekking, F.M., et. al. (2005). A Modern introduction to probability and statistics.
Springer. ISBN 1852338962 [**, IA, IB]
Du, W. (2022). Computer security: a hands-on approach. Privately published (3rd ed.).
ISBN 9781733003957 [***, IB]
Durbin, R., et. al. (1998). Biological sequence analysis: probabilistic models of proteins
and nucleic acids. Cambridge University Press. ISBN 0521629713. [***, II]
Easley, D. & Kleinberg, J. (2010). Networks, crowds and markets: reasoning about a
highly connected world. Cambridge University Press. ISBN 9780521195331 [**, IA]
Felsenstein, J. (2003). Inferring phylogenies. Sinauer Associates. [**, II]
Flach, P.A. (2012). Machine learning: The art and science of algorithms that make
sense of data. Cambridge University Press [**, II]
Galbraith, J.K. (1991). A history of economics. Penguin. [*, IB]
Ghallab, M., Nau, D. & Traverso, P. (2004). Automated planning: theory and practice.
Morgan Kaufmann. [*, IB, II]
Gibson, J.R. (1992). Electronic logic circuits. Butterworth-Heinemann. [*, IA]
Girard, J-Y. (tr. Taylor, P. & Lafont, Y.) (1989). Proofs and types. Cambridge
University Press. [**, II]
Goetz, B. (2006). Java concurrency in practice. Addison-Wesley. ISBN 9780321349606
[***, IB]
Goldreich, O. (2010). P, NP, and NP-Completeness: the basics of computational
complexity. Cambridge University Press. ISBN 9780521122542 [**, IB]
Goodfellow, I., Bengio, Y. & Courville, A. (2016). Deep learning. MIT Press. ISBN
9780262035613. Available at: http://www.deeplearningbook.org/ [**, II]
Gosling, J., et. al. (2015). The Java language specification. Addison-Wesley
(Java SE8 ed.). ISBN 9780133900699. Available at: http://docs.oracle.com/
javase/specs/jls/se8/html/ [**, IB]
Grimmett, G. & Welsh, D. (2014). Probability: an introduction. Oxford University Press
(2nd ed.). ISBN 9780198709978 [***, IA]
Grover, S. (2020). Computer science in K-12: an A-Z handbook on teaching
programming. Edfinity. ISBN 9781734662702 [**, II]
Gunter, C. (1992). Semantics of programming languages: structures and techniques.
MIT Press. [**, II]
Hammack, R. (2018). Book of proof. Privately published (3rd ed.).
ISBN 9780989472104. Available at http://www.people.vcu.edu/~rhammack/
BookOfProof/index.html [***, IA]
Hare, S. (2022). Technology is not neutral: a short guide to technology ethics. London
Publishing Partnership. ISBN 9781907994975 [**, IB]
Harris, D.M. & Harris, S.L. (2013). Digital design and computer architecture. Morgan
Kaufmann (2nd ed.). ISBN 9780123944245 [***, IA, IB]
Hayes, J.P. (1993). Introduction to digital logic design. Addison-Wesley. [**, IA]
Hennessy, J. & Patterson, D. (2019). Computer architecture: a quantitative approach.
Elsevier (6th ed.). ISBN 9780128119051 [**, IB, II]

–3–
Hennessy, M. (1990). The semantics of programming languages. Wiley.
Out of print, but available on the web at http://www.cs.tcd.ie/matthew.hennessy/
splexternal2015/resources/sembookWiley.pdf [**, IB]
Herlihy, M., et. al. (2021). The art of multiprocessor programming. Morgan Kaufmann
(2nd ed.). ISBN 9780124159501. [***, II]
Hindley, J.R. & Seldin, J.P. (2008). Lambda-calculus and combinators, an introduction.
Cambridge University Press (2nd ed.). [***, IB]
Hopcroft, J.E., Motwani, R. & Ullman, J.D. (2007). Introduction to automata theory,
languages, and computation. Addison-Wesley (3rd ed.). ISBN 0321455363 [***, IA, IB]
Horowitz, P. & Hill, W. (2015). The art of electronics. Cambridge University Press (3rd
ed.). ISBN 9780521809269. [*, IA]
Houston, K. (2009). How to think like a mathematician: a companion to undergraduate
mathematics. Cambridge University Press. ISBN 9780521719780. [IA, ***]
Hughes, J.F., et. al. (2013). Computer graphics: principles and practice. Addison-
Wesley (3rd ed.). ISBN 9780321399526 [***, IB]
Huth, M. & Ryan M. (2004). Logic in computer science: modelling and reasoning about
systems. Cambridge University Press (2nd ed.). ISBN 052154310X. [**, IB, II]
Jain, A.R. (1991). The art of computer systems performance analysis. Wiley. [**, II]
Jones, N.C. & Pevzner, P.A. (2004). An introduction to bioinformatics algorithms. MIT
Press. [***, II]
Jurafsky, D. & Martin, J. (2008). Speech and language processing. Prentice Hall.
[***, II]
Katz, J. & Lindell, Y. (2020). Introduction to modern cryptography. CRC Press (3rd
ed.). ISBN 9780815354369 [***, II]
Katz, R.H. (2004). Contemporary logic design. Benjamin/Cummings. The 1994 edition
is more than sufficient. [**, IA]
Kernighan, B.W. & Ritchie, D.M. (1988). The C programming language. Prentice Hall
(2nd ed.). [**, IB]
Keshav, S. (1997). An engineering approach to computer networking. Addison-Wesley
(1st ed.). ISBN 0201634422 [*, II]
Keshav, S. (2011). Mathematical Foundations of Computer Networking. Addison Wesley.
ISBN 9780321792105 [***, II]
Kessenich, J., Sellers, G. & Shreiner, D. (2016). OpenGL programming guide. Addison-
Wesley (9th ed.). ISBN 9780134495491 [**, IA]
Kim, W. & Mauborgne, R. (2015). Blue Ocean Strategy. Harvard Business Review
Press. ISBN 9781625274496 [*, II]
Kleinberg, J. & Tardos, É. (2006). Algorithm design. Addison-Wesley. ISBN
9780321372918. [**, IA, IB]
Kleinrock, L. (1975). Queueing systems, vol. 1. Theory. Wiley. [**, II]
Kleppmann, M. (2017). Designing data-intensive applications. O’Reilly.
ISBN 9781449373320. [**, IB]

–4–
Knuth, D.E. (2011). The art of computer programming. Addison-Wesley (3rd ed.).
ISBN 978-0321751041. [**, IA]
Kozen, D.C. (1997). Automata and computability. Springer-Verlag. [***, IA]
Klemperer, P. (2003). Auctions: theory and practice. Princeton University Press.
ISBN 9780691119250 [**, II]
Kraniauskas, P. (1992). Transforms in signals and systems. Addison-Wesley.
ISBN 0201196948 [**, II]
Kurose, J.F. & Ross, K.W. (2022). Computer networking: a top-down approach.
Pearson (8th ed.). ISBN 9781292405469 [***, IB]
Lambek, J. (1986). Introduction to higher order categorical logic. Cambridge University
Press. ISBN 0521356539 [*, II]
Lamport, L. (1994). LaTeX – a documentation preparation system user’s guide and
reference manual. Addison-Wesley (2nd ed.). [***, IB]
Lang, J. (2001). The high-tech entrepreneur’s handbook: how to start and run a high-tech
company. FT.COM/Prentice Hall. [**, II]
Leffler, S. (1989). The design and implementation of the 4.3BSD Unix operating system.
Addison-Wesley. [**, IA]
Lehman, E., Leighton, F.T. & Meyer, A.R. (2012). Mathematics for computer science.
Available at http://courses.csail.mit.edu/6.042/spring12/mcs.pdf. [***, IA]
Lemahieu, W., Broucke S. van den & Baesens, B. Principles of database management.
Cambridge University Press. ISBN 9781107186125 [***, IB]
Lyons, R.G. (2010). Understanding digital signal processing. Prentice Hall (3rd ed.).
ISBN 9780132119375 [***, II]
MacKay, D.J. (2003). Information theory, inference, and learning algorithms.
Cambridge University Press. ISBN 9780521642989 [***, II]
Manning, C.D. & Schütze, H. (1999). Foundations of statistical natural language
processing. MIT Press. ISBN 9780262133609 [**, III]
Marinescu, D.C. (2022). Cloud computing: theory and practice. Morgan Kaufmann (3rd
ed.). ISBN 9780323852777 [***, II]
Marschner, S. & Shirley, P. (2022). Fundamentals of computer graphics. Peters (5th
ed.). ISBN 9780367505035 [***, II]
Maurya, A. (2012). Running lean: Iterate from plan A to a plan that works. O’Reilly
(2nd ed.). ISBN 9781449305178 [*, II]
McGeoch, C.C. (2014). Adiabatic quantum computation and quantum annealing.
Morgan and Claypool. ISBN 9781627055925 [*, II]
McKusick, M.K., Neville-Neil, G.V., and Watson, R.N.M. (2014). The Design and
implementation of the FreeBSD operating system. (2nd ed.). Pearson Education.
ISBN 9780321968975 [**, IA]
Mead, C. & Conway, L. (1980). Introduction to VLSI systems. Addison-Wesley. [*, IA]
Mermin, N.D. (2007). Quantum computer science. Cambridge University Press. [**, II]
Mitchell, J.C. (2003). Concepts in programming languages. Cambridge University Press.
[***, IB]

–5–
Mitchell, T.M. (1997). Machine Learning. McGraw-Hill. ISBN 0071154671 [**, II]
Mittelbach, F., et al. (2004). The LATEX companion. Addison-Wesley (2nd ed.). ISBN
0201362996. [*, II]
Mitzenmacher, M. & Upfal, E. (2017). Probability and computing: randomized
algorithms and probabilistic analysis. Cambridge University Press (2nd ed.).
ISBN 9781107154889. [**, IB, II]
Mogensen, T. Æ. (2011). Introduction to compiler design. Springer.
ISBN 9780857298287. Available at http://www.diku.dk/~torbenm/Basics. [**, IB]
Muchnick, S. (1997). Advanced compiler design and implementation. Morgan
Kaufmann. [**, II]
Murphy, K.P. (2012). Machine Learning: A Probabilistic Perspective. MIT Press. ISBN
9780262018029 [**, II]
Nielsen, M.A. & Chuang, I.L. (2010). Quantum computation and quantum information.
Cambridge University Press (2nd ed.). [***, II]
Nielson, F., Nielson, H.R. & Hankin, C.L. (1999). Principles of program analysis.
Springer. [***, II]
O’Keefe, R. (1990). The craft of Prolog. MIT Press. [*, IB]
Odersky, M. (2008). Scala by example. Programming Methods Laboratory, EPFL.
[**, IB]
Okasaki, C. (1998). Purely functional data structures. Cambridge University Press.
[**, IA]
Oppenheim, A.V. & Schafer, R.W. (2007). Discrete-time digital signal processing.
Prentice Hall (3rd ed.). [**, II]
Osterwalder, A. & Pigneur, Y. (2010). Business model generation: a handbook for
visionaires, game changers, and challengers. Wiley. ISBN 9780470876411 [*, II]
Papadimitriou, Ch.H. (1994). Computational complexity. Addison-Wesley. [***, IB]
Patterson, D. & Hennessy, J. (2020). Computer organisation and design. Morgan
Kaufmann (2nd RISC-V ed.). ISBN 9780128203316 [***, IA, IB]
Peterson, L.L. & Davie, B.S. (2021). Computer networks: a systems approach. Morgan
Kaufmann (6th ed.). ISBN 9780128182000 [**, IB]
Pierce, B.C. (2002). Types and programming languages. MIT Press. ISBN 0262162091
[***, IB, II]
Pierce, B.C. (2005). Advanced topics in types and programming languages. MIT Press.
ISBN 0262162288 [**, II]
Pinker, S. (2011). The Better Angels of our Nature. Penguin. ISBN 9780141034645
[*, IB]
Poole, D. L. & Mackworth, A. K. (2023). Artificial intelligence: foundations of
computational agents. Cambridge University Press (3rd ed.). ISBN 9781009258197
[**, IB]
Poundstone, W. (1992). Prisoner’s dilemma. Anchor Books. [*, IB]
Pratt, T.W. & Zelkowitz, M.V. (2001). Programming languages: design and
implementation. Prentice Hall (4th ed.). [**, IB]

–6–
Robbins, A. (2005). Unix in a nutshell. O’Reilly (4th ed.). [**, IB]
Rogers, S. & Girolami, M. (2016). A First course in machine learning. Chapman & Hall
(2nd ed.). ISBN 9781498738484 [***, II]
Ross, S.M. (2002). Probability models for computer science. Academic Press.
[***, IB, II]
Ross, S.M. (2020). A First course in probability. Pearson (10th ed.).
ISBN 9781292269207 [***, IA]
Ruslan M. (2003) The Oxford Handbook of Computational Linguistics. Oxford
University Press. ISBN 0198238827 [*, III]
Russell, S. & Norvig, P. (2022). Artificial intelligence: a modern approach. Prentice Hall
(4th ed.). ISBN 9781292401133 [***, IB, II]
Schwartz, R.L., Foy, B.D. & Phoenix, T. (2011). Learning Perl. O’Reilly (6th ed.).
[**, IB]
Scott, M.L. (2016). Programming language pragmatics. Morgan Kaufmann (4th ed.).
ISBN 9780124104099 [***, IB]
Sedgewick, R. & Wayne, K. (2011). Algorithms. Addison-Wesley (4th ed.).
ISBN 9780321573513. [**, IA]
Sentance, S., et. al. (2023). Computer science education: perspectives on teaching and
learning in school. Bloomsbury (2nd ed.). ISBN 9781350296909 [***, II]
Shalev-Schwartz, S. & Ben-David, S. (2014). Understanding machine learning: from
theory to algorithms. Cambridge University Press. ISBN 9781107057135 [**, II]
Shapiro, C. & Varian, H. (1998). Information rules. Harvard Business School Press.
[***, IB, II]
Sharp, H., Rogers, Y. & Preece, J. (2023). Interaction design. Wiley (6th ed.). ISBN
9781119901099 [*, IA]
Silberschatz, A., Gagne, G. & Galvin, P.C. (2019). Operating systems concepts. Wiley
(10th ed.). ISBN 9781119454083 [**, IA]
Sipser, M. (2013). Introduction to the theory of computation. Cengage (3rd ed.).
ISBN 9781133187790 [**, IB]
Standage, T. (1999). The Victorian Internet. Phoenix Press. [*, II]
Stein, J. (2000). Digital signal processing: a computer science perspective. Wiley. [**, II]
Sterling, L. & Shapiro, E. (1994). The art of Prolog. MIT Press (2nd ed.). [**, IB]
Stevens, W.R. & Fall, K.R. (2012). TCP/IP illustrated, vol. 1: the protocols. Addison-
Wesley (2nd ed.). ISBN 9780321336316 [**, II]
Stevens, W.R., Fenner, B. & Rudoff, A.M. (2003). UNIX network programming, Vol.I:
The sockets networking API. Prentice Hall (3rd ed.). [**, IB]
Stone, J.V. (2015). Information theory: a tutorial introduction. Sebtel Press. ISBN
9780596372857 [**, II]
Sudkamp, T.A. (2005). Languages and machines. Addison-Wesley (3rd ed.). [**, IB]
Szeliski, R. (2010). Computer vision: algorithms and applications. Springer. ISBN
9781848829343 [***, II]

–7–
Tanenbaum, A.S. & Bos, H. (2022). Modern operating systems. Pearson Education
(5th ed.). ISBN 9781292459660. Available at: https://csc-knu.github.io/sys-
prog/books/Andrew S. Tanenbaum - Modern Operating Systems.pdf [**, IB]
Tanenbaum, A.S. & van Steen, M. (2017). Distributed systems. Create Space (3rd ed.).
ISBN 9781543057386 Available at: https://www.distributed-systems.net/
index.php/books/ds3/ [**, IB]
Tennent, R. (1991). Semantics of programming languages. Prentice Hall. [**, II]
Thaler, R.H. (2016). Misbehaving. Penguin. ISBN 9780241951224 [*, IB]
Urma, R.-G., Fusco, M. & Mycroft, A. (2019). Modern Java in action: lambda, streams,
functional and reactive programming. Manning. ISBN 9781617293566 [***, IA]
Urma, R.-G. & Warburton, R. (2019). Real world software development: a project driven
guide to fundamentals in Java. O’Reilly. ISBN 9781491967171 [***, IA]
Van Oorschot, P. (2021). Computer security and the internet. Springer (2nd ed.).
ISBN 9783030834104 Available at: https://people.scs.carleton.ca/~paulv/
toolsjewels.html [*, IB]
Varian, H. (1999). Intermediate microeconomics – a modern approach. Norton (9th ed).
ISBN 9780393920772 [**, IB]
Velleman, D.J. (1994). How to prove it (a structured approach). Cambridge University
Press. [***, IA]
Watt, A. (2000). 3D Computer graphics. Addison-Wesley (3rd ed). ISBN 0201398559
[**, II]
Weste, N.H.E. & Harris, D. (2011). Integrated circuit design. Addison-Wesley (4th ed.).
ISBN 9780321696946 [*, IA]
Whitington, J. (2013). OCaml from the very begining. Coherent Press.
ISBN 9780957671102 [***, IA]
Williamson, D.P. & Shmoys, D.B. (2011). The Design of approximation algorithms.
Cambridge University Press. ISBN 9780521195270. [**, II]
Wilhelm, R. (1995). Compiler design. Addison-Wesley. [**, II]
Winskel, G. (1993). The formal semantics of programming languages. MIT Press.
[**, IB, II]
Zhang, B. (2020). Machine learning and visual perception. De Gruyter. ISBN
9783110595536. [**, II]

–8–

You might also like