Now · Apr 10Per-course Open Graph cards + accessibility pass on teach_cs
Henry Fan · Curriculum Designer & Education Researcher
A Curriculum Framework for Community College CS

Teaching
Computing
Differently.

Six courses built on one 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. A proposal in development — not a currently taught program.

No Required TextbooksNo Exams3 Entry Tracks per CoursePortfolio AssessmentAll Resources Free

Most introductory CS courses follow the same pattern: explain a concept, demonstrate syntax, assign practice problems, assess on recall. Students who arrive with prior exposure tend to succeed. Students who don’t fall behind quickly and conclude they are not a CS person. The course then calls this selection, when in fact it is structure. The difficulty students experience in introductory CS is not uniformly about ability— most of it is caused by courses that teach abstractions before problems, syntax before meaning, and efficiency before understanding.

Three pedagogical principles run through every course in this curriculum. They are not buzzwords — each one is a concrete design decision that shows up in how units are sequenced, how projects are scoped, and how student work is assessed. Each principle traces to a specific body of learning science research.

01
Derive Before Compute

Every major concept is introduced through a problem that requires it — before the formal tool is offered. This is Guershon Harel’s intellectual need principle: students must experience the inadequacy of what they currently have before a new tool will feel like a solution rather than a fact to memorize. A hash table isn’t defined on day one. Students first build a slow lookup system, hit the wall of its inefficiency, and then the hash table arrives as the answer to a question they already have.

In Practice — CS 210Students build a linear-search contacts app in Week 2. With 10,000 entries it’s unusably slow. Week 4 introduces hash tables — as the solution to a problem students already own.
Harel & Tall (1991) · “The General, the Abstract, and the Generic” · For the Learning of Mathematics
02
Build Before Import

Students implement every major data structure and algorithm from scratch before using the library version. This is not hazing — it is the difference between knowing that sklearn has a fit() method and understanding what fitting means. Ko’s read-before-write research shows that students who trace implementations before writing them develop significantly stronger debugging ability and conceptual transfer. Every abstraction has an interior; students earn the right to ignore it by first understanding it.

In Practice — CS 185Logistic regression is implemented in NumPy before scikit-learn is opened. The final submission includes both versions with a written comparison explaining what the library hides.
Ko et al. (2019) · Critically Conscious Computing · University of Washington · cs.washington.edu/ccc
03
Equity as Design, Not Afterthought

The social implications of algorithmic systems are not a lecture added at the end of the semester — they are woven into the technical content from the start. When students build a word frequency analyzer, they ask whose vocabulary the default dictionary centers. When they study PageRank, they ask what gets amplified and what gets buried. This is not politics inserted into CS. It is the recognition that every algorithm encodes the values of the people who built it — and understanding those values is part of understanding the algorithm.

In Practice — CS 180 & CS 185The final project in every AI/ML course is a structured bias audit of a real deployed system — written like a research report and presented at a public exhibition.
Buolamwini & Gebru (2018) · “Gender Shades” · ACM FAccT · Noble (2018) · Algorithms of Oppression

Six Courses

Each course is a complete 18-week experience: a central project arc, three entry tracks for students at different levels, portfolio-based assessment, and a public exhibition at semester end. No exams. No required textbook purchases. All course materials free and open access.

CS pathwayCS 175CS 180CS 185CS 210·Engineering branchMath 2BENGR 11

Every course starts from Track I — no prior programming required. The engineering branch (Math 2B, ENGR 11) is a parallel track for students taking applied linear algebra alongside the CS sequence.

AI
Course 01 of 06
CS 180
Introduction to
Artificial Intelligence
In Development

AI is not magic — it is math, history, and human choice. We build from first principles: probability, search, neural networks, language models. Then we ask who built these systems, for whom, and what they’re encoding about the world.

Units3 · 18 Weeks
PrereqNone (Track I) · Python (Track II+)
Projects9 Major · 2 Exhibitions
ThinkersTuring · Buolamwini · Noble
Open Course Site
ML
Course 02 of 06
CS 185
Introduction to
Machine Learning
In Development

ML algorithms are not neutral mathematical facts — they are choices about what to optimize, whose data counts, who bears the error. We derive every algorithm before using it, implement from scratch before touching any library.

Units3 · 18 Weeks
PrereqBasic Python · Some Math
Projects8 Major · Bias Audits
ThinkersKo · Benjamin · Obermeyer
Open Course Site
DS
Course 03 of 06
CS 210
Data Structures
& Algorithms
In Development

Every data structure is an argument about the world. Every algorithm is a strategy, a tradeoff, a value judgment. We implement every structure before using the library version. No LeetCode grind culture — deep projects that transfer.

Units4 · 18 Weeks
PrereqPython or Java · OOP
Projects12 Mini Projects · Capstone
ThinkersKnuth · Dijkstra · Noble · Tarjan
Open Course Site
HTW
Course 04 of 06
CS 175
How Things
Work
In Development

PageRank. GPS. The phone in your pocket. Three technologies derived from first principles. You’ll understand why they work — not just that they work. Includes the signature project: Build a Computer from Scratch — a 20-week team build of an 8-bit breadboard computer bridging five STEM disciplines.

Units3 Systems · First Principles
PrereqBasic Math · No Calculus Required
ProjectsBuild PageRank · GPS Simulator · Build a Computer
Open Course Site
LA
Course 05 of 06
Math 2B
Applied Linear
Algebra
In Development

Six fundamental problems. Twenty-nine lessons. Build circuits, collect data, verify models. Derive before compute — the ALAF approach. Math made useful the moment it’s introduced.

Units3 · 29 Lessons · ELSP Project
PrereqPre-calculus or Calculus
TextbookALAF · appliedlinearalgebra.com
Open Course Site
M‖
Course 06 of 06
ENGR 11
Programming &
Problem Solving
In Development

Model real circuits. Understand why 0.1 + 0.2 ≠ 0.3. MATLAB the way engineers use it — from binary representation up to IEEE 754 floating-point. No prior programming required.

Units3 · 18 Lessons · ELSP Project
PrereqNo Programming Required
SkillsMATLAB · Numerical Analysis · IEEE 754
Open Course Site

Three Tracks

“Tracks are chosen weekly, not at semester start. A student can run Track I for ten weeks and switch to Track II for the capstone. There is no grade penalty for choosing Track I.”The Key Design Insight — Track System

Every course in this curriculum is designed to run at three simultaneous depth levels. These are not ability groups, remediation tiers, or ceiling categories — they are depth choices. The same concept is offered to everyone. What varies is whether a student builds it, proves it, or extends it. Track I is a complete, serious course outcome — not a consolation.

I
Novice — Build & Understand

Students develop genuine working fluency with the core concept. They build a complete, functional implementation and can explain what it does and why. No prior experience required at Track I — by design.

CS 180: Build a rule-based chatbot; document its failure modes
CS 210: Implement a linked list from scratch; analyze insertion cost
II
Builder — Implement & Extend

Students implement the concept rigorously, handle edge cases, and extend it to a novel context. They move between their own implementation and a library version and explain the tradeoffs in writing.

CS 185: Implement logistic regression in NumPy; compare to sklearn
CS 210: Implement a self-balancing BST; profile on large datasets
III
Architect — Prove & Research

Students engage with the formal mathematical structure of the concept, read related research, and contribute something original — a proof, an optimization, a novel application, or a written critical analysis.

CS 185: Derive the gradient update rule; prove convergence bound
CS 180: Read and summarize a primary research paper; connect to project
Track I is a complete, serious outcome — not a consolation. Students completing Track I have built more real software than most students in exam-based courses.  ·  Tracks are chosen weekly. A student can run Track I for 10 weeks and switch to Track II for the capstone.  ·  There is no grade penalty for choosing Track I. Assessment is portfolio-based across all tracks.

These are not homework assignments with a twist. Each signature project is the central learning experience of its unit — designed so that students encounter the core concept as a genuine problem to solve, not a technique to apply. Every project is public: presented at a semester-end exhibition open to the campus community.

Featured · CS 175 · 20-Week Signature Project
Build a Computer from Scratch

Teams of students build a working, programmable 8-bit computer on breadboards from logic gates — and in the process encounter the physics, mathematics, linear algebra, differential equations, and chemistry that make it possible. Inspired by Ben Eater. Grounded in seven bodies of learning science research. Designed for cross-STEM transfer.

PhysicsDiscrete MathLinear AlgebraDiff EqChemistry
Students Learn Through This ProjectHow a computer works from first principles — not as metaphor, but as physical reality · Ohm’s Law, RC circuits, Boolean algebra, two’s complement, modular arithmetic, state vectors, matrix transformations · Collaborative debugging as the primary learning activity · The experience of building something real with your hands that no AI can replicate
Open Full Project Page
CS 210 · Data Structures
The Contacts Problem

Students build a functional contacts application — adding, searching, sorting — starting with a flat list. As the dataset grows, they measure slowdown empirically, identify the bottleneck, and redesign. The project runs four weeks, and students implement and profile at least three structural approaches before semester end.

Students Learn Through This ProjectTime complexity as felt experience, not formula · Hash tables as motivated solutions · Profiling and empirical analysis · The cost of early design decisions
CS 185 · Machine Learning
Derive Before Deploy

Students implement linear regression, logistic regression, and a single-layer neural network entirely in NumPy — no sklearn allowed until the implementation is complete. The final submission includes both versions plus a written explanation of what the library conceals and why that matters.

Students Learn Through This ProjectGradient descent as a mechanical process · What “fitting” actually means · Reading library source code · The professional risk of tools you don’t understand
CS 180 / CS 185 · AI & ML
The Bias Audit

Students choose a real, deployed AI product — a hiring tool, content moderator, facial recognition API, or recommendation system — design a structured test protocol, run it, measure performance across demographic groups, and produce a findings report structured like a research paper. Directly adapted from Buolamwini’s Gender Shades methodology.

Students Learn Through This ProjectExperimental design · Bias as a measurable quantity · Technical writing for non-technical audiences · That “neutral” systems make choices
CS 175 · How Things Work
Build PageRank

Students derive the PageRank algorithm from the random surfer model, implement it on a graph of their own construction, then run it on a real web crawl. They modify the damping factor and adjacency structure and observe how rankings change — which leads directly to the question of who decides what matters on the internet.

Students Learn Through This ProjectMarkov chains and stationary distributions · Matrix multiplication as a meaningful operation · Power and amplification in information systems · How search encodes value judgments
All Courses
The Abuelita Test

Every capstone project must include a written explanation addressed to a non-technical family member: what does your program do, what problem does it solve, and why should someone care? If you cannot explain it to someone who doesn’t speak code, you don’t fully understand it yet. Communication is assessed alongside the code itself.

Students Learn Through This ProjectTechnical communication as a skill, not an add-on · The gap between knowing and explaining · Audience-aware writing · Why documentation matters in professional software
All Courses · End of Semester
Public Exhibition

Every course ends with a public exhibition, not a final exam. Students present their portfolio of work to an audience of peers, instructors, and community members. Students write a self-evaluation against the course learning goals and propose their final grade with evidence from their portfolio.

Students Learn Through This ProjectPortfolio thinking and self-assessment · Public communication of technical work · Ownership of learning outcomes · That the work they built is worth showing

Research Roots

These courses are not built on personal teaching preference. Each design decision traces to a body of research or a theoretical framework. The thinkers below are not name-dropped — their ideas show up in specific assignments, assessment structures, and sequencing decisions across every course in this curriculum.

Amy J. Ko
Critically Conscious Computing · UW

Equitable, joyous computing education. Read-before-write sequencing. Student agency and institutional trust as preconditions for learning.

In These CoursesStudents trace and read existing implementations before writing their own. Build-before-import is directly drawn from Ko’s read-before-write research.
Jeff Anderson
Antiracist Learning Science · Ungrading · Strategic Deep Learning · Foothill College

Jeff’s top-level professional goal: use antiracist learning science to help people thrive. He maps every classroom decision back to research in cognitive science, the psychology of learning, and the scholarship of anti-racism. Creator of the ALAF textbook, the Strategic Deep Learning framework, five anti-racist learner-centered objectives, and a pioneering ungrading practice.

In These CoursesPortfolio assessment and student-proposed grading are drawn directly from Anderson’s ungrading framework. The Abuelita Test is adapted from his communication frameworks. The three-track system honors his principle that learner-centered means the student determines their path.
Paulo Freire
Pedagogy of the Oppressed · 1968

Students are not empty vessels to fill with content. The banking model of education reproduces passivity. Knowledge is a liberatory act when connected to lived experience.

In These CoursesEvery capstone is student-chosen and connected to a real problem in the student’s community. Students determine what they build, and for whom.
bell hooks
Teaching to Transgress · 1994

The classroom as a site of freedom. Bringing the full self to learning. The instructor’s vulnerability and intellectual engagement as pedagogical tools.

In These CoursesReflective writing is required alongside every project. Students write about struggle, confusion, and discovery — not just what they built.
Joy Buolamwini
Gender Shades · MIT Media Lab

The coded gaze. Facial recognition systems that fail disproportionately on darker-skinned women. Bias is not accidental — it is the product of who is in the room when systems are built.

In These CoursesThe Bias Audit project in CS 180 and CS 185 is directly modeled on the Gender Shades methodology, adapted for undergraduates with no prior research training.
Safiya Umoja Noble
Algorithms of Oppression · 2018

Search engines encode power. Information retrieval systems reflect and amplify the values of the people and institutions that build and fund them.

In These CoursesThe Build PageRank project ends with a structured analysis of how the algorithm’s design choices determine whose content surfaces and whose is buried.
Ruha Benjamin
Race After Technology · 2019

The New Jim Code: technological systems that discriminate while claiming objectivity, making discrimination harder to name and challenge.

In These CoursesBenjamin’s framework is the theoretical grounding for CS 185: every algorithm is a choice about what to optimize, and that choice has a politics.
Donald Knuth
The Art of Computer Programming

Algorithms are art. Rigor and beauty are not opposites. The deep analysis of even simple algorithms reveals structure that cannot be seen from the surface.

In These CoursesCS 210’s emphasis on implementing before using, and on understanding the full analysis of even simple structures, is a direct inheritance from Knuth.

About This Curriculum

Designed by Henry Fan — CVC-OEI Application Support Analyst at FHDA, CS curriculum designer, and mentee of Prof. Jeff Anderson (Foothill College). The framework is a proposal, not a currently taught program.

Full About