Summer reading list | Computer Science

You might find this reading list useful for preparation over the summer period if you’re due to start your first year of Computer Science at King’s!

Please note that these readings are NOT compulsory, and also subject to change year on year when module content is reviewed and updated.


  • Computer organization and design: the hardware/software interface – David A. Patterson; John L. Hennessy (2012)
  • Data structures & problem solving using Java – Mark Allen Weiss (2010) (recommended reading)
  • Data structures and algorithms in Java – Michael T. Goodrich; Roberto Tamassia; Michael H. Goldwasser (2014) (core reading)
  • Data structures, algorithms, and applications in Java – Sahni, Sartaj (2005) (recommended reading)
  • Database systems: a practical approach to design, implementation, and management – Thomas M. Connolly; Carolyn E. Beg (2015) (additional reading)
  • Discrete mathematics and its applications – Kenneth H. Rosen; Kamala Krithivasan (2013) (recommended reading)
  • Discrete structures, logic, and computability – James L. Hein (2002) (recommended reading)
  • Elementary logic with applications: a procedural perspective for computer scientists – Dov M. Gabbay; O. T. Rodrigues (2016) (core reading)
  • Fundamentals of Database Systems – Ramez Elmasri; Shamkant B. Navathe (2010) (core reading)
  • Java: How to program – Harvey M. Deitel; Paul J. Deitel (2003) (recommended reading)
  • Logic for artificial intelligence and information technology – Dov M.Gabbay (2007) (recommended reading)
  • Objects first with Java: a practical introduction using BlueJ – David J. Barnes; Michael Kölling (2017) (core reading)
  • The essentials of computer organization and architecture – Linda Null; Julia Lobur (2019)
  • Theory of computing: A gentle introduction – Efim Kinber; Carl H. Smith (2001) (recommended reading)


Software Engineering

  • Software Engineering, Global Edition – Ian Sommerville (2015) (core reading)
  • Software engineering: A practitioner’s approach – Roger S. Pressman (2004) (core reading)
  • Refactoring: Improving the design of existing code – Martin Fowler (2000) (additional reading)


  • Clean code: a handbook of agile software craftsmanship – Robert C. Martin (2009) (core reading)
  • Agile!: the good, the hype and the ugly – Bertrand Meyer-Stabley (2014) (recommended reading)
  • Extreme programming explained: Embrace change – Kent Beck (2000) (additional reading)


  • UML @ Classroom – Martina Seidl; Marion Scholz; Christian Huemer; Gerti Kappel (2015) (core reading)
  • UML distilled: a brief guide to the standard object modeling language – Martin Fowler (2004) (additional reading)
  • Object-oriented software engineering: using UML, patterns and, Java – Bernd Bruegge; Allen H. Dutoit (2014) (recommended reading)

Design Patterns

  • Design patterns: Elements of reusable object-oriented software – Erich Gamma (2015) (core reading)
  • Pattern Language – Christopher Alexander (1977) (additional reading)


Find out more

Check out Ayu’s introduction to King’s Tech Society

Have a look at Joey’s tips for international students

Be the first to comment

Leave a Reply

Your email address will not be published.