In 2012 I, along with a group of like-minded colleagues, signed up to take on an audacious goal: we helped open New York City’s first public high school focused on computing. We didn’t know it at the time, but this effort became part of the foundation of the new Computer Science for All effort to bring computer science to every public school student in New York City. This past June the Academy for Software Engineering (AFSE) graduated its first class of students, and the journey has been filled with learning—for both students and teachers.
AFSE has seen success in credit accumulation and college enrollment for a population of students that often don’t see success in those areas. While AFSE’s demographics roughly mirror those of New York City schools—46 percent Latino, 29 percent African American, 11 percent Asian, nine percent White and five percent other—our graduation rate, for this first class, is more than 90 percent, exceeding the citywide average of 68 percent. Similarly, our college enrollment rate will be above 90 percent, whereas the city’s is 45 percent.
From the outset we knew we wanted to bridge mathematics and computer science. On the surface it appeared simple enough, mathematics and computer science should be natural partners—the low hanging fruit of interdisciplinary computer science education. But when we dove in, our math teachers quickly encountered critical content that just didn't translate. Add to that students with varying degrees of competency with the material and the very real need to prove that our great experiment wasn’t a one-off trial but a scalable, equitable model for others to follow, and one can imagine what the past several years have been like.
Computer science might be what makes us unique, but we have built on the success of our peers in the small schools movement. Our underlying philosophy has been to bring as many adults and experts as possible into each student’s life. This simple, yet complex, approach ensures that students are seen, heard and valued as individuals. Our advisory program ensures that each student has a teacher who knows his or her family and tracks academic progress throughout their high school career. Our partnership with iMentor ensures that each student has a professional mentor to connect them with the possibilities and realities of life after high school.
All of the curriculum we have developed has followed a similar principle: ensure that all students are connected, acquiring new knowledge and building confidence as they progress through concrete steps. We present them with opportunities to extend their thinking into a new world of application. For computer science, this means we have done a tremendous amount of in-house curriculum design. Five years ago when we were in the initial planning stage for what would become AFSE there weren’t any curriculum offerings that met our goals. First we needed layered curricula that would be accessible to the broadest population of students. Second we needed the structure of the learning activities to be conducive to large classrooms of 28 to 34 students. Finally we needed clearly defined and measurable skills and learning objectives in order for us to know what students were learning and to provide them with useful feedback.
We chose the AP Computer Science A and AP CS Principles standards to anchor our curriculum in external metrics. This helps us share our work and enables our students to claim a widely regarded measure of success. We align pedagogically with other content departments in our school because students perform more consistently when they can transfer the expectations from one classroom to another. Students are asked to self assess and provide feedback for their peers through rubrics—they are active participants in their own learning and growth. We are explicit about the academic habits needed to reach high levels of achievement in software engineering. Our plans are to continue to develop more instruction for creating questions and to be more explicit about habits of inquisitiveness and perseverance. In essence, we provide a rigorous yet supportive environment for students to grow and succeed.
Building a computer science focused high school for a general population of students, our principal knew we should try to leverage the many overlaps of math and computer science and charged me with building a math and computing elective that would sit between traditional mathematics and traditional computer science. Students don't necessarily transfer skills between mathematics and computer science unless the two domains are precisely mapped to each other. However, if done right, by making explicit connections and clarifying expectations, large gains are possible in both subjects—and for a wide array of students and skill sets.
As a math teacher, I had used various platforms with small groups of high performing students. Our plan was to build from this approach, but licensing costs and a lack of pedagogy and curriculum for a wide range of learners argued against it. We were unsure of how to proceed until I was lucky enough to attend a demonstration of the Bootstrap curriculum. It was immediately obvious that the blend of mathematics and computer science, reinforced by sound pedagogy and an eye on the needs of all students, would serve our purpose well.
My semester elective grew out of the standard Bootstrap offering by expanding the depth and independence of student thinking and adding several projects. It was simple to build on the Bootstrap foundation to create a regime of activities and assessment materials to bridge between math and computer science. Working with the Bootstrap team to administer pre and post paper-and-pencil algebra assessments, we got to the students taking the class and to the students who wouldn’t take the class until the following semester. The students in the course doubled their averages while the control group remained flat. Pundits may wonder at the need for Algebra, the fact remains that a majority of students will take an Algebra course before graduating from high school. Algebra can deliver key skills in problem solving and abstract thinking. What if the purpose of that course went beyond simply learning quadratic equations or solving for X? We have been fervent advocates for the use of Algebraic languages and sound pedagogy to build bridges between the many connections of math and computer science.
Computer science and the impact of software engineering on our lives support the argument that Algebra is crucial to today's world and economy. Even if you never solve for X in your job, chances are that you will confront the need for formalism and the need to reuse a procedure. That is the core of computing, as well. A whole world of questions and ideas open up about the abstraction of arithmetic when we add the computer. We see large boosts in engagement and deeper questions about the types of things we are computing. X and Y can be coordinates of a character that you’re trying to move across a screen in a game you are designing or friends in your social network—or both if you’re playing Pokémon Go. We tighten the feedback loop, offload the work of computing to the computer, and focus the student on formal reasoning and problem solving—creating a deeper learning experience.
A central idea to the Computer Science for All initiative is that ALL students, regardless of their zip code, race, gender or technical abilities should have the fundamental knowledge and skills afforded by a high quality computer science education. In New York City, our goal is to reach every student in our public schools—1.1 million students—over the next ten years.
Will all these students go on to become software engineers or developers? Not likely, but the experience and knowledge they gain with the subject matter will better prepare them for the world in which they live. We expect students to read Homer and Shakespeare without too much worry about whether or not they’ll become poets or playwrights. The same should apply to science, technology, engineering and mathematics subjects. We’ve seen it work and believe it’s the roadmap for a more well-prepared and diverse tech workforce.
Eric Allatta is a founding computer science teacher at the Academy for Software Engineering.