Textbook

Computer Science I

Open CS1 textbook teaching concepts before syntax, recapitulated across C, Java, and PHP.

Overview

FieldValue
AuthorDr. Chris Bourke (cbourke@cse.unl.edu)
InstitutionDept. of Computer Science & Engineering, University of Nebraska–Lincoln
Version1.3.6 (2018-08-09)
LicenseCreative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)
Length647 pages
StatusDraft — some late chapters are placeholders

Pedagogy

Core thesis: concepts outlast code. The book separates concepts from programming-language syntax to fight the built-in obsolescence of language-specific intro texts.

  • Core (Ch 1–14) uses pseudocode with minimal language-specific elements.
  • Each language part recapitulates the same concepts in concrete syntax.
  • “Plug-in” design: add a language = add a part. Same book serves multiple course flavors (CS majors → Java, CE majors → C, etc.).

Origin: UNL “Renaissance in Computing” initiative + an Honors CS1 taught in Java and C in parallel.

Structure

PartChaptersPages
Core concepts (pseudocode)1–141–249
I. The C Programming Language15–25251–380
II. The Java Programming Language26–36381–494
III. The PHP Programming Language37–47495–586
Glossary / Acronyms / Index / References587–647

See core concepts and the language parts: C, Java, PHP.

Recurring Example Spine

The same problems reappear across the core and every language part, so students see one problem expressed in multiple syntaxes:

  • Temperature / unit conversion
  • Quadratic roots
  • Life & Taxes (conditionals)
  • Paying the Piper (loops)
  • Generalized Rounding (functions)

Known Gaps (draft)

  • Ch 13 Graphical User Interfaces & Event Driven Programming — placeholder (title only).
  • Ch 14 Introduction to Databases & Database Connectivity — placeholder (title only).
  • Dated (2018, Java 8 era). No modern language features.
  • Recursion coverage is shallow (tail recursion + memoization only).

Citations

[1] Computer Science I, Chris Bourke, v1.3.6, front matter & table of contents (pp. i–xxii).