What Bootstrap Taught Me About the Hidden Math Gap in Computer Science Education
For a few years, I’ve made a fundamental error in my computer science teaching: assuming students arrive with certain mathematical concepts. I did learn to teach middle schoolers which axis is x and which is y, but I never taught about order of operations, what a function is, what f(x) means, etc.
Brown University’s Bootstrap Algebra takes this head-on. Computer science content often assumes these foundational concepts, but when students lack them, we end up teaching syntax instead of thinking. Bootstrap Algebra builds the mathematical and linguistic foundations that make computer science accessible to everyone, not just students who happened to master these concepts elsewhere.
Here’s what I learned from the professional development:
About Bootstrap Algebra
Computer Science builds on some linguistic¹ and mathematical concepts that are sometimes assumed. This is true at all grade levels. Brown University has developed the Bootstrap Algebra curriculum – an integrated math and computer science curriculum that builds linguistic and mathematical foundations in a way that provides a common vocabulary and conceptual understanding, leading to greater success in both math and computer science.
Bootstrap introduces the following common vocabulary and concepts, equipping students with a foundational language they will use as they explore computer science:
- Order of operations (using circles of evaluation as an alternative to PEMDAS)
- Variables
- Simple Data Types (even just the notion of what a data type is)
- Functions that consume a domain and produce a range of value(s)
- Function composition
- (Function) Contracts (i.e. signatures)
- Function description (including a description of the domain and range)
- Examples (unit tests)
- Coordinate systems
- x, y, width, height, etc.
- Graphical composition, translation, etc.
- Simple and complex inequalities
- Conditionals (if statements)
Bootstrap Algebra is middle school content. For middle school, it could consume an entire semester or serve as foundational preparation for CMU Coding Academy or physical computing.
For high school computer science, it creates an initial framework that accesses or reteaches students’ math learning while establishing a common vocabulary and conceptual basis for exploring other computer science content.
¹ Research shows that language skills are far more important than math/numeracy skills in predicting a student’s performance at learning modern computer programming. And generic problem-solving and learning aptitude are even more relevant than language or math skills combined.
Sometimes the most important professional development forces you to question not what you’re teaching, but what you’re assuming students already know. 📚💻