Curriculum Design
Derive Before Compute
These are curriculum designs for introductory CS at California community colleges. They are built on a single conviction: students learn CS best when they build real things, earn abstractions through struggle, and understand that every algorithm encodes a set of values about the world. No exams. No required textbooks. Every concept earned by building.
Teaching Philosophy
Three principles, each grounded in research, each enacted in every course I design:
Principle 1
Derive Before Compute
Every concept arrives as the answer to a question the student already owns. Formalism before need creates what Harel (1998) calls motivational debt — students memorize without understanding. In these designs, every module begins with a problem students can't yet solve, and the week's content is the tool that resolves it. Students experience the headache before receiving the medicine.
Principle 2
Build Before Import
Students implement data structures, algorithms, and circuits from scratch before using libraries, frameworks, or pre-built tools. You earn the abstraction by understanding its interior. A student who has built a register from D flip-flops understands register architecture in a way that no textbook diagram can provide. This is Papert's constructionism (1980) applied to the full stack: the artifact is both the learning product and the assessment.
Principle 3
Equity as Design
The social implications of technical systems are part of understanding what those systems do — not a module added at the end. Students who build PageRank analyze whose content the algorithm surfaces and whose it buries. Students who build a facial recognition pipeline measure its accuracy across skin tones. Bias is measurable, so we measure it. This follows Ko (2022), Freire (1968), and hooks (1994): knowledge is liberatory only when connected to the world the student actually inhabits.
Assessment Philosophy
Following Jeff Anderson's (Foothill College) antiracist learning science framework and ungrading practice: timed exams measure anxiety and test-taking strategy, not understanding. They are strong predictors of racial and socioeconomic factors and weak predictors of genuine learning. These curriculum designs use portfolio-based assessment with student-proposed grades.
Every course design includes a public "List of Final Deliverables" visible from Day 1. Students would know exactly what they need to produce and propose their own grades with evidence from a learning portfolio. Mid-term and final self-reflection activities structure metacognitive growth — learning how to learn is a technical outcome, not a soft skill.
The three-track system (Novice / Builder / Architect) provides genuine student autonomy: tracks are chosen weekly, there is no grade penalty for Track I, and Track I is a complete, serious outcome — not consolation. This follows Deci & Ryan's self-determination theory: intrinsic motivation requires autonomy, competence, and relatedness, and all three must be structurally guaranteed.
Signature Project
20 Weeks · Team-Based · Cross-STEM · Completed Curriculum Design
Build a Computer from Scratch
Teams of community college students build a working, programmable 8-bit computer on breadboards — starting from logic gates and ending with a machine that runs real programs. Inspired by Ben Eater's design. Grounded in seven bodies of learning science research: constructionism (Papert), productive failure (Kapur), experiential learning (Kolb), self-determination theory (Deci & Ryan), transfer theory (Perkins & Salomon), situated learning (Lave & Wenger), and intellectual need (Harel).
Every module includes an explicit "STEM Bridge Moment" where the instructor names the connection to physics, mathematics, linear algebra, differential equations, or chemistry — bridging from the breadboard to the student's next math or science course. High road transfer doesn't happen automatically; it must be designed for.
Assessment: Build Journal (30%), Working Module (25%), Integration & Debugging (20%), Public Exhibition (15%), Self-Evaluation (10%). No exams. The computer itself is the most honest assessment — it works or it doesn't.
Course Portfolio
Six courses forming a coherent pathway from introductory CS through AI and machine learning, plus supporting mathematics and engineering courses. All courses are open-access, require no purchased textbooks, and use portfolio assessment. Full course pages with weekly plans, project descriptions, and learning science grounding are available at the curriculum site.
CS 180 · 3 Units · Curriculum Design
Introduction to Artificial Intelligence
Search, knowledge representation, planning, machine learning fundamentals, and the ethics of AI systems. Three tracks. Capstone: students build and critically evaluate a system that makes decisions about people.
CS 185 · 3 Units · Curriculum Design
Introduction to Machine Learning
Supervised and unsupervised learning, neural networks, bias auditing, and model interpretability. Every algorithm is a choice about what to optimize, and that choice has a politics. Capstone: bias audit of a production ML system.
CS 210 · 4 Units · In Development
Data Structures and Algorithms
Build-before-import throughout: students implement every major data structure from scratch before reaching for a library. A mini-project for every structure. Grounded in Ko, Knuth, Anderson, Freire, Noble, and Benjamin.
CS 175 · 3 Units · In Development
How Things Work: PageRank, GPS, and the Phone in Your Pocket
Three technologies reverse-engineered from first principles. Students don't just learn that these systems work — they understand why. Includes the Build a Computer signature project.
Math 2B · 3 Units · Curriculum Design
Applied Linear Algebra
Built on Jeff Anderson's ALAF textbook and twelve modeling criteria. Six fundamental problems. Twenty-nine lessons. Derive before compute — the math is useful the moment it's introduced.
ENGR 11 · 3 Units · Curriculum Design
Programming and Problem Solving in MATLAB
MATLAB the way engineers actually use it: model real circuits, understand IEEE 754 floating-point, learn why 0.1 + 0.2 ≠ 0.3 and what that means for the systems we trust with our lives.
See the full curriculum site with weekly plans and project descriptions →
Curriculum as Research
I don't maintain separate identities as "researcher" and "curriculum designer." Every course I design is a potential research site, and every research finding reshapes the designs:
The Build a Computer project is a research instrument.
When this project is piloted, it creates a natural site for studying help-seeking behavior (Q1), belonging (P5), and the effects of physical computing on persistence (Q3). The build journal entries would be a qualitative data source. The milestone completion patterns would be a quantitative data source. The research and the curriculum are the same activity observed from different angles.
SyllabusAudit (P2) was born from self-audit.
The annotation scheme for motivational debt began as a self-audit of my own course materials. I found violations of the necessity principle in my own syllabi — places where I introduced formalism before students had the headache. The research tool I'm building is a tool I already use on my own drafts.
The three-track system is a structural belonging intervention.
If Walton & Brady are right that belonging is structural — communicated by the design of the course, not just the warmth of the instructor — then the track system is a testable belonging intervention. A student who chooses Track I and completes it successfully has received a structural signal that they belong. This is measurable (P5).
Intellectual Lineage
The teaching practice on this page is built on the work of:
Last updated: April 2026