Skip to main content

Open Educational Resources: Computer Science

Top Picks

Operating Systems and Middleware: Supporting Controlled Interaction

This text is designed for upper-level computer science students who want to understand how operating systems and middleware products work, and why they work that way.

Database Design - 2nd Edition

"Database Design - 2nd Edition covers database systems and database design concepts. New to this edition are SQL info, additional examples, key terms and review exercises at the end of each chapter." (Nelson Eng)

Eloquent Javascript: A Modern Introduction to Programming

This text is set in three parts: the first part explains and explores JavaScript language, the second part explores web browsers and how they interact with JavaScript, and the third part is devoted to Node.js.

Think Python - 2nd Edition

"Think Python is an introduction to Python programming for beginners. It starts with basic concepts of programming, and is carefully designed to define all terms when they are first used and to develop each new concept in a logical progression." (Green Tea Press)

*this text is made for Python 3, the first edition of the text is available for Python 2

Foundations of Computation

This text is made for a one-semester course in theoretical computer science. "The first half of the course covers material on logic, sets, and functions that would often be taught in a course in discrete mathematics. The second part covers material on automata, formal languages, and grammar that would ordinarily be encountered in an upper level course in theoretical computer science." (

Textbook Databases

These links will take you directly to the portions of textbook databases that contain materials relevant to your subject. This is not an exhaustive list; we encourage you to investigate the Open Textbooks tab for additional content. 

Search for Similar Materials by ISBN

General Purpose Databases

Journal and Article Databases