Overview
| Field | Value |
|---|---|
| Author | Dr. Chris Bourke (cbourke@cse.unl.edu) |
| Institution | Dept. of Computer Science & Engineering, University of Nebraska–Lincoln |
| Version | 1.3.6 (2018-08-09) |
| License | Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) |
| Length | 647 pages |
| Status | Draft — 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
| Part | Chapters | Pages |
|---|---|---|
| Core concepts (pseudocode) | 1–14 | 1–249 |
| I. The C Programming Language | 15–25 | 251–380 |
| II. The Java Programming Language | 26–36 | 381–494 |
| III. The PHP Programming Language | 37–47 | 495–586 |
| Glossary / Acronyms / Index / References | — | 587–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).