Programming at the Hardware/Software Interface: 2nd Edition

Product Details
Author(s): Christopher Bohn
ISBN: 9781684786633
Edition: 2
Copyright: 2025
Available Formats
Format: GRLContent (online access)

$99.75

Purchase

Overview of
Programming at the Hardware/Software Interface: 2nd Edition

Discovery

Programming at the Hardware/Software Interface is a textbook appropriate for a Computer Organization or introductory Computer Systems course for undergraduate computer science or software engineering students. Stripping away many of the computing abstractions that students and professionals rely upon, this publication introduces students to the underlying realities of computer systems that can introduce unexpected and unwelcome surprises into software designed for an idealized machine. From data representation and assembly language to concurrency and hardware design concepts, students will explore the low-level world of computer systems. The textbook contains material that can be covered in a 15-week academic semester. Each chapter, after motivating the topic, guides students through the topic, provides randomized practice problems to allow students to check their understanding, and includes “reality checks” that relate the chapter’s topic to real-world examples.

About the Author
Christopher Bohn

Christopher Bohn is an Associate Professor of Practice with the University of Nebraska’s School of Computing. A 24-year U.S. Air Force veteran, he joined the University of Nebraska faculty in 2017. He holds a B.S.E.E. from Purdue University, an M.S.C.E. from the Air Force Institute of Technology, and a Ph.D. from The Ohio State University.

Table of Contents

  • Chapter 1 Introduction
  • Chapter 2 Putting "Digital" In Digital Computers
  • Chapter 3 Integer Representation and Arithmetic
  • Chapter 4 Floating-Point Representation and Arithmetic
  • Chapter 5 Assembly Language
  • Chapter 6 The Compiler Cookbook
  • Chapter 7 Security Issues
  • Chapter 8 Concurrency In Your Program
  • Chapter 9 Concurrency, Your Program In the Computer System
  • Chapter 10 Digital Logic Circuits
  • Chapter 11 Processor Microarchitecture
  • Chapter 12 Computer Memory
  • Chapter 13 Optimizing Your Programs
  • Appendix A “A” is for Assembly Language
  • Appendix B “B” is for Building a Program
  • Appendix C “C” is for the C Programming Language