Dive into Systems

Suzanne J. Matthews, West Point
Tia Newhall, Swarthmore College
Kevin C. Webb, Swarthmore College

Dive into Systems is a free, online textbook that serves as a gentle introduction to computer systems, computer organization, and parallel computing. The book is intended for an audience that has only a CS1 background. It guides readers through a vertical slice of a computer to develop an understanding of a variety of systems topics, including:

  • how a computer runs a program, from a program expressed in a high-level language to low-level binary representation and circuits

  • programming in C and Assembly, assuming a CS1 background

  • introduction to operating systems and the systems costs that affect program performance (the memory hierarchy, caching, and code optimization)

  • introduction to parallel computing with shared memory and pthreads

Dive into Systems is designed to be present topics in as independent manner as possible so that it can be used as a primary textbook for a wide range of introductory-level computer systems courses, or as a supplemental background textbook for upper-level courses that cover Operating Systems, Computer Architecture, Compilers, Networks, Databases, and Parallel Computing. Includes one or more chapters on the following topis:

  • Introduction to Computer Systems

  • C Programming: Getting Started in C (for python progammers); A Deeper Dive into C; C Debugging Tools (gdb, valgrind); Code Optimization.

  • Computer Organization and Architecture: Binary Data Representation; Computer Architecture; The Memory Hierarchy and Caching.

  • Assembly Programming Covers three different assembly languages: 64-bit x86, 32-bit x86, and 64-bit ARM.

  • The Operating System.

  • Parallel Computing: Shared Memory Parallel; Looking ahead — Beyond Shared Memory.


See our open-access paper from SIGCSE'21 for more information about our textbook, including an evaluation from student and faculty participants in our 2019-2020 Early Adopters Program:

Read The Book

Our textbook is available free, on-line in two different formats. Additionally, we have a low-cost print version of our textbook available from No Starch Press. The print version is an additional version of our textbook, which will always remain free, on-line here.

Instructors: if you are using our textbook for your course, please let us know. Please email one of the authors sharing this information with us.

Free On-line Version

As a collection of documents (easier to navigate)

As a single-page document

This is Version 1.0 of the Dive into Systems textbook that was updated on August 15, 2022. It also includes and new appendix (Appendix 1: "Chapter 1 for Java Programers"). If you find any errors, typos, etc., please contact us. We appreciate your feedback!

Instructors: if you are using our textbook for your course, please let us know. Please email one of the authors sharing this information with us.

Print Version

Cover art


A low cost print version of our textbook is available by purchace directly from No Starch Press, and from numerous other sellers including Amazon.

Please keep in mind that the online version of our textbook will always remain free from our website.

Dive into Systems Print Version, No Starch Press, August 2022 (ISBN-13: 9781718501362).

Using Dive into Systems

Everyone is free to use Dive into Systems in their course! The book will remain free online. If you are using Dive into Systems at your institution, please reach out and let us know! This information will really help us continue to expand the book.

2019-2020 Early Adopters

Dive into Systems was first piloted as a textbook in the Computer Organization course at West Point in Fall 2018 and in the (Intro to Computer Systems) at Swarthmore College in Spring 2019. In Fall 2019, Dive into Systems launched its Early Adopter Program, which enabled faculty around the United States to pilot the stable release of Dive into Systems at their institutions. The Early Adopter Program was a huge help to the authors, as it helped us get valuable insight into student and faculty experiences with the textbook. We used the feedback we receive to improve and strengthen the content of Dive into Systems, and are very thankful to everyone who completed our student and faculty surveys.

The following individuals piloted Dive into Systems as a textbook at their institutions during the 2019-2020 Academic Year:

  • John Barr (Ithaca College) - Computer Organization & Assembly Language (Comp 210)

  • Chris Branton (Drury University) - Computer Systems Concepts (CSCI 342)

  • Dick Brown (St. Olaf College) - Hardware Design (CSCI 241)

  • David Bunde (Knox College) - Introduction to Computing Systems (CS 214)

  • Bruce Char (Drexel University) - Systems Programming (CS 283)

  • Bryan Chin (U.C. San Diego) - Computer Organization and Systems Programming (CSE 30)

  • Stephen Carl (Sewanee: The University of the South) - Computer Systems and Organization (CSci 270)

  • John Dougherty (Haverford College) - Computer Organization (cs240)

  • John Foley (Smith College) - Operating Systems (CSC 262)

  • Elizabeth Johnson (Xavier University) - Programming in C

  • Bill Kerney (Clovis Community College) - Assembly Programming (CSCI 45)

  • Deborah Knox (The College of New Jersey) - Computer Architecture (CSC 325)

  • Doug MacGregor (Western Colorado University) - Operating Systems/Architecture (CS 330)

  • Jeff Matocha (Ouachita Baptist University) - Computer Organization (CSCI 3093)

  • Keith Muller (U.C. San Diego) - Computer Organization and Systems Programming (CSE 30)

  • Crystal Peng (Park University) - Computer Architecture (CS 319)

  • Leo Porter (U.C. San Diego) - Introduction to Computer Architecture (CSE 141)

  • Lauren Provost (Simmons University) - Computer Architecture and Organization (CS 226)

  • Kathleen Riley (Bryn Mawr College) - Principles of Computer Organization (CMSC B240)

  • Roger Shore (High Point University) - Computer Systems (CSC-2410)

  • Tony Tong (Wheaton College, Norton MA) - Advanced Topics in Computer Science: Parallel and Distributed Computing (COMP 398)

  • Brian Toone (Samford University) - Computer Organization and Architecture (COSC 305)

  • David Toth (Centre College) - Systems Programming (CSC 280)

  • Bryce Wiedenbeck (Davidson College) - Computer Organization (CSC 250)

  • Richard Weiss (The Evergreen State College) - Computer Science Foundations: Computer Architecture (CSF)

Current Adopters

The following institutions are currently using Dive into Systems. If you don’t see your institution listed, please reach out to us!

U.S. Adopters

_Dive into Systems_ adopters around the United States


  • Samford University


  • Ouachita Baptist University


  • California Institute of Technology

  • Clovis Community College

  • U.C. San Diego

  • University of San Diego


  • Colorado College

  • Western Colorado University

District of Columbia

  • American University


  • University of Delaware


  • Knox College


  • Indiana University South Bend


  • Centre College


  • Amherst College

  • Simmons University

  • Smith College

  • Wheaton College


  • St. Olaf College


  • Drury University

  • Park University

New Jersey

  • The College of New Jersey

New York

  • Hunter College

  • Ithaca College

  • Pace University

  • Skidmore College

  • West Point

North Carolina

  • Davidson College

  • High Point University

  • UNC Charlotte


  • Xavier University


  • Portland State University


  • Bryn Mawr College

  • Drexel University

  • Haverford College

  • Kutztown University

  • Swarthmore College

  • University of Pennsylvania


  • Sewanee: University of the South


  • Evergreen State College

International Adopters

  • Polish-Japanese Academy of Computer Science - Warsaw, PO

Mailing List

To hear announcements and updates related to the textbook, please consider joining our low-volume mailing list.

Contact Us

If you have any questions, comments or want to see your institution listed, please e-mail the authors directly.