Digital library
Textbooks, references and open learning resources.

External
Introduction to Social Network Methods
Robert Hanneman & Mark Riddle · University of California, Riverside
This on-line textbook introduces many of the basics of formal approaches to the analysis of social networks.

External
Physical Modeling in MATLAB
Allen B. Downey · Olin College
Modeling and simulation are powerful tools for explaining the world, making predictions, designing things that work, and making them work better. Learning to use these tools can be difficult; this book is my attempt to make the experience as enjoyable and productive as possible. By reading this book—and working on the exercises—you will learn some programming, some modeling, and some simulation. With basic programming skills, you can create models for a wide range of physical systems.

External
Introduction to Programming using Fortran 95/2003/2008
Ed Jorgensen · University of Navada, Las Vegas
This text provides an introduction to programming and problem solving using the Fortran 95/2003/2008 programming language. This introduction is geared for non computer science majors. As such, this text is not a complete, comprehensive guide to the Fortran 95/2003/2008 programming language. The primary focus is on an introduction to problem solving and algorithm development. As such, many details of the Fortran 95/2203/2008 language are omitted.

External
Statistical Analysis of Data for Engineers
Joshua Steimel · Cal Poly Humbolt
LibreTexts

External
Think Python - How to Think Like a Computer Scientist (Downey)
Allen B. Downey · Olin College
Think Python is a concise introduction to software design using the Python programming language. Intended for people with no programming experience, this book starts with the most basic concepts and gradually adds new material. Some of the ideas students find most challenging, like recursion and object-oriented programming, are divided into a sequence of smaller steps and introduced over the course of several chapters.

External
Think Python 2ed.
Allen B. Downey · Olin College
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. Larger pieces, like recursion and object-oriented programming are divided into a sequence of smaller steps and introduced over the course of several chapters.

External
Think Complexity: Exploring Complexity Science with Python
Allen B. Downey · Olin College
Complex systems include networks and graphs, cellular automatons, agent-based models and swarms, fractals and self-organizing systems, chaotic systems and cybernetic systems. This book is primarily about complexity science, but studying complexity science gives you a chance to explore topics and ideas you might not encounter otherwise, practice programming in Python, and learn about data structures and algorithms.

External
Structure and Interpretation of Computer Programs
Harold Abelson, Gerald Sussman & Julie Sussman · Massachusetts Institute of Technology
The material in this book has been the basis of MIT's entry-level computer science subject and emphasizes several new themes. The most important of these is the central role played by different approaches to dealing with time in computational models: objects with state, concurrent programming, functional programming, lazy evaluation, and nondeterministic programming. We have included new sections on concurrency and nondeterminism, and we have tried to integrate this theme throughout the book.

External
Writing Spaces - Web Writing Style Guide
Matt Barton, James Kalmbach, & Charles Lowe et al. · LibreTexts
The Writing Spaces Web Writing Style Guide was created as a crowdsourcing project of Collaborvention 2011: A Computers and Writing Unconference. College writing teachers from around the web joined together to create this guide. The advice within it is based on contemporary theories and best practices. While the text was originally written for students in undergraduate writing classes, it can also be a suitable resource for other writers interested in learning more about writing for the web.

External
Data Structures
Wikipedia · LibreTexts
This book is about the creation and analysis of efficient data structures. To understand the material in this book you should be comfortable enough in a programming language to be capable of working with and writing your own variables, arithmetic expressions, if-else conditions, loops, subroutines (also known as functions), pointers (also known as references or object handles), structures (also known as records or classes), simple input and output, and simple recursion.

External
Data and programming- an overview
Julio Terán · North Carolina State University
LibreTexts

External
Mathematics for Computer Science
Eric Lehman, F. Thomson Leighton, & Alberty R. Meyer · Google and Massachusetts Institute of Technology
This text serves as an introduction to discrete mathematics, probability, and mathematical thinking for computer scientists with an interactive introduction to discrete mathematics oriented toward computer science and engineering. The subject coverage divides roughly into thirds: (1) Fundamental concepts of mathematics including definitions, proofs, sets, functions, relations. (2) Discrete structures: graphs, state machines, modular arithmetic, counting and (3) Discrete probability theory.

External
Intro to Programming with Programming Fundamentals and Python for Everyone
LibreTexts
LibreTexts

External
Making Games with Python and Pygame
Al Sweigart · LibreTexts
This book will teach you how to make graphical computer games in the Python programming language using the Pygame library.This book assumes you know a little bit about Python or programming in general. If you don’t know how to program, you can learn by downloading the free book "Invent Your Own Computer Games with Python" from http://inventwithpython.com. Or you can jump right into this book and mostly pick it up along the way. This book is for the intermediate programmer who has learned what va

External
Principles of Data Science
OpenStax · LibreTexts
Principles of Data Science is intended to support one- or two-semester courses in data science. It is appropriate for data science majors and minors as well as students concentrating in business, finance, health care, engineering, the sciences, and a number of other fields where data science has become critically important.

External
CSCI 110: Programming with C++
Sandra Ruiz · Crafton Hills College
Introduction to computer science, including programming, theory, and applications. Introduction to computer software design, implementation, methods, environment, and problem solving using the C++ language. Topics include data types, variables, expressions, input/output, control structures, functions, arrays, strings, and introduction to object-oriented programming

External
The Crystal Ball - Instruction Manual I: Introduction to Data Science
Stephen Davies · University of Mary Washington
A perfect introduction to the exploding field of Data Science for the curious, first-time student. The author brings his trademark conversational tone to the important pillars of the discipline: exploratory data analysis, choices for structuring data, causality, machine learning principles, and introductory Python programming using open-source Jupyter Notebooks.

External
CISP 430: Data Structures
Suha Aljuboori · Folsom Lake College
This course applies object-oriented techniques for systematic problem analysis and the managing of program complexity using abstraction. Specifications, design, coding, testing, and documentation of large multi-file programs are covered. It uses advanced language features such as classes, strings, non-text files, pointers, and recursion. Abstract data types such as stacks, queues, lists, binary trees, heaps/priority queues, hash tables, and graphs are examined.

External
Database Design - NOT GOOD
LibreTexts
LibreTexts

External
The ADAPT WeBWorK Handbook
The ADAPT WeBWorK Handbook · Roosevelt University
WebWork in ADAPT is a practical, end-to-end guide to creating, testing, and publishing interactive problems in WeBWorK within the ADAPT homework platform.