# ebuube/pp03 architecture

> Architecture diagram of the GitHub repository ebuube/pp03, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/ebuube/pp03
- Repository: https://github.com/ebuube/pp03

## Overview

This is a self-study repository for Patt and Patel’s introductory computing text, organized by chapter with exercises, notes, diagrams, and book solution manuals. The learner workflow is to study chapter materials and work the exercises, optionally using the small Chapter 2 IEEE-754 decoder or overflow checker. The README also points learners to external solutions, errata, and an LC-3 simulator. The sampled source confirms the decoder’s CLI and conversion helpers; other chapter content is represented only at the directory level.

Main entry points: [`chapter_02/ieee754.py`](https://github.com/ebuube/pp03/blob/main/chapter_02/ieee754.py) (IEEE Decoder), [`chapter_01`](https://github.com/ebuube/pp03/tree/main/chapter_01) (Chapter 1), [`chapter_02`](https://github.com/ebuube/pp03/tree/main/chapter_02) (Chapter 2), [`chapter_03`](https://github.com/ebuube/pp03/tree/main/chapter_03) (Chapter 3)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_study["Chapter Materials"]
  node_ch1["Chapter 1"]
  node_ch2["Chapter 2"]
  node_ch3["Chapter 3"]
  node_exercise["Exercises"]
  node_notes["Notes<br/>[notes.md]"]
end

subgraph group_utilities["Bit Utilities"]
  node_ieee_cli["Decoder CLI<br/>[ieee754.py]"]
  node_decode["IEEE Decoder<br/>[ieee754.py]"]
  node_exponent["Exponent Helper<br/>[ieee754.py]"]
  node_fraction["Fraction Helper<br/>[ieee754.py]"]
  node_overflow["Overflow Checker<br/>[overflow.py]"]
end

node_learner(("Learner"))
node_resources["Book Resources"]

node_learner -->|"studies"| node_ch1
node_learner -->|"studies"| node_ch2
node_learner -->|"studies"| node_ch3
node_learner -->|"works"| node_exercise
node_learner -->|"reads"| node_notes
node_learner -->|"runs"| node_ieee_cli
node_ieee_cli -->|"calls"| node_decode
node_decode -->|"calls"| node_exponent
node_decode -->|"calls"| node_fraction
node_learner -->|"uses"| node_overflow
node_learner -.->|"visits"| node_resources

click node_ch1 "https://github.com/ebuube/pp03/tree/main/chapter_01"
click node_ch2 "https://github.com/ebuube/pp03/tree/main/chapter_02"
click node_ch3 "https://github.com/ebuube/pp03/tree/main/chapter_03"
click node_exercise "https://github.com/ebuube/pp03/blob/main/chapter_02/exercise_2.1-2.20.md"
click node_notes "https://github.com/ebuube/pp03/blob/main/chapter_02/notes.md"
click node_ieee_cli "https://github.com/ebuube/pp03/blob/main/chapter_02/ieee754.py"
click node_decode "https://github.com/ebuube/pp03/blob/main/chapter_02/ieee754.py"
click node_exponent "https://github.com/ebuube/pp03/blob/main/chapter_02/ieee754.py"
click node_fraction "https://github.com/ebuube/pp03/blob/main/chapter_02/ieee754.py"
click node_overflow "https://github.com/ebuube/pp03/blob/main/chapter_02/overflow.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_ch1,node_ch2,node_ch3,node_exercise,node_notes toneBlue
class node_ieee_cli,node_decode,node_exponent,node_fraction,node_overflow toneAmber
class node_learner,node_resources toneIndigo
```

## Components

### Chapter Materials

- [Chapter 1](https://github.com/ebuube/pp03/tree/main/chapter_01): `chapter_01`
- [Chapter 2](https://github.com/ebuube/pp03/tree/main/chapter_02): `chapter_02`
- [Chapter 3](https://github.com/ebuube/pp03/tree/main/chapter_03): `chapter_03`
- [Exercises](https://github.com/ebuube/pp03/blob/main/chapter_02/exercise_2.1-2.20.md): `chapter_02/exercise_2.1-2.20.md`
- [Notes](https://github.com/ebuube/pp03/blob/main/chapter_02/notes.md): `chapter_02/notes.md`

### Bit Utilities

- [Decoder CLI](https://github.com/ebuube/pp03/blob/main/chapter_02/ieee754.py): `chapter_02/ieee754.py`
- [IEEE Decoder](https://github.com/ebuube/pp03/blob/main/chapter_02/ieee754.py): `chapter_02/ieee754.py`
- [Exponent Helper](https://github.com/ebuube/pp03/blob/main/chapter_02/ieee754.py): `chapter_02/ieee754.py`
- [Fraction Helper](https://github.com/ebuube/pp03/blob/main/chapter_02/ieee754.py): `chapter_02/ieee754.py`
- [Overflow Checker](https://github.com/ebuube/pp03/blob/main/chapter_02/overflow.py): `chapter_02/overflow.py`

### Other components

- **Learner**
- **Book Resources**

## Connections

- Learner → Chapter 1: studies
- Learner → Chapter 2: studies
- Learner → Chapter 3: studies
- Learner → Exercises: works
- Learner → Notes: reads
- Learner → Decoder CLI: runs
- Decoder CLI → IEEE Decoder: calls
- IEEE Decoder → Exponent Helper: calls
- IEEE Decoder → Fraction Helper: calls
- Learner → Overflow Checker: uses
- Learner → Book Resources: visits
