Digital library
Textbooks, references and open learning resources.

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.

External
INT 2080: Database Design (Watt and Eng)
Kunle Elebute · Prince George's Community College
LibreTexts

External
Neural Networks and Deep Learning
Michael Nielson · Y Combinator Research
Neural networks are one of the most beautiful programming paradigms ever invented. In the conventional approach to programming, we tell the computer what to do, breaking big problems up into many small, precisely defined tasks that the computer can easily perform. By contrast, in a neural network we don't tell the computer how to solve our problem. Instead, it learns from observational data, figuring out its own solution to the problem at hand.

External
Database Design 2e
Adrienne Watt · British Columbia Institute of Technology
This second edition of Database Design book covers the concepts used in database systems and the database design process.

External
Introduction To MIPS Assembly Language Programming
Charles W. Kann III · Gettysburg College
This book was written to introduce students to assembly language programming in MIPS. As with all assembly language programming texts, it covers basic operators and instructions, subprogram calling, loading and storing memory, program control, and the conversion of the assembly language program into machine code.

External
Introduction to Programming with C++
Jin He · Fresno City College
As part of OER project funded by Fresno City College OER Award Program, this book was created based on CSCI 40 course curriculum at Fresno City College, which was aligned to CID course descriptions of Comp 112 and Comp 122. The book can be used for the first semester of computer programming courses. It uses C++ as a vehicle to convey the basis concepts in computer programming. It focuses on programming logic, structure, and methodology. It covers the programming fundamentals such as variables an

External
Java, Java, Java - Object-Oriented Programming
Ralph Morelli & Ralph Wade · Trinity College
We have designed this third edition of Java, Java, Java to be suitable for a typical Introduction to Computer Science (CS1) course or for a slightly more advanced Java as a Second Language course. This edition retains the “objects first” approach to programming and problem solving that was characteristic of the first two editions. Throughout the text we emphasize careful coverage of Java language features, introductory programming concepts, and object-oriented design principles.

External
Principles of Computer System Design
Jerome H. Saltzer & M. Frans Kaashoek · Massachusetts Institute of Technology
Principles of Computer System Design: An Introduction is published in two parts. Part I, containing chapters 1-6, is a traditional printed textbook published by Morgan Kaufman, an imprint of Elsevier. Part II, containing chapters 7-11, is available here as an open educational resource.

External
Relational Databases and Microsoft Access
Ron McFadyen · University of Winnipeg
This text is a free introductory text that introduces MS Access and relational database design. The motivation is to support a second-year course on database systems which, to the student, is either a service course providing an introduction to database concepts, or, as a prerequisite for more advanced study in the field.

External
Data Structure and Algorithms
Harrison Njoroge · African Virtual University
This text teaches learners the way information is organized in the computer and which have an impact on the performance of the computer. The purpose of this course is to provide the students with solid foundations in the basic concepts of programming: data structures and algorithms. The main objective of the text is to teach the students how to select and design data structures and algorithms that are appropriate for problems that they might encounter.

External
x86-64 Assembly Language Programming with Ubuntu
Ed Jorgensen · University of Navada, Las Vegas
The purpose of this text is to provide a reference for University level assembly language and systems programming courses. Specifically, this text addresses the x86-64 instruction set for the popular x86-64 class of processors using the Ubuntu 64-bit Operating System (OS). The x86-64 is a Complex Instruction Set Computing (CISC) CPU design.

External
An Introduction to Matlab and Mathcad
Troy Siemers · Virginia Military Institute
This textbook, or really a “coursebook” for a college freshman-level class, has been updated for Spring 2014 and provides an introduction to programming and problem solving using both Matlab and Mathcad. We provide a balanced selection of introductory exercises and real-world problems (i.e. no “contrived” problems). We include many examples and screenshots to guide the reader. We assume no prior knowledge of Matlab or Mathcad.

External
Python for Everybody
Chuck Severance · University of Michigan
Writing programs (or programming) is a very creative and rewarding activity. You can write programs for many reasons, ranging from making your living to solving a difficult data analysis problem to having fun to helping someone else solve a problem. This book assumes that everyone needs to know how to program, and that once you know how to program you will figure out what you want to do with your newfound skills.

External
High Performance Computing
Chuck Severance · University of Michigan
The purpose of this book is to teach new programmers and scientists about the basics of High Performance Computing. Too many parallel and high performance computing books focus on the architecture, theory and computer science surrounding HPC. This book speaks to the practicing chemistry student, physicist, or biologist who need to write and run their programs as part of their research.

External
Eloquent JavaScript
Marijn Haverbeke · LibreTexts
This is a book about JavaScript, programming, and the wonders of the digital. JavaScript lies at the heart of almost every modern web application, from social apps like Twitter to browser-based game frameworks like Phaser and Babylon. Though simple for beginners to pick up and play with, JavaScript is a flexible, complex language that you can use to build full-scale applications.

External
An Introduction to Computer Networks
Peter Lars Dordal · Loyola University of Chicago
This text is a free and open 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.

External
Python Programming
OpenStax · LibreTexts
Introduction to Python Programming provides a comprehensive foundation in programming concepts and skills, and it is aligned to the scope of most introductory courses. A wide array of scenarios, contexts, and problems reflect programming applications in many disciplines and careers. The offering is suitable for a diverse learner audience, including those pursuing computer science, business, science, social science, statistics, data science, and related areas of study and employment.

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