Book scheme

The 1A and 1B students have all been given (on year-long loan) a copy of various text books. Please set them reading from these books as appropriate for your supervisions.

The list below shows the books for each year group and suggestions of which reading you might set for supervisions. If you do something different then please let me know and I'll update the pages. Remember that its really important to 'close the loop' on any reading that you set. Some ideas for how to do this are to ask the students to write brief notes on what they read as part of the supervision work, or to ask students to summarise what they read verbally in supervision (warn them first!).

Part 1A

Paulson, L. ML for the working programmer

Silberschatz, Operating systems concepts (3 of them have copies of this)

Tannembaum, Modern operating systems (the other 3 of them have copies of this)

Cormen, Leiserson, Rivest and Stein, Introduction to algorithms

Harris, Digital design and computer architecture

Kolman, Discrete Mathematical Structures

Part 1B

Bacon, J. & Harris, T. (2003). Operating systems: distributed and concurrent software design

Goetz, B. (2006). Java Concurrency in Practice

Silberschatz, A., Korth, H.F. & Sudarshan, S. (2002). Database system concepts. McGraw-Hill (4th ed.)

Paar, Ch. & Pelzl, J. (2010). Understanding cryptography. Springer

Peterson, L.L. & Davie, B.S. (2011). Computer networks: a systems approach. Morgan Kaufmann (5th ed.)

Mitchell, J.C. (2003). Concepts in programming languages. CUP

Russell, S. & Norvig, P. (2010). Artificial intelligence: a modern approach. Prentice Hall (3rd ed.)

Shirley, P. & Marschner, S. (2009). Fundamentals of Computer Graphics

Hennessy, J. & Patterson, D. (2006). Computer architecture: a quantitative approach. Elsevier (4th ed.)

Papadimitriou, Ch.H. (1994). Computational complexity. Addison-Wesley

Appel, A. (1997). Modern compiler implementation in ML. CUP

Hennessy, M. (1990). The semantics of programming languages