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
Mathematics for Computer Science
Eric Lehman, F. Thomson Leighton, & Alberty R. Meyer · Google and Massachusetts Institute of Technology
In the contents: 3.02: Propositional Logic in Computer Programs · 6.05: Induction in Computer Science

External
Computer Science from the Bottom Up
Ian Wienand · Red Hat
In the contents: 03: Computer Architecture

External
Discrete Mathematics for Computer Science
Jin He · Fresno City College
In the contents: 1.08: Propositional Logic in Computer Programs

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
Culturally Responsive Computing: An Introduction into Computer Science, Security, and Technology
Devan Walton · ROTEL · 2024
"Culturally Responsive Computing" is an essential textbook that explores the intricate relationship between technology and global societies. It gives students and professionals a deep understanding of how cultural contexts shape and are shaped by computing practices, from algorithm design to user interface development. This book equips readers with the knowledge and skills to create inclusive, ethical, and culturally sensitive technological solutions for our diverse world.

External
Computer Science I
Chris Bourke · Chris Bourke · 2018
This textbook covers the traditional introductory Computer Science I topics but takes a unique approach. Topics are covered in a language-agnostic manner in the first part with supplemental parts that cover the same concepts in a specific language. The current version covers C, Java, and PHP. This textbook as been used in several Computer Science I sections over multiple years at the University of Nebraska-Lincoln
External
Introduction to Computer Science
Dr. Jean-Claude Franchitti; Amal Alhosban; Mark Buckler; Joanna Gilberti · OpenStax, Rice University
Introduction to Computer Science provides a comprehensive foundation in core computer science concepts and principles, aligning with the scope and sequence of most introductory computer science courses. The offering serves as an engaging entry point for students pursuing diverse fields of study and employment, including computer science, business, engineering, data science, social sciences, and related disciplines. By addressing a broad learner audience—ranging from computer science majors to non-majors—the book offers a thorough introduction to computational thinking and its applications across multiple domains. Introduction to Computer Science is designed to be both interactive and practical, focusing on real-world applications that showcase how core computer science concepts can be used to solve complex problems. Students will explore foundational concepts, such as algorithms, data structures, computer systems organization, and software development, using an array of engaging, hands-on activities. Introduction to Computer Science also includes advanced topics such as machine learning, cybersecurity, and cloud computing, ensuring students have a solid foundation for continued study and future professional success. The offering integrates meaningful learning experiences through chapter-based scenarios, problem-solving exercises, embedded coding activities, and project-based assessments that encourage students to apply what they learn in authentic contexts. The material also includes an array of industry insights and explorations of emerging technology trends in order to provide a holistic approach to learning that extends beyond theory.

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.

External
Deep into Pharo
Alexandre Bergel, Damien Cassou, Stéphane Ducasse, Jannik Laval · LibreTexts
Pharo is a clean, innovative, open-source, live-programming environment. Deep into Pharo is the second volume of a series of books covering Pharo. Whereas the first volume is intended for newcomers, this second volume covers deeper topics. You will learn about Pharo frameworks and libraries such as Glamour, PetitParser, Roassal, FileSystem, Regex, and Socket. You will explore the language with chapters on exceptions, blocks, small integers, and floats.

External
The Missing Link - An Introduction to Web Development
Michael Mendez · SUNY Fredonia
Web development is an evolving amalgamation of languages that work in concert to receive, modify, and deliver information between parties using the Internet as a mechanism of delivery. While it is easy to describe conceptually, implementation is accompanied by an overwhelming variety of languages, platforms, templates, frameworks, guidelines, and standards. Navigating a project from concept to completion often requires more than mastery of one or two complementing languages.