Pull-Based Engineering Education at Scale Using Agentic AI

ISE 754 Logistics Engineering, rebuilt for Fall 2026

Michael G. Kay

NC State University, ISE

Jake Benhart

NC State University, OR (PhD)

Friday, September 25, 2026

Computational Friction

It was so difficult to handle the teaching of the software stack to get things done that it overwhelmed all the other issues.

Pull-Based and Flipped: Pulling Before Class

Why pull versus push-based education: Explanation is pulled at the moment of difficulty rather than pushed on a schedule.

The Concept Level: Where the Human Works

Everything covered in logistics engineering relates to developing a model of the logistics system, and so teaching students modeling has always been the core educational goal for these courses. From Lecture 1.2: “Getting through this course was once like building an airplane, with the whole semester spent getting it off the ground. An AI assistant such as Claude Code now makes it airborne almost at once, leaving time to check that it is airworthy, see how well it flies, and even put it through a few loops.”

Concept: the human’s input, Lecture 2.2

→ Formulation: the AI

→ Implementation: the AI

From Recordings to Lectures

What I said: ISE 453 class recording, 15 Sept 2025

The reason for it is nowadays, with everything being online, it doesn’t really matter. But up until about 30 years ago, everything was done actually in printed tariff tables. So it turns out by using 100 weights, the digits were probably the minimum. If you were using tons, then the charge would have, you know, thousands of dollars to ship a ton, and if you did it in pounds, the cost would be less than a dollar. So you’d have a lot of very small fractional numbers. So by doing 100 weight, you ended up with numbers that were in the, you know, you know, tens to 100 range roughly. So it really was, you know, space efficiency when you’re actually printing out the tables.

The AI’s wording over it, in Lecture 3.2, until I approved it

Hundredweight looks like an arbitrary unit to choose, and the reason for it is plain. Until about thirty years ago these tables were printed, and hundredweight is the unit that keeps the printed digits to a minimum. In dollars per ton the entries would run to thousands; in dollars per pound they would be fractions of a dollar needing several decimal places. Per hundredweight they sit in the tens to hundreds, which is the shortest they can be written. The unit is typographic economy rather than anything about freight.

Track Changes: I Approve Every Word

The slide: ISE 754, Fall 2024, slide 124

Transport 2: One-Time Truck Shipments

  • Load density: freight capacity is determined by both the weight and cube of a load
  • Trucking is the only transport mode that most shippers need to have detailed knowledge of
  • Only trucks used for shipping/receiving at most facilities
  • Trucks transport from facility to railhead, port, airport
  • Other modes handled by specialized freight brokers

Lecture 3.2, as it came to me for review

Trucking is the only transport mode that most shippers need to have detailed knowledge of. Only trucks are40 used for shipping and41 receiving at most facilities, and it is42 trucks that43 transport from facility to railhead, port and44 airport. Other modes are45 handled by specialized freight brokers.

Yellow: every word the AI added to turn the bullets into sentences. The number: how I accept or reject each one.

A general skill, not only for this course: I use Track Changes for everything, where the idea is I don’t want AI to silently introduce AI-generated content in a text that I give it. mgkay.github.io/track-changes

Rules, Regs and Exemplars

A rule is a Python gate. This one, PROSE-13, keeps a developer note such as TODO off every page students read: it scans each line, a hit is an ERROR, and the nonzero exit refuses the commit.

DEV_NOTE = re.compile(
    r"\b(TODO|FIXME|XXX|HACK|TEMP HACK|REMAINING TODO)\b")
hit = DEV_NOTE.search(raw)
if hit:
    out.append(F(doc, i, "PROSE-13", "ERROR", ...))
fail = n_err > 0 or (args.strict and n_warn > 0)
return 1 if fail else 0

An exception, in the rules registry. The figure-reference rule came after Lectures 1.1 and 1.2 were delivered, so both are exempt; the record says who decided it and when, and the rule no longer reports them.

check_figure_refs.py
all except 1.1, 1.2
DECIDED 2026-08-22
by the instructor

One Source of Truth, in Quarto

Lecture 1.1, the source: a hidden cell, then text calling its values

```{julia}
#| echo: false
⋮
fuel_sum = sum(fuel_gal)
fuel_tbar = sum(fuel_thr) / length(fuel_thr)
fuel_avg = length(fuel_thr) * fuel_g(fuel_tbar)
⋮
```

Summing the five trips (@tbl-fuel) gives
`{julia} @sprintf("%.3f", fuel_sum)` gal,
but using the average travel time (…) gives
only `{julia} @sprintf("%.3f", fuel_avg)` gal, …

Lecture 1.3, the source: a visible cell, a hidden cell that draws the figure, then text

```{julia}
# Code block 2: simulated cycle time against the VUT formula
⋮
```
```{julia}
#| label: fig-queue
#| echo: false
⋮
lines!(ax, idx, run[idx]; color = :navy)
hlines!(ax, vut; color = :crimson, linestyle = :dash)
fig
```

**One run is one draw.** The convergence in @fig-queue is a
single *run*: one seed, one stream of random draws, …

What students read

What students read: the visible cell

and the hidden one’s figure

The Course Website

The home page

mgkay.github.io/ise754f26

Lectures: each one’s page, script, video and twin

A lecture’s page, 2.4: its sections, models and examples at the right

An Overview Video for Every Lecture

Lecture 3.2’s overview on YouTube, 24:44, recorded over the published page: one of eleven so far

The Infrastructure of the Course

Itinerary

  • How the course runs on GitHub
  • How students validate results
  • Pull-based review before class
  • The client-consultant project
  • Future plans and other courses

The critical set of technologies: Claude Code + GitHub

  • Claude Code
  • GitHub as our learning management system
  • GitHub app

Class Settings

Inverse Classroom

  • Allows students to learn more about breakpoints they experience during review
  • Less discussion about topics already understood
  • Time to discuss extensions and validation strategies

GitHub: Course Engine

GitHub

  • Allows for all changes to be dated, and committed
  • Provides repositories (sharable folders) multiple individuals can write to with access rules

Diff Feature

  • Gives users information about what has changed, line-by-line, with each version

Versions

  • Any earlier state of content (student or instructor) exists
  • Commit histories show (1) how work was done and (2) when it was done

Push/Pull Structure

  • Instructors edit and push content, students pull documents and push submissions
  • Students pull new material from GitHub

Repositories

  • Read-only in — materials (lectures and scripts) and handouts (skills, briefs, sheets published)
  • Read-write out — work (one private repository for each student) and feedback (previously graded content)

Commands

  • Auto-updating commands housed in GitHub help students interact with all course content

Review: Basis for Pull-Based Learning Inverse Classroom

Course Infrastructure

Validation Classification and Applications

  • Screens are meant to ensure that results are plausible
  • Expectations help establish reasonable answers based on expectations, similar solved cases, and sensitivity analysis
  • Confirmations confirm that a plausible and reasonable result is correct
  • Validation checks exist for student understanding and student-AI interactions
  • Checks exist to incentivize students to focus on “big picture”, not passively accepting results
  • PRIMARY VALUE - these classifications are not the only classifications that could possibly exist, but they capture the different strategies students can use to validate AI modeling and corresponding results
  • PRIMARY VALUE - future engineers must be able to effectively assess AI outputs, necessitating this organized classification approach for the course

Client-Consultant Project Functionality and Personal Student Profiles

How the Client Responds

Future Plans and Scalability

Future Courses

Infrastructure Use this semester as proof of concept, apply tools built at scale
Lectures Take lectures as driver for the reviews without videos
Tier the Material Optional sections/deep-dives color-coded so undergraduates have additional information available but understand what is assessed/graded
Parsing Material Projects and reviews are less cumbersome in nature
GitHub App Integrate the GitHub application so students operate within GitHub’s scope, not through Claude and the GitHub connector

Translatable Approach

Participation Small participation grade to incentivize less motivated students to inform inverse classroom approach
Cost Full review assessments can happen in less than three minutes for 50 students as currently constructed
Distribution Pushing student materials efficiently through GitHub unchanged with class size
Assessments Exams scanned and text extracted to inform student profiles, scanned at scale in under a minute
Profiles Profiles for students are possible regardless of discipline

Translatability - Why Do You Care?

Steps of implementation into a classroom

  1. Build it for ISE 754 functionality
  2. Generalize a toolkit to maintain specific features, rules, regulations, etc.
  3. Provide information to users to take generalized toolkit and cater it to new users
  4. Assess performance and iterate

Questions

Michael G. Kay · kay@ncsu.edu · NC State, ISE

Jake Benhart · jebenhar@ncsu.edu · NC State, OR

Course Lectures

mgkay.github.io/ise754f26

Research Amp Toolkit for AI-Assisted Research

jbenhart44.github.io/toolkit