On both posts, Michael Preston shared some important and good points about AFSE as a starting point and gateway that helped lead to CS4All in NYC and also specifically about AFSE.
In response to Alfred's question I thought it was time I shared a bit about what I was pushing for AFSE back when I was involved. I wasn't able to talk publicly about any of this at the time because I was warned very sternly by one DOE person involved that I shouldn't talk to "outsiders" about my concerns or designs. In retrospect, since I stopped getting replies to my emails and was apparently dropped from email lists after they selected their founding principal, I probably should have been more public about my critiques. On the other hand, I should have been more politic internally prior to getting to that point.
Reading Alfred's post, what I was pushing for AFSE at the time cuts right to Alfred's question so I thought I'd write about it today.
Before starting though I want to be absolutely clear about one thing. This is not a critique of AFSE as it stands. There are some great teachers and wonderful students there and I do what I can to support both whenever I can. This is a post about my design vs the DOE's design and later implementation. Also note that the numbers, sizes, restrictions and designs are all based on NY state and NYC requirements along with what one can typically do in a NYC public school.
Even though it's the least important issue with respect to a CS school or not, let's start by getting the dirty word out of the way. Given the stated mission of the school (at the time) I wanted a screen. Not a "Stuy test" screen but something. Probably something more along the lines of the screen used by the Manhattan Science Hunter High School. We never got that far in discussing it. My contention was and still is that if you want to produce "Google ready" software engineers by high school graduation, particularly in a small school, you can't start with kids 2 or 3 years behind in math. Now, if your goal isn't "Google ready engineers" but rather to use CS to engage a population that isn't otherwise engaged, I can get behind that and you don't need a screen. It's important however to note it's a different mission.
The DOE would maintain that you don't need any screen and kids can start out years behind and by the end of their senior year they'd be years ahead. It doesn't work that way.
They'd ask tech people at meetings what they looked for in employees knowing that they'd get back "teamwork, creativity etc." I would of course follow up with "where do you look for these candidates" and they'd say "MIT, Cal Tech, Harvard."
The DOE insisted on no screen. This is fine but it's no surprise that Google's not beating down the doors for AFSE graduates right out of high school and the math regents show that you indeed can't take kids from multiple years behind and end up with them multiple years ahead given typical school resources. They're doing really good work there but there's no such thing as a miracle school just hard work and incremental progress. I have heard more than once that the founding principal had lobbied for a screen so I feel my original assessment was correct.
Next up, size. The DOE insisted on a small school focused on CS. They wanted a school of around 136 kids per grade, which makes for 4 "homerooms," and that the school would focus on CS. My proposal was very different. I advocated for a school with about 340 kids per grade and not specifically focused on CS but rather with a great model CS program - a Software Engineering Institute at the blah blah school if you would.
A small school can't support a wide range of classes. With 4 classes of kids per grade you don't have a lot of schedule flexibility in terms of class levels or electives. You also have very few teachers per subject - for a subject taught for a full year every year for a single period, you'd have one teacher per grade in that subject. If you're a school for CS you're not going to be able to offer a robust schedule of music or arts classes. Likewise an arts school is going to be hard pressed to offer a suite of science electives. Remember, public schools are not flush with money and can't just offer loads of courses for a handful of kids.
What we end up with is a school with limited offerings beyond CS and we're asking kids to decide in 8th grade if that's the career path for them. This is a hidden problem of all small schools. Kids shouldn't have to decide on their future in the 8th grade. They should all be able to go to schools that offer a wide range of subjects to a good degree of depth. Only large public schools can do this. I know that public schools come with their own problems but this is one of the trade offs. I believe that having this selection done in 8th grade along with the tech stereotypes and preconceptions is a big part of the schools difficulty in appealing to girls.
Now even if every student who applied and is randomly accepted into AFSE does indeed want to be a CS person then we've also lost because we've done nothing to get more kids into the pool. It could still potentially function as a model school in terms of courses or possibly pedagogy but it won't expose and inspire anyone new with respect to tech.
Let's contrast that with what I proposed. I wanted around 340 kids per grade or 10 "homerooms." How did I arrive at that number? It wasn't just a guess. Schools like Stuyvesant or Brooklyn Tech are clearly too large and impersonal but small 136 kids per grade schools are too small. The 10 homeroom per grade school seems to be the best compromise. There are enough teachers so that there's institutional memory when one leaves, enough of them and students for a varied set of electives. It also means that there are enough teachers to avoid bad fits between teacher and student. At the same time, it's not so large that kids get lost. I also spoke with some of the best programmers I know - not computer programmers but people who schedule students for classes in schools and this seems to be the best compromise size range. Also, with this size you don't necessarily need a screen if you want "Google ready" software engineers. There will be enough of a range kids that come in behind and kids that come in ahead can get what they need.
I also didn't want it to be a CS school but rather a school with great CS. That way it would appeal to a range of students. Kids who think they want to do CS and those who don't. At the end of they day some of the kids that think they wanted CS won't want it and those kids will have other options. At the same time some of the non-tech kids will take the required CS and find out that "this is neat stuff" and we get to increase the number of people in the tent.
I still believe my design would have worked out better but that's not to say that I don't think that AFSE has been and is important. As Mike pointed out in his comment, AFSE was the first unscreened school to offer legit and it did (and does) offer a place for CS kids that don't get into or don't want to go to a place like Stuy which is very much a large school and an unforgiving machine. It was also a showpiece that helped pave the way for CS in all NYC schools. All of that's good.
I do regret parts of what went down between me and DOE. I don't regret sticking to my beliefs in terms of school design but I would like to have been able to handle the politics of the situation better. Had I remained involved I think I had more to offer. I don't regret it too much – at the time it went from the DOE telling me one week to "you can have any role in the school you want" to the next week "we want to introduce you to the person who we're making principal" and I recognize that I'd have a hard time putting that aside now and the me of a decade ago would have found it impossible. That said, I think everyone would have been better off if both sides could have played things better.
I'd still love to have the chance someday to set up and run a school of my design with my team. It'll probably never happen but it would be nice.