# james-jaffray/program_fundamentals_in_class architecture

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

- Interactive diagram: https://gitdiagram.com/james-jaffray/program_fundamentals_in_class
- Repository: https://github.com/james-jaffray/program_fundamentals_in_class

## Overview

This repository is a collection of introductory Python learning exercises, not a single application. The learner runs standalone scripts that read input, perform a small programming task, and print a result. Examples cover basic values and strings, arithmetic and unit conversions, interactive selection and grading, simple games, and list operations. The tree shows repeated exercise versions across course days; they are independent examples rather than a shared runtime. Only sampled scripts were inspected, so links represent behavior visible in those files, not a common execution framework.

Main entry points: [`Day 02/Day2_python_basics_exercise.py`](https://github.com/james-jaffray/program_fundamentals_in_class/blob/main/Day%2002/Day2_python_basics_exercise.py) (Basics exercises), [`Day 02/intro_python_stuff.py`](https://github.com/james-jaffray/program_fundamentals_in_class/blob/main/Day%2002/intro_python_stuff.py) (Intro examples), [`Day 03/beginning_programming.py`](https://github.com/james-jaffray/program_fundamentals_in_class/blob/main/Day%2003/beginning_programming.py) (Temperature conversion), [`Day 05/beginningprogrammingexercises.py`](https://github.com/james-jaffray/program_fundamentals_in_class/blob/main/Day%2005/beginningprogrammingexercises.py) (Repeated calculators)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_basics["Python Basics"]
  node_basics_exercise["Basics exercises"]
  node_intro_day2["Intro examples"]
end

subgraph group_calculators["Calculations"]
  node_temp_conversion["Temperature conversion"]
  node_rectangle["Rectangle calculator"]
  node_price_trip["Price and travel"]
  node_repeat_calculators["Repeated calculators"]
end

subgraph group_decisions["Interactive Logic"]
  node_package_selector["Gym packages"]
  node_grade_mapper["Grade to GPA"]
  node_pokemon_game["Catch simulation"]
  node_other_games["Game exercises"]
end

subgraph group_collections["Lists"]
  node_list_examples["List exercises"]
end

node_learner(("Learner"))

node_learner -->|"enters answers"| node_basics_exercise
node_basics_exercise -->|"prints examples"| node_learner
node_learner -->|"enters values"| node_intro_day2
node_intro_day2 -->|"prints values"| node_learner
node_learner -->|"enters temperature"| node_temp_conversion
node_temp_conversion -->|"prints conversion"| node_learner
node_learner -->|"enters dimensions"| node_rectangle
node_rectangle -->|"prints measurements"| node_learner
node_learner -->|"enters costs"| node_price_trip
node_price_trip -->|"prints total"| node_learner
node_learner -->|"enters values"| node_repeat_calculators
node_repeat_calculators -->|"prints results"| node_learner
node_learner -->|"chooses package"| node_package_selector
node_package_selector -->|"prints fees"| node_learner
node_learner -->|"enters grade"| node_grade_mapper
node_grade_mapper -->|"prints GPA"| node_learner
node_learner -->|"chooses ball"| node_pokemon_game
node_pokemon_game -->|"prints outcome"| node_learner
node_learner -->|"interacts"| node_other_games
node_other_games -->|"prints outcomes"| node_learner
node_list_examples -->|"prints list results"| node_learner

click node_basics_exercise "https://github.com/james-jaffray/program_fundamentals_in_class/blob/main/Day%2002/Day2_python_basics_exercise.py"
click node_intro_day2 "https://github.com/james-jaffray/program_fundamentals_in_class/blob/main/Day%2002/intro_python_stuff.py"
click node_temp_conversion "https://github.com/james-jaffray/program_fundamentals_in_class/blob/main/Day%2003/beginning_programming.py"
click node_rectangle "https://github.com/james-jaffray/program_fundamentals_in_class/blob/main/Day%2003/beginning_programming.py"
click node_price_trip "https://github.com/james-jaffray/program_fundamentals_in_class/blob/main/Day%2003/beginning_programming.py"
click node_repeat_calculators "https://github.com/james-jaffray/program_fundamentals_in_class/blob/main/Day%2005/beginningprogrammingexercises.py"
click node_package_selector "https://github.com/james-jaffray/program_fundamentals_in_class/blob/main/Day%2006/exercises/package_selector.py"
click node_grade_mapper "https://github.com/james-jaffray/program_fundamentals_in_class/blob/main/Day%2007/grade_match_case.py"
click node_pokemon_game "https://github.com/james-jaffray/program_fundamentals_in_class/blob/main/Day%2007/pokemon_catch_broken.py"
click node_other_games "https://github.com/james-jaffray/program_fundamentals_in_class/tree/main/Day%2006/exercises"
click node_list_examples "https://github.com/james-jaffray/program_fundamentals_in_class/tree/main/Day%2008"

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_basics_exercise,node_intro_day2 toneBlue
class node_temp_conversion,node_rectangle,node_price_trip,node_repeat_calculators toneAmber
class node_package_selector,node_grade_mapper,node_pokemon_game,node_other_games toneMint
class node_list_examples toneRose
class node_learner toneIndigo
```

## Components

### Python Basics

- [Basics exercises](https://github.com/james-jaffray/program_fundamentals_in_class/blob/main/Day%2002/Day2_python_basics_exercise.py): `Day 02/Day2_python_basics_exercise.py`
- [Intro examples](https://github.com/james-jaffray/program_fundamentals_in_class/blob/main/Day%2002/intro_python_stuff.py): `Day 02/intro_python_stuff.py`

### Calculations

- [Temperature conversion](https://github.com/james-jaffray/program_fundamentals_in_class/blob/main/Day%2003/beginning_programming.py): `Day 03/beginning_programming.py`
- [Rectangle calculator](https://github.com/james-jaffray/program_fundamentals_in_class/blob/main/Day%2003/beginning_programming.py): `Day 03/beginning_programming.py`
- [Price and travel](https://github.com/james-jaffray/program_fundamentals_in_class/blob/main/Day%2003/beginning_programming.py): `Day 03/beginning_programming.py`
- [Repeated calculators](https://github.com/james-jaffray/program_fundamentals_in_class/blob/main/Day%2005/beginningprogrammingexercises.py): `Day 05/beginningprogrammingexercises.py`

### Interactive Logic

- [Gym packages](https://github.com/james-jaffray/program_fundamentals_in_class/blob/main/Day%2006/exercises/package_selector.py): `Day 06/exercises/package_selector.py`
- [Grade to GPA](https://github.com/james-jaffray/program_fundamentals_in_class/blob/main/Day%2007/grade_match_case.py): `Day 07/grade_match_case.py`
- [Catch simulation](https://github.com/james-jaffray/program_fundamentals_in_class/blob/main/Day%2007/pokemon_catch_broken.py): `Day 07/pokemon_catch_broken.py`
- [Game exercises](https://github.com/james-jaffray/program_fundamentals_in_class/tree/main/Day%2006/exercises): `Day 06/exercises`

### Lists

- [List exercises](https://github.com/james-jaffray/program_fundamentals_in_class/tree/main/Day%2008): `Day 08`

### Other components

- **Learner**

## Connections

- Learner → Basics exercises: enters answers
- Basics exercises → Learner: prints examples
- Learner → Intro examples: enters values
- Intro examples → Learner: prints values
- Learner → Temperature conversion: enters temperature
- Temperature conversion → Learner: prints conversion
- Learner → Rectangle calculator: enters dimensions
- Rectangle calculator → Learner: prints measurements
- Learner → Price and travel: enters costs
- Price and travel → Learner: prints total
- Learner → Repeated calculators: enters values
- Repeated calculators → Learner: prints results
- Learner → Gym packages: chooses package
- Gym packages → Learner: prints fees
- Learner → Grade to GPA: enters grade
- Grade to GPA → Learner: prints GPA
- Learner → Catch simulation: chooses ball
- Catch simulation → Learner: prints outcome
- Learner → Game exercises: interacts
- Game exercises → Learner: prints outcomes
- List exercises → Learner: prints list results
