Computer Science


This guide can help you find Computer Science / Information Technology materials from various OER providers.

Please visit the Open Educational Resources Subject Guide to learn more about the following:

  • General OER providers
  • Finding and evaluating OER
  • Licensing
  • Attribution

Helpful Websites

Discovery Search

Open Educational Textbooks

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.

Written by: Adrienne Watt

Licensing: CC BY 4.0

Think Java: How to Think Like a Computer Scientist

Think Java is an introduction to computer science and programming intended for readers with little or no experience. We start with the most basic concepts and are careful to define all terms when they are first used. The book presents each new idea in a logical progression. Larger topics, like recursion and object oriented programming, are divided into smaller examples and introduced over the course of several chapters.

Written by: Allen B. Downey

Licensing: Creative Commons Attribution-NonCommercial 3.0 License

Eloquent Javascript

Eloquent JavaScript: A Modern Introduction to Programming              

This book contains roughly three parts. The first 11 chapters discuss the JavaScript language itself. The next eight chapters are about web browsers and the way JavaScript is used to program them. Finally,two chapters are devoted to Node.js, another environment to program JavaScript in.Throughout the book, there are five project chapters, which describe larger example programs to give you a taste of real programming. In order of appearance, we will work through building an artificial life simulation,a programming language, a platform game, a paint program,and a dynamic website.

Written by: Marijn Haverbeke

Licensing: (CC BY-NC 3.0)

Object Oriented Programming using C#

Object Oriented Programming using C#

This book will explain the Object Oriented approach to programming and through the use of small exercises, for which feedback is provided, develop some practical skills as well.

Written by: Simon Kendal

Licensing: (CC BY 3.0)

Structured Programming With C++

Structured Programming with C/C++ is primarily to teach how to ”think programming” and secondarily to teach C++ code. Each chapter contains theoretical parts and programming examples. At the end of each chapter there is a bunch of exercises for your practice. At the end of the book you will find solutions to the exercises.

Written by: Kjell Bäckman

Licensing: (CC BY 3.0)

Computer Networking: Principles, Protocols and Pra

Computer Networking: Principles, Protocols and Practice

"Computer Networking : Principles, Protocols and Practice" is an open-source ebook that explains the main principles of Computer Networking and the key protocols that are used on the Internet.

Written by: Bonaventure, Olivier

Licensing: CC BY 4.0

How to Think Like A Computer Scientist

How to Think Like a Computer Scientist: C++ Version



The goal of this book is to teach you to think like a computer scientist. I like the way computer scientists think because they combine some of the best features of Mathematics, Engineering, and Natural Science. Like mathematicians,computer scientists use formal languages to denote ideas (specifically computations). Like engineers, they design things, assembling components into systems and evaluating tradeoffs among alternatives. Like scientists, they observe the behavior of complex systems, form hypotheses, and test predictions.The single most important skill for a computer scientist is problem-solving. By that I mean the ability to formulate problems, think creatively about solutions, and express a solution clearly and accurately. As it turns out, the process of learning to program is an excellent opportunity to practice problem-solving skills

Written by: Allen B. Downey

Licensing: (CC BY-NC)


Subject OER Collections

Open Courses