Skip to Main Content

Open Educational Resources (OER)

An informative guide on what OER are and what services we offer to support your adoption of OER.

Computer Science

Database Design by Adrienne Watt and Nelson Eng

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. (Sources: BCcampus OpenEdOER Commons, and Open Textbook Library)

 

 

Elements of Robotics by Mordechai Ben-Ari and Francesco Mondada

Elements of Robotics bridges the gap between playing with robots in school and studying robotics at the upper undergraduate and graduate levels to prepare for careers in industry and research. Robotic algorithms are presented formally, but using only mathematics known by high school and first-year college students, such as calculus, matrices and probability. Concepts and algorithms are explained through detailed diagrams and calculations. (Source: MERLOT)

 

 

Eloquent JavaScript: A Modern Introduction to Programming by Marijn Haverbeke

Eloquent JavaScript 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. (Source: Open Textbook Library)

 

The Essence of Software Engineering by Volker Gruhn and Rüdiger Striemer

This book includes contributions by leading researchers and industry thought leaders on various topics related to the essence of software engineering and their application in industrial projects. It offers a broad overview of research findings dealing with current practical software engineering issues and also pointers to potential future developments. (Source: Springer Link)

 

 

Foundations of Computation by Carol Critchlow and David Eck

Foundations of Computation is a textbook for a one semester introductory course in theoretical computer science. It includes topics from discrete mathematics, automata theory, formal language theory, and the theory of computation, along with practical applications to computer science. It has no prerequisites other than a general familiarity with computer programming. (Source: Open Textbook Library and OER Commons)

 

 

Information Systems for Business and Beyond by David Bourgeois

Information Systems for Business and Beyond is written as a text to introduce students to the concept of information systems, their use in business, and the larger impact they are having on our world. Learning objectives can be found at the beginning of each chapter, and the end of each chapter includes a set of study questions and exercises. (Source: Open Textbook Library and OER Commons)

 

An Introduction to Computer Networks by Peter Dordal

An Introduction to Computer Networks is a general-purpose computer-networking textbook, complete with diagrams and exercises. It covers the LAN, internetworking and transport layers, focusing primarily on TCP/IP. Particular attention is paid to congestion; other special topics include queuing, real-time traffic, network management, security and the ns simulator. (Source: Open Textbook Library)

 

Introduction to Programming Using Java by David Eck

The Seventh Edition of Introduction to Programming Using Java is a textbook on introductory programming, which uses Java as the language of instruction. This book is directed mainly towards beginning programmers, although it might also be useful for experienced programmers who want to learn something about Java. (Source: Open Textbook Library) 

 

 

Mathematics for Computer Science by Eric Lehman, F. Thomson Leighton, and Albert R. Meyer

Mathematics for Computer Science covers elementary discrete mathematics for computer science and engineering. It emphasizes mathematical definitions and proofs as well as applicable methods. This is the textbook used for the MIT undergraduate course, Mathematics for Computer Science. Full course materials, including lectures, assessments, assignments and exams, can be accessed on the MIT OpenCourseWare site. (Source: MIT OpenCourseWare)

 

The Missing Link: An Introduction to Web Development and Programming by Michael Mendez

The Missing Link provides the developer with an understanding of the various elements of web development by focusing on the concepts and fundamentals through the examples within, providing a foundation that allows easier transition to other languages and a better understanding of how to approach their work. (Source: Open SUNY Textbooks and Open Textbook Library)

 

Nature of Geographic Information Systems by David DiBiase

Nature of Geographic Information Systems explores the nature of geographic information through investigation of the properties of geographic data and the technologies and institutions that produce it. (Sources: BCcampus OpenEd and Open Textbook Library)

 

 

Open Data Structures: An Introduction by Pat Morin

Offered as an introduction to the field of data structures and algorithms, Open Data Structures covers the implementation and analysis of data structures for sequences (lists), queues, priority queues, unordered dictionaries, ordered dictionaries, and graphs. Focusing on a mathematically rigorous approach that is fast, practical, and efficient, Morin clearly and briskly presents instruction along with source code. (Sources: Open Textbook LibraryBCcampus OpenEd, and OER Commons)

 

 

Think Java by Allen Downey and Chris Mayfield

Think Java is an introduction to computer science and programming intended for people 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. (Sources: OER Commons and Open Textbook Library)

 

Think Perl 6 by Laurent Rosenfeld, with Allen Downey 

Think Perl 6 is an introduction to computer science and programming intended for people with little or no experience. The aim of this book is not primarily to teach Perl 6, but instead to teach the art of programming, using the Perl 6 language. After having completed this book, readers should be able to write programs to solve relatively difficult problems in Perl 6, while understanding basic concepts of computer science, software programming, and problem solving. (Source: OpenLibra)

 

Think Python by Allen B. Downey

Think Python, 2nd Edition, is an introduction to Python programming for beginners. It starts with basic concepts of programming and is carefully designed to define all terms when the are first used and to develop each new concept in a logical progression. Larger pieces, like recursion and object-oriented programming are divided into a sequence of smaller steps and introduced over the course of several chapters. (Sources: MIT OpenCourseWare and OER Commons)

Mathematics for Computer Science
MIT OpenCourseWare
This course serves as an introduction to discrete mathematics, probability, and mathematical thinking for computer scientists. On completion of the course, students will be able to explain and apply the basic methods of discrete (noncontinuous) mathematics in computer science and will be able to use these methods in subsequent courses in the design and analysis of algorithms, computability theory, software engineering, and computer systems.

 

Principles of Computing with Python
Carnegie Mellon University Open Learning Initiative
This course provides an introduction to Python and elementary principles of computing, including iteration, recursion, and binary representation of data. The goal of this course is to introduce some of the techniques used in computer science to solve complex problems. The Python modules are used to introduce and illustrate conditionals and iteration; additional topics are provided without using a specific programming language and can be incorporated into classes that do not use Python.