Digital library
Textbooks, references and open learning resources.

External
Introduction to Computer Science
OpenStax · LibreTexts
In the contents: 01: Introduction to Computer Science · 1.01: Computer Science · 1.02: Computer Science across the Disciplines

External
Think Complexity: Exploring Complexity Science with Python
Allen B. Downey · Olin College
In the contents: 01: Complexity Science · 1.01: The changing criteria of science

External
Mathematics for Computer Science
Eric Lehman, F. Thomson Leighton, & Alberty R. Meyer · Google and Massachusetts Institute of Technology
In the contents: 6.05: Induction in Computer Science

External
Principles of Data Science
OpenStax · LibreTexts
In the contents: 01: What Are Data and Data Science · 1.01: What Is Data Science · 1.02: Data Science in Practice

External
The Crystal Ball - Instruction Manual I: Introduction to Data Science
Stephen Davies · University of Mary Washington
In the contents: 1.01: Defining Data Science

External
CIS211: Support for Foundations of Data Science for All
Clare Nguyen · De Anza College
This course is a review of core prerequisite skills, competencies, and concepts needed whenstudying data science, intended for students who are concurrently enrolled in Data Science for All.

External
DSCI 500B Essential Probability Theory for Data Science (Kuter)
Kristin Kuter · Saint Mary's College
LibreTexts

External
Computer Science from the Bottom Up
Ian Wienand · Red Hat
Computer science is often taught from the "top down"; applications, high level programming, software design and development theory, possibly data structures. Students will probably be exposed to binary, hopefully binary logic, possibly even some low level concepts such as registers, opcodes and the like at a superficial level. This book aims to move in completely the opposite direction, working from operating systems fundamentals through to how those applications are complied and executed.

External
Discrete Mathematics for Computer Science
Jin He · Fresno City College
LibreTexts

External
Discrete Mathematics for Computer Science
Mark A. Fitch · University of Alaska Anchorage
In class materials for an introduction to logic, proof, enumeration, relations, and graph theory for lower division undergraduate students of computer science and computer systems engineering. These materials were designed to introduce concepts of logic and discrete mathematics via carefully picked problems that test understanding of definitions. Another source of exercises is required at this time.

External
Programming Fundamentals - A Modular Structured Approach, 2ed.
Kenneth Leroy Busbee and Dave Braunschweig · LibreTexts
The goal for this text is to make it programming-language neutral, so that it may serve as an introductory programming textbook for students using any of a variety of programming languages, including C++, C#, Java, JavaScript, Python, and Swift. Programming concepts are introduced generically, with logic demonstrated in pseudocode and flowchart form, followed by examples for different programming languages. Emphasis is placed on a modular, structured approaches.

External
Computer Networks - A Systems Approach
Peterson and Davie · LibreTexts
Peterson and Davie organize discussion of fundamental concepts in a way that is independent of layering. Thus, after reading the book, readers will understand flow control, congestion control, reliability enhancement, data representation, and synchronization, and will separately understand the implications of addressing these issues in one or another of the traditional layers.

External
A Brief Introduction to Engineering Computation with MATLAB
Serhat Beyenir · British Columbia Institute of Technology
The strategic goal of the course and book is to provide learners with an appreciation for the role computation plays in solving engineering problems. MATLAB specific skills that students are expected to be proficient at are: write scripts to solve engineering problems including interpolation, numerical integration and regression analysis, plot graphs to visualize, analyze and present numerical data, and publish reports.

External
Programming Fundamentals - A Modular Structured Approach using C++
Kenneth Leroy Busbee · Houston Community College
This text is written by Kenneth Leroy Busbee, a faculty member at Houston Community College in Houston, Texas. The materials used in this textbook/collection were developed by the author and others as independent modules. Programming fundamentals are often divided into three college courses: Modular/Structured, Object Oriented and Data Structures. This textbook/collection covers the first of those three courses.

External
Introduction to Computer Graphics
David J. Eck · Hobart and William Smith Colleges
Introduction to Computer Graphics covers the fundamentals of computer graphics and computer graphics programming. This book is meant for use as a textbook in a one-semester course that would typically be taken by undergraduate computer science majors in their third or fourth year of college.

External
Squeak by Example
Andrew P. Black, Stéphane Ducasse, Oscar Nierstrasz, Damien Pollet · LibreTexts
Squeak by Example, intended for both students and developers, will guide you gently through the Squeak language and environment by means of a series of examples and exercises. The book helps you get started with A Quick Tour of Squeak and guides you through A First Application.

External
Object-Oriented Reengineering Patterns
Serge Demeyer, Stéphane Ducasse, & Oscar Nierstrasz · LibreTexts
This text is a guide on how to reverse engineer legacy systems to understand their problems, and then reengineer those systems to meet new demands. Patterns are used to clarify and explain the process of understanding large code bases, to transform them to meet new requirements. The key insight is that the right design and organization of your system is not something that can be evident from the initial requirements alone, but as a consequence of understanding how these requirements evolve.

External
Open Data Structures - An Introduction
Pat Morin · Carleton University
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.

External
Programming for the Web - From Soup to Nuts - Implementing a Complete GIS Web Page
Charles W. Kann III · Gettysburg College
This book is designed to be used as a class text but should be easily accessible to programmers interested in Web Programming. It should even be accessible to an advanced hobbyist.

External
Introduction to Assembly Language Programming: From Soup to Nuts - ARM Edition
Charles W. Kann III · Gettysburg College
This is an ARM Assembly Language Textbook designed to be used in classes such as Computer Organization, Operating Systems, Compilers, or any other class that needs to provide the students with a overall of Arm Assembly Language. As with all Soup to Nuts books, it is intended to be a resource where each chapter builds on the material from previous chapters, and leads the reader from a rudimentary knowledge of assembly language to a point where they can use it in their studies.