Community College CS Computer Science Department Project-Based · Equity-Centered · Open Access
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.

No Required Textbooks No Exams 3 Entry Tracks per Course Portfolio Assessment All Resources Free
Three Core Principles
01 — Derive Before Compute
Earn the abstraction.
Every tool — a hash table, a gradient descent step, a transformer — is introduced through a problem that makes it necessary, before the formal concept is named.
02 — Build Before Import
Implement before you use.
Students implement every major data structure and algorithm from scratch before reaching for a library. You earn the abstraction by understanding its interior.
03 — Equity as Design
Algorithms encode values.
The social implications of systems are not a module added at the end — they are part of understanding what the system does. Bias is measurable. So we measure it.
Featured Project Build a Computer from Scratch 20 weeks · Team-built 8-bit breadboard computer · Cross-STEM transfer across 5 disciplines PhysicsMathLin AlgDiff EqChem Open Project →

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.

This failure is especially concentrated at community colleges, where students arrive with more diverse prior experience, more financial and time constraints, and less inherited access to the social capital that makes traditional CS culture feel familiar. The typical response — remediation, prerequisite chains, stricter placement — treats the wrong variable.

This curriculum takes a different position: 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. The fix is not remediation. It is a different kind of course — one that begins with a problem the student wants to solve, introduces tools only when they’re needed, and assesses understanding through what students build rather than what they recall.

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 210 Students 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 185 Logistic 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 185 The 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.

No
prereq
Any student
CS 175
How Things Work
CS 180
Intro AI
CS 185
Intro ML
CS 210
Data Structures
Math 2B
Linear Algebra
ENGR 11
MATLAB & Eng.

CS pathway (left to right) · Engineering track branches at Math 2B / ENGR 11 · All courses accessible at Track I with no prior programming

AI
Course 01 of 06
CS 180
Introduction to
Artificial Intelligence
Currently Taught

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
Currently Taught

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
LA
Course 05 of 06
Math 2B
Applied Linear
Algebra
Currently Taught

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
Currently Taught

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 taught at three simultaneous depth levels. These are not ability groups, remediation tiers, or ceiling categories — they are depth choices. The same concept is taught 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: every module includes an explicit “STEM Bridge Moment” where the instructor names the connection to the student’s next math, physics, or chemistry course.

Physics Discrete Math Linear Algebra Diff Eq Chemistry
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, recurrence relations, semiconductor chemistry · 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
“The most advanced technical skill in these courses is understanding who built a system, for whom, and what it encodes about the world.”
Course Philosophy · Rooted in Freire, hooks, Ko, Anderson
0
Required Textbooks
0
Exams
3
Tracks per Course
Curriculum Adaptations — Andrew Ng × Community College

Andrew Ng’s landmark Coursera specializations, rebuilt for community college students. Same rigorous concepts, three entry tracks per course, problem-first sequencing, and every project connected to a real community need. No exams. No required textbooks.

Original course content by Andrew Ng (Coursera / deeplearning.ai). These are community college curriculum adaptations — restructured for three-track delivery, portfolio assessment, and equity-centered project design. Not affiliated with or endorsed by deeplearning.ai.

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. His conviction: the top 100% of learners deserve the best teaching in the world.
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. The Build a Computer project’s entire assessment structure, reflection design, and cross-STEM bridging philosophy are built on his foundation.
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.

This curriculum is developed by Henry Fan, a CS instructor at a California community college working at the intersection of computer science education, equitable pedagogy, and learning science research. The courses on this site represent a multi-year project to redesign introductory CS at the community college level — building courses that are technically rigorous, project-driven, and designed from the start to serve students who have historically been pushed out of CS.

The pedagogical foundation of this work is built on the mentorship and teaching philosophy of Jeff Anderson (Foothill College), whose commitment to antiracist learning science, ungrading, and the principle that every classroom decision should map back to research in cognitive science has shaped how every course on this site is designed, assessed, and taught. His five anti-racist, research-based, learner-centered learning objectives are the invisible architecture of this entire curriculum.

The curriculum is connected to ongoing research into help-seeking behavior in introductory CS courses, curriculum dependency structures, and the experiences of students who leave STEM at community colleges. That work lives at the CS Education Research Portfolio →

All course materials are free and open access. Instructors who want to adapt any of these courses for their own institutions are encouraged to do so. For questions, collaboration, or to share what you build with these materials, reach out directly.