The Bootstrap Blog

The Power of Functional Languages

Have you ever wondered why Bootstrap:Algebra uses the Racket programming language? We break down how this functional programming language benefits student understanding of CS, supports contemporary math pedagogy, and provides a language learning path for students.

Click here to

Posted March 15th, 2019

Why We Love Error Messages

Continuing our streak of error message blog posts, we share more details or our philosphy behind designing error messages, the pedagogy behind reading and understanding them, and why our team designs languages and interfaces from the ground up.

Click here to

Posted August 27th, 2018

Color Selection in Error Messages

Quick! Are student mistakes (a) opportunities for learning or (b) terrifying things to be avoided at all costs? Most teachers choose (a), but most K12 software tools give error messages that are pretty darned terrifying! At Bootstrap we create tools that fit teachers' needs and values, with great error messages optimized for readability and clarity. And boy oh boy, do we sweat the details! Here's a post from our sister blog over at the PLT group, explaining how we choose the colors in our error messages.

Click here to

Posted June 11th, 2018

Bringing Testing to K12 CS

In Bootstrap, students develop their programs by generalizing from examples, which are written as tests. The complexity of testing in a non-functional language means that these techniques typically aren't taught to Computer Science students until upper-level college classes. In Bootstrap, these tests are not only a way of checking the program but also a way of developing it. Thus, by using languages that make testing easy, Bootstrap can introduce testing early in students' Computer Science experience, while reinforcing important concepts that come up in other subjects like algebra and physics

Click here to

Posted March 13th, 2018

2018 Updates to Reactive!

With the core content of Reactive getting positive reviews, most of the changes this year were about adding exercises and optional activities, rather than making structural changes to the curriculum. This tells us that the course content has reached a level of quality that holds up for even the most discriminating CS teachers, while providing a high level of rigor that builds on earlier Bootstrap classes and integrates with AP CS Principles and other college-level computing courses.

Click here to

Posted January 10th, 2018

Data Science is Coming!

A lot of people are starting to talk about Data Science. Universities around the globe are creating specialized Masters of Data Science programs, and job prospects for Data Scientists are even better than for Computer Scientists. It's only a matter of time before undergraduate majors in Data Science start cropping up, and within 3-5 years we'll see calls for Middle and High Schools to start teaching it too. We've been been actively supporting our Data Science course for a year now (and have been thinking about this problem a year before that!), so we answered him and shared what we've learned. We'd like to share our knowledge on this topic publicly for anyone who's thinking about making a K12 Data Science course.

Click here to

Posted November 12th, 2017

Building a Block Language (Part 3): Folding and Errors

Just because blocks can prevent mistakes doesn't mean they should! We think that certain mistakes are valuable learning opportunities, and we've published several papers about our approach to error messages (here, here, and here). We also think there's a downside to over-scaffolding expressions to the point where "if the block fits, it must be right." We need our block language to let users write invalid code.

Click here to

Posted October 30th, 2017

Building a Block Language (Part 2): Functions and Applications

For teachers who are evaluating a block language, it's important to ask "what concepts is this language designed around?" Choose right, and a block language can make certain concepts wonderfully easy to teach. Choose wrong, and they can make it downright painful!

Click here to

Posted September 1st, 2017

Building a Block Language (Part 1): Getting Started

For years, people have asked us why we don't use blocks. The truth is, we love visual scaffolds, and have been thinking about visual syntax for more than a decade! We've built multiple block environments along the way, starting with one of the first web-based block environments ever in 2008, a Blockly implementation in 2012, and then a yearlong partnership with in which we co-developed a block language that would allow them to adapt Bootstrap to their own CS in Algebra curriculum.

Click here to

Posted July 27th, 2017

Accessibility (Part 4): User Testing

At Bootstrap, even our introductory Bootstrap:Algebra course has students program their own videogames. When it comes to differently-abled students, we want to take their affordances and constraints into account when it comes to the curriculum. What are the implications of graphical output when working with visually-impaired students? This past April, we had the opportunity to start looking at this very question.

Click here to

Posted June 16th, 2017

Accessibility (Part 3): The Definitions Area

Astute readers our last two entries will notice that we haven't mentioned the Definitions Area, and that's for good reason. The programs in the Interactions Area are so short that there's no harm in having the computer read out each symbol or keyword. But that ignores a much, much more difficult problem: how does a screenreader navigate programs that are dozens, hundreds or even thousands of lines long?

Click here to

Posted February 27th, 2017

Accessibility (Part 2): Images

In Bootstrap, students discover functions that draw all kinds of images, as well as functions that combine them in different ways. A student can, for example, display a triangle rotated 45 degrees, inscribed inside a circle. Images are opaque datatypes - how does a screen reader describe an image? A common solution is to annotate them with "This is an Image", and have the screen reader leave it at that. But if a picture is worth a thousand words, that's a lot of missing information!

Click here to

Posted by February 28th, 2017

Accessibility (Part 1): Getting Started

Today, we're announcing a beta release of WeScheme that adds full compatibility with screen readers. Fire up NVDA or JAWS and try it now!

When we say "Bootstrap is for all students", we mean it. Any time CS is required - whether in the form of a mandatory course or when integrated into a required math class - the bar for software accessibility becomes much higher. We take our goals seriously, and that's why we've begun a significant overhaul of our software to make it accessible to students with disabilities. To be clear: this is a journey we have only begun, and there is a lot more work to be done before Bootstrap is fully-accessible to all students! In this blog post (and the ones to follow), We'll share some of our efforts thus far, the problems we've faced, and the approaches we've taken to addressing them. We'll also highlight some of the challenges that we're still working on, in the hopes that others will find them helpful.

Click here to

Posted January 5th, 2017

Introducing Bootstrap:Reactive

The Bootstrap team is pleased to announce that Bootstrap:Reactive is officially out of beta, and the latest edition of the curriculum has been released! If you're a math teacher who has taught Bootstrap:Algebra, Bootstrap:Reactive lets you use your experience and expertise to teach a rigorous CS class while preserving the math you care about. If you're a CS teacher who wants to use the Bootstrap approach to introduce AP-level concepts, or an educator who's had success with Bootstrap, Bootstrap:Reactive lets you and your students build on what you know, without having to throw everything out and start over.

Click here to

Posted January 12th, 2017