Textbook and Resource Suggestions for IB Computer Science (first exams 2014)

The following are only suggestions, not recommendations. Teachers will need to make their own judgment of which books and materials are most appropriate for their classes.

Core Syllabus | OOP Option | Database Option | Web Science Option | Modeling Sim. Option | Various Topics

Core Syllabus top

Core Computer Science: For the IBDP Computer Science Program, by Kostas Dimitriou and Markos Hatzitaskos (c) 2015

Core Computer Science: For the IB Diploma Program is a new educational resource for all students who need to understand the core themes of Computer Science. The book references the assessment statements in the 2014 IB Computer Science subject guide, while remaining flexible enough to be used in any educational setting, including programming courses. The book comprehensively presents all core Computer Science aspects in plain English, allowing native and non-native English language users to gain the maximum benefit. Key features: Plain English language, Diagrams and illustrations for key concepts, More than 200 examination-style questions with answers, Use of flowcharts, pseudo-code, as well as the creation of actual working code in the Java Programming Language, References to the assessment statements in the IB Computer Science subject guide.

Computer Science Illuminated, by Dale and Lewis (c) 2011

This book is useful for the Core syllabus (minimal programming), as well as some of the HL extension. It is not language specific, using pseudocode when talking about algorithms. It is well written and readable by high school students. The book includes interesting stories about the computer industry and history of computing - good discussion items. A large number of pages, including the TOC and glossary of terms, are available on:
4th Edition - http://books.google.com. . . .Online resources for 3rd Edition
5th Edition - http://books.google.com.hk/boo...=y#v=onepage&q&f=false
suggested by Dave Mulkey (Mark Hayes provided the 5th Edition link)

Computer Science - an Overeview , by J. Glenn Brookshear (c) 2011

table of contents
This is a traditional bottom-up approach to the subject, starting with binary and RAM and ROM, developing to higher and higher levels of abstraction. I seems to cover the syllabus well. Some teachers may find this order preferable to the "breadth first" presentation of Computer Science Illuminated. I used the first edition many years ago. It's clearly written and high school students find it readable.
suggested by Dave Mulkey

How Stuff Works Web-site, by various authors (c) 1998-present

Thoroughly explains various vocabulary. hardware and systems topics. Contains many embedded pictures, animations and videos. The explanations are at a reasonable technical level, sometimes challenging but still readable by ambitious high school students. They provide good impetus for class discussions of hardware and systems. These articles are updated on a continuing basis to include new technologies.
suggested by Dave Mulkey

Blown to Bits, by Abelson, Ledeen and Lewis (c) 2008

This book uses interesting stories to introduce technical topics. The discussion remains at a very accessible level throughout, while discussing bits and other details of computing systems in a fashion appropriate for a beginner. The chapters in this book would be a useful starting point for further technical discussion. Univ. Cal. Berkeley is using this in it's introductory Computer Science course "The Beauty and Joy of Computing", which is aimed at the new AP syllabus. The entire book is available as a free .PDF download at: http://www.bitsbook.com/
suggested by Dave Mulkey

Computer Science Java Enabled, by Andrew Meyenn and Richard Jones (c) 2004

IBID Press
Written for the IB Comp Sci syllabus for exams in 2006. Much of the book is suitable for the new syllabus, although it's not in the correct syllabus order. The programming chapter pretty well covers programming for the new core syllabus. The style of writing and the sample problems are consistent with what students could expect in the IB exams (at least under the old syllabus).
suggested by Dave Mulkey

Explorations in Computer Science , by R. Mark Meyer (c) 2006

preview on Google Books
This set of 20 hands on, computer based activities, such as logic circuits, painting algorithms, spreadsheets, etc. doesn't cover the entire course, but does present the right sort of practical work for parts of the course. Teachers will need to add lots more activities, but this is a good start covering many different areas in the core syllabus.
suggested by Dave Mulkey

Great Ideas in Computer Science with Java, by Biermann and Ramm (c) 2002

A general introduction to Computer Science, using interesting ideas and Java as an illustration language. This is the right sort of approach for this course. It covers a variety of topics, including networks, simulation, machine architecture and a wide variety of other topics.
suggested by Dave Mulkey

Algorithmic Adventures, by Hromkovic
“There is a considerable, satisfying and underappreciated depth in the science of computing, it offers so much more than simply a driving licence for using a computer. The author of this book is a top researcher working on the fundamentals of informatics, and he has considerable experience teaching complex subjects in a simple manner. In this book he invites the reader to explore the science of computing, convinced that a good explanation of even the most basic techniques can demonstrate the power and magic of the underlying principles.”
suggested by Richard Taylor

Algorithms unplugged , by Vöcking et al.
“Algorithms specify the way computers process information and how they execute tasks. Many recent technological innovations and achievements rely on algorithmic ideas – they facilitate new applications in science, medicine, production, logistics, traffic, communication and entertainment. Efficient algorithms not only enable your personal computer to execute the newest generation of games with features unimaginable only a few years ago, they are also key to several recent scientific breakthroughs – for example, the sequencing of the human genome would not have been possible without the invention of new algorithmic ideas that speed up computations by several orders of magnitude. The greatest improvements in the area of algorithms rely on beautiful ideas for tackling computational tasks more efficiently. The problems solved are not restricted to arithmetic tasks in a narrow sense but often relate to exciting questions of nonmathematical flavor, such as: How can I find the exit out of a maze? How can I partition a treasure map so that the treasure can only be found if all parts of the map are recombined? How should I plan my trip to minimize cost? Solving these challenging problems requires logical reasoning, geometric and combinatorial imagination, and, last but not least, creativity – the skills needed for the design and analysis of algorithms. In this book we present some of the most beautiful algorithmic ideas in 41 articles written in colloquial, nontechnical language. Most of the articles arose out of an initiative among German-language universities to communicate the fascination of algorithms and computer science to high-school students. The book can be understood without any prior knowledge of algorithms and computing, and it will be an enlightening and fun read for students and interested adults.
suggested by Richard Taylor

Algorithmics: The Spirit of Computing, by Harel
“Presents the most important, concepts, methods and results that are fundamental to the science of computing. It starts by introducing the basic ideas of algorithms, including their structures and methods of data manipulation. It then goes on to demonstrate how to design accurate and efficient algorithms, and discusses their inherent limitations. As the author himself says in the preface to the book: This book attempts to present a readable account of some of the most important and basic topics of computer science, stressing the fundamental and robust nature of the science in a form that is virtually independent of the details of specific computers, languages and formalisms”.
suggested by Richard Taylor

OOP Option top

Introduction to Programming Using Java, by David J. Eck (c) 2006

A very clear, straightforward and complete coverage of Java programming, from basics all the way through Linked-Lists. It's not really "objects first", but it does cover OOP thoroughly. It includes lots of sample code, some of which runs online directly in the text. It's been free for many years and will hopefully continue that way. Includes a simple TextIO class for basic input and output, as well as an introduction to GUI programming.
suggested by Dave Mulkey

Absolute Java, by Walter Savitch (c) 2009

Covers all the Java needed for HL students doing the OOP option. Explanations are very clear and comprehensive. The book is probably too long for students, but it's an excellent resource for teachers.
suggested by Dave Mulkey

Java Programming, From Problem Analysis to Program Design, Fourth edition by D. S. Malik

Preview at: http://books.google.com.co/books?id=FAe0utEYqKoC&printsec=frontcover#v=onepage&q&f=false
Recommended as a good resource book for the OOP Option.
suggested by Fabián Lasso, Colegio Colombo Británico

Database Option top

Database design with UML and SQL , by Tom Jewett (c) 2006

This is the text for a college course, so it probably contains too much material, including many topics that are not in the IB CS syllabus. However, the language is clear and straightforward and should be readable by a competent student. It seems to cover most of the topics for this option. The author claims that his students helped him "debug" the text, so that's a good sign. In any case, it's online and free and should provide a good starting point for the DB option.
suggested by Dave Mulkey

Database System Concepts by Silberschatz, Korth and Sudarshan
This book is now in its 6th edition and is one of the cornerstone texts of database education. It presents the fundamental concepts of database management in an intuitive manner geared toward allowing students to begin working with databases as quickly as possible.The text is designed for a first course in databases at the junior/senior undergraduate level or the first year graduate level. It also contains additional material that can be used as supplements or as introductory material for an advanced course. Because the authors present concepts as intuitive descriptions, a familiarity with basic data structures, computer organization, and a high-level programming language are the only prerequisites. Important theoretical results are covered, but formal proofs are omitted. In place of proofs, figures and examples are used to suggest why a result is true.

Web Science Option top

Web Science : An Interdisciplinary Approach to Understanding the Web

by Hendler, Shadbold, Hall, Berners-Lee, Weitzner (c) 2008

p60-hendler.pdf Communications of the ACM
Not a text-book, but an interesting introduction to the topic. I'm sure Tim Berners-Lee has something useful to say. There's a nice long list of references at the end. The article references a website at http://webscience.org/home.html which looks promising but is still unfinished (but has several article in Greek, if that helps) . This site appears to be aimed at graduate students but has lots of links to various news articles, ppt presentations, etc.
suggested by Dave Mulkey

Web Technologies : a Computer Science Perspective , by Jefferey C. Jackson (c) 2007

preview at Google Books
This covers many of the topics in sections C1 and C2 of the Web Science Option. Explanations are clear and straightforward, although some high school students might find the reading challenging. In any case, it's a good reference book for a teacher.
suggested by Dave Mulkey

Semantic Web for Dummies , by Jeffrey B. Pollock (c) 2009

entire book online here
I hate the title, but this is a very clear, down-to-earth presentation covering many of the topics in the second half of the Web Science Option - semantic web, knowledge management, metadata, RDF, etc. Very clear and readable. The order doesn't match the syllabus, but many topics are covered. It's a good reference book and also readable by students.
suggested by Dave Mulkey

The Royal Society - Video Presentations from the Web Science Conference 2010

Web-site with videos
Notable speakers present lectures about the current state and future of the Web as a communication and information medium. These are fairly high level, abstract but interesting discussions, covering many of the topics in the 2nd half of the Web Science option syllabus - in general terms, not specific detail. If nothing else, there are some great graphics in the presentations.
suggested by Dave Mulkey

Modeling and Simulation Option top

Introduction to Computational Science , by Shiflet and Shiflet (c) 2006

Web-site for the book
The writing is excellent - challenging but readable by a high school student. It covers a lot more than is required for this course, but the first few chapters cover much of the required material for IB Comp Sci. Although the ideas are appropriate, the mathematics goes far beyond the abilities for IB students.
suggested by Dave Mulkey

Mathematical Models with Applications

Web-site with activities
This is a good set of modeling activities designed for high school students. Although they were designed to be doable with mathematical techniques on paper, they can be easily adapted to use of computer techniques.
suggested by Dave Mulkey

Teacher Package : Mathematical Modeling

Web-site with modeling activities
This is a set of interesting modeling scenarios, in a large variety of domains, including medicine, economics and sports. These are quite good ideas with clear explanations that could easily be adapted for use in this course.
suggested by Dave Mulkey

The Nature of Code , by Daniel Shiffman (c) 2012

All about mathematical modelling and simulations - programmed in Java using Processing. A very readable book, with live demonstration programs embedded in the text.
suggested by Dave Mulkey

Various Topics top

Video Lecture Series from Beginning CS at MIT
Starts with "computational thinking", then moves on to various programming topics. Moves slowly at first, but reaches a high level of technical complexity later on. You probably need to watch the lectures in order, as they often refer to previous lectures.
suggested by Dave Mulkey

Understanding Computers and the Internet
Introductory IT course. The lecturer, David J. Malan, is entertaining and keeps it at a good level for beginners. No need to watch these in order - you can skip around to various topics.
suggested by Dave Mulkey

How Computers Work
This is a first year CS course at Harvard. It covers lots of HL topics. The lecturer, David J. Malan, is entertaining and does not move too fast, but the level is above SL students.
suggested by Dave Mulkey

Foundations of Programming Video Tutorials
A very professionally produced, interesting and comprehensive set of tutorials covering basic programming - e.g. the core syllabus. It's based on JavaScript. There are free previews available - well worth a look.
suggested by Craig Leonard Ellis

An online dictionary of lots of technical terms. Easy to use - type your word in the search box, or use a direct link like:
The entries are longer than a normal dictionary, sometimes with diagrams. It contains the same information as the Computer & Internet Dictionary from Random House.