Schools, Snake Oil, and the SOTU

Today I had the privilege of attending my second live State of the City address. Mayor Bloomberg didn't spend as much time on education as he did at last year's address but he did take a moment to give a shout out to charter schools. It gets old hearing the same false story about how charters are better than public schools. At least we have people like Gary Rubinstein and Diane Ravitch trying to set the record straight.

What's worse, when public schools are lauded, it seems that the ones given the spotlight are selling the same snake oil as the charter schools. Gary Rubinstein recently posted on one case here but I'd like to talk about another.

This week President Obama gave his State of the Union address. He gave a shout out to P-Tech, a new school with a six year (9-14) program. It's a partnership with IBM and students completing the six years will have the opportunity to interview for a job at IBM (note, that's an opportunity to interview, not an actual job). When I heard the shout out, my stomach sank.

P-Tech is being hailed as a new model for public education but for me, it raised serious questions.

First off, when did we start considering a school, under two years in existence, a success. The education reformers love to talk data yet here's the President, lauding a school that's collected no data. I personally feel that P-Tech is more style than substance but we won't know either way for another six to ten years.

In any event, let's think about the possible outcomes.

The best case is a student selects P-Tech in the 8th grade and leaves six years later with a solid job at IBM. What's wrong with that?

Well, since NY dismantled all the large schools, all that's left are small "themed" schools. Since they're small, they don't offer a wide range of electives, only ones in their theme. So, a youngster has to know that they want to do in 8th grade. Should a thirteen year old be forced to make a decision like that?

Another question is will there be quality jobs waiting for these kids? With more and more computing moving to the cloud, will there be jobs waiting for these kids in NY six years after they begin?

I have numerous other questions about P-Tech, but I really want to focus on one more here and it's one that surprised me when I started thinking about it.

It's not really a commentary on P-Tech but more on "early college" and what we consider college level work.

After the President's shout out, I decided to see if P-Tech would have something to say about it. I ended up reading a piece by Principal Rashid Davis where he talked about fifteen of his students earning a "C" or better in a college level course at City Tech, a CUNY school.

My first reaction was "that's really cool." Then I started to think. My daughter's graduating high school this year. She's very smart and capable and has always achieved academically. I wondered, how would I feel if the courses she takes next year are at a level of rigor such that she could have succeeded as a high school freshman? My answer was that I would be very disappointed in the college.

She backed me up by saying that she felt, looking back at all the AP courses she has taken, she probably wasn't ready for most of them in her freshman high school year. My own observations back this up. At Stuyvesant, we teach an enhanced version of the old AB AP Computer Science curriculum. We teach this to students in their junior year. Years ago, I had some sophomores enrolled and while a few succeeded, most of the time, the kids just weren't ready.

I don't mean to say anything demeaning to Mr. Davis' students here, but if our colleges are teaching courses in which a typical high school freshman can excel, then maybe they shouldn't be college level courses.

I've never really believed in the "early college" model anyway. We teach A.P. computer science at Stuyvesant but most of our CS sequence is designed to complement what our graduates will face in college. We're giving them the missing pieces. Yes, there is overlap, and I do believe we have a similar level of rigor but we strive to give the kids something they won't get otherwise.

In any event, at the end of the day what do we have? Plenty of snake oil to go around.

Taking it out of the school

Inspired by the likes of Jon Simantov and David Lerner as well as the greater Stuy CS family, a few of us have been working on CSTUY, Computer Science and Technology for Urban Youth. Yeah, we backed into the acronym. Let's bring Stuy CS out of Stuy so we can work on inspiring a wider range of students.

Well, last Wednesday we had our inaugural event. Hosted by NY TechStars (thanks Moisey), we invited 75 youngsters to an evening of talks. The idea was to have five different speakers each deliver words of wisdom and inspiration on a different but related topic.

First up, John Lee of School Yourself.

John talked about big data. Starting with a question "Who plays Chase on House?" John showed that by looking at huge data sets we can, relatively easily, come up with the answer. John showed that problems such as question answering are really accessible to youngsters. They might just be beginning, but they're not far away from being able to do some really cool things.

Next up Moisey Uretsky. Moisey talked about his journey from graduating high school through his college days, to starting companies, successes, failures and the adventure along the way. Moisey was frank and engaging and really gave the kids a lot to think about.

Spike Gronim was next.

Also talking about big data but Spike talked more about the dangers of misinterpreting data and how different representations can yield very different results. Spike also spent time giving career advice.

Tim Novikoff gave a different perspective. Tim spoke about how his explorations in IOS development lead in a roundabout way to his doctoral studies and very interesting research.

Hitting cleanup was Gerry Seidman of Tactonic Technologies.

Gerry gave a whirlwind talk about many of the things he's worked on. As he said "I don't have time to talk about anything, so I'll talk about everything." Highlights included the latest touch technology he's working on as well as vacation man++.


Gerry also dispensed words of wisdom to the audience.

While each talk was different, there were common themes:

  • Do something you're passionate about.
  • Build stuff and do stuff.
  • Journey can begin in unexpected ways.

It was a great first event. We're very excited about CSTUY and are looking to roll out more programs including more talks, classes, mentoring, internships and more. We're also planning professional development opportunities for computer science teachers.

We'll be putting some of the attendees' takes on the event up on the CSTUY blog over the next few days.

To hear about our latest, on twitter, sign up for our mail list and keep an eye on the CSTUY blog.

Why we script

I tell my students "the cool thing about what we do is that if we're not happy with the way something works, we've got a shot at fixing it."

That came up this morning so I thought I'd share.

I recently posted about the in-term projects my Software Development kids were working on. Well, now it's time to grade their final projects.

The code is up on GitHub. This morning I was faced with independently going to every project page and cloning each one:

Not fun!!!!

There had to be a better way. Fortunately all the projects were under a single "organization" and a little digging into the GitHub API reminded me that I could use this url: 

which brought up all this nice JSON data.

A little poking around in the data finds that each project url is part of a line that starts with "ssh_url."

a little wget, sed, grep and sh magic later:

urls=`wget --quiet -O - | grep ssh_url | sed "s/.*\(git.*\.git\).*/\1/g"`

for url in $urls 
  git clone git@$url

Now, as long as all the projects are under a single Github organization I can easily clone or pull them without having to navigate the Github web site.

Commandline FTW!!!!!!

Investing in People

A little over a year ago, I decided it was time to reach out to my alums, a group I refer to as the "Stuy CS family" and try to get us together. The most rewarding part of my job involves the relationships I've developed over the years but is was always between me and my alums and them to their classmates. This was an attempt to start building a network that spanned the years.

Yesterday, we had our fourth meetup. Somewhere between fifty and seventy tech professionals getting together over pizza and drinks. Our past meetups were always at bars - it was easy - send out an email with an address, time., and date, and people show up. This time, we really wanted to include the younger crowd, the 18-20 year olds so a bar was out. I asked the family if anyone could host and Ethan came through, volunteering Pave.

Pave is a pretty neat company. The best way I can describe them is that they invest in people. It's a place where backers invest in prospects, not only financially, but socially as well. I really like the idea and you should all check them out.

Justin talking to the family

The Pave folks were really awesome, offering space, helping to oraganize and also taking part in the event.

The event was great and having it at a company rather than a bar or restaurant had some unexpected side effects. Since there weren't nearly as many chairs, people mixed more and as I said, this allowed the younger set to meet the older alums.

Larry photobombing Tom and Ethan
Some of the still in college crowd

Being at Pave made me think that as a teacher, my entire career is about investing in people. Not in the same way as Pave, but still. My results aren't financial but in community. Although Pave does have a financial component to it, I really think they "get it" and wouldn't be surprised if they end up getting the community rewards as well.

Layers of a lesson

My last post I was talking about the fact that as teachers, our knowledge and experience is frequently trivialized. The tenor of the times is that anyone can design a course, anyone can teach, and in fact, we don't even need teachers, just videos or computer based systems. If you've ever tutored a friend, you're more than qualified.

That might be a strong statement but everywhere you look you see "education" programs designed and implemented by non teachers. It seems that it's believed that teaching only involves the most superficial of transfers of information.

Today, I thought I'd look at a lesson I taught the other week. How I've seen similar material presented and how my colleagues and I might treat the subject.

We use NetLogo in our Sophomore level intro course. It's a highly parallel version of logo. It's very visual, it's great for modeling and you can introduce deep, meaningful concepts such as parallel processing in a gentle manner.

Early on the kids have to learn how to manipulate the turtles. In NetLogo you write a single program and it's run by all the turtles "at once." The image above is one of their early "experiments." Have the turtles wiggle out of the center, but when they get to an invisible border, start spinning. They do a number of variations on this theme.

A solution might look like this:

; asked in a turtle context
to gospin
  ifelse abs xcor < 8 or abs ycor < 8 
    [ wiggle ] ; wiggle implementation not shown
    [ left 5 ]

Let's call level one just talking about the solution by looking at the program as a sequence of instructions. Specifically relating the instructions to the problem, showing how it solves it, and that's it.

This is the simplest level. A book, video, or online courseware can approach teaching at this level. A non computer scientist teacher or a non teacher computer scientist could do so as well. Students might learn a bit but I wouldn't hope for much inspiration or creativity to come out of it.

Let's move to level two.

Here we might talk about "what the turtles are doing." They're always doing something, either wiggling or spinning. This is a step in the right direction. When done right, the students start thinking about the problem in a more general sense but they're still looking at the problem as something that exists only in the world of NetLogo. They are more likely develop patterns than in level one, but it's still limited.

Level three is where things get interesting. On the surface, the problem is just a nice introduction to programming turtles in NetLogo. At a deeper level, it's an opportunity to introduce the kids to State Machines. A new way of thinking about problems and problem solving.

Students understand the idea of a "state." For example, in class, they're in a "seated state," maybe in a "note taking state," etc. It's easy to see that they don't know what their day will bring but they constantly make decisions based on their "state." Likewise, they can think about the turtle as in a state. It's either in a wiggling state or a spinning state and based on their situation they can either continue in their current state or transition to the other one:

This opens up a new way of thinking and it's easy to see how this extends to other problems, for example, a ghost from pacman:
A good teacher thinks about working across these levels. He adjusts based on the class and looks for opportunities to develop these deeper concepts.

Who's missing from the picture

So, it's Computer Science Education Week. Full of rah rah events and everyone's gung ho about teaching computer science.

You all know that CS Ed is what I've dedicated most of my life to and maybe that's why I'm "not feeling it" in terms of CS Ed Week. Let me explain.

Yesterday there was a Twitter Conversation led by a "national panel of thought leaders in the field." Click on the link. If it's still active you can see the list of "facilitators" they were highligthing.

I know some of the people and heard of some of the names and I do respect some of them. The problem is that if you look down the list you'll notice something missing. There are zero K-12 teachers on the list. None, not one. Some of the people on the list taught in the past. I don't know how long and in what capacity, but there are no current teachers. None of us current teachers are worthy "thought leaders?"

This is a big danger with respect to CS Education. There are a small handful of us on the ground, actually teaching, with a strong CS background and with real successes.

I know there aren't many of us. People with a strong CS background that have decided to become career teachers but there are a few. Stuyvesant barely had a single AP CS class when I started teaching here and now we have nine teachers. We've exposed and inspired student after student to CS. People dismiss us -- "You're Stuyvesant, you have gifted kids." We do have great kids, but then why haven't programs like ours sprouted up at other high performing schools? I'd like to think I've had something to do with our success.

So, here we have an incredibly successful program but no one wants to engage us in terms of improving and developing CS Education. I know a handful of other great CS Educators around the country. They've similarly felt ignored, rebuffed, and unengaged.

I think the problem is twofold. First, our society has taken to blaming teachers for society's woes and places little value in what we do. Second, education is the one field that everyone thinks they're an expert in. You went to school so obviously you're qualified to teach. There's a huge difference in what I do and with giving a few guest talks.

I've tried to engage NYC's DOE a number of times. According to Mayor Bloomberg, the Academy for Software Engineering (afse) was my brianchild but the DOE didn't pay any regard to my early suggestions, I had no voice in the development process and when push came to shove, the DOE decided to hire a consultant with a track record far more limited than mine or my team's. I finally gave up asking how I would be involved.

I'm also a CSTA member. In fact, I'm a NY State CSTA Advocate. I've reached out for help and to offer it over the years but responses have been lukewarm at best.

I'm here, my colleagues are here. We want to do more but apparently educators need not apply.

Back to the Twitter Conversation. Here are just a few tweets and some comments:


More and more online resources like @codecademy mean computing clubs without a highly trained CS Teacher are possible. #csedweek


I like codecademy and like the fact that they're engaging educators, but when I read this it screams to me "doesn't get it." I just taught a lesson today that on the surface seems like it could be covered by some automated service but there's so much going on between the lines. It's like saying "we don't need history teachers, let them read a book or watch a movie." If the tweeter said that when commenting on teaching history, the tweeter would be laughed out of the room.


YES! RT @ruthef If we want CS teachers, we need to increase teacher pay and partner with industry to get tech into the classroom! #csedweek


It has more to do with the lack of respect payed to teachers. No matter how much you raise pay, it won't compete with private industry. Also, what makes a great tech person doesn't necessarily make a great teacher. You need that rare union of both.


One of the problems we have with CS Education is that not enough research is bring done. Not teaching or results. #CSEdWeek


Research? How about talking to the teachers on the ground and helping build more of them.


Encouragement works. There are amazing tech girls @superandomness @temiri Just awarded 310 outstanding girls #CSEDWeek


Yes, but who are you encouraging. I've had many NCWIT winners come from my program. Usually, the most deserving young ladies lose out to young ladies who are lesser candidates but better essay writers. In any event, we've already done the hard work at Stuy inspiring the kids. By the time NCWIT gives the awards, we've already done the hard work. How about helping us rather than taking credit for our work.

There are those of us out there who have succeeded in spite of a lack of support. Why not engage us, use as as models, or at the very least, study us and decide that we don't know what we're doing.

So, where does this leave us?

I'm still fighting the fight. I'm still trying to get NYC and Stuyvesant to recognize CS as a department and help me train teachers and build programs around the city, but I'm not hopeful.

Meanwhile the train lurches forward.

About a year ago I was speaking to a friend of mine who's well placed in the tech world. He had just met with a number of movers and shakers about CS and technical education. His take away: if we go the way they're looking to go, maybe we're better off not doing anything.

I share that fear. No one's pushing for CS Education harder than I am but I fear that we will get "CS Ed" as opposed to CS, much like many of us feel "Math Ed" has hurt math education in our country.

I'll close with the sentiment shared with my by another high level tech person after another meeting with movers and shakers. He told me:

"There are a small handful of successes, like you at Stuy, but basically, we're f*cked."

Real Projects

This post was supposed to be about varsity academic teams but I wanted to share something else first.

For years I was unhappy with our "research" course but due to the misguided views of our past administration, I pretty much had to keep it running. Over the same time, I was frustrated by the fact that there was so much missing in our students computer science related education. Specifically, kids don't really get to experience creating large "real" systems from beginning to end. I was also frustrated by the fact that the previous administration prevented me from creating a course to address this problem.

Due to a particular set of circumstances, I was able to convert our research course into what is now my "Software Development" course.

So far, I'm very happy with the results.

The classes just finished their latest projects. Over the course of about three week, mostly on their own time, working around homework and other obligations, student groups designed, developed, tested and deployed a range of applications.

All the programs use Flask as a web framework. Many use MongoDB to store data and they used a range of web resources and apis. The students were a little limited by the time frame of the project and the fact that I just started teaching them how to use javascript mid project, but they really did a terrific job.

A few in particular were a lot of fun:

The Survival Guide used Google Maps to help prepare you for all sorts of disasters ranging from Hurricanes, to Alien Invasions, to the Zombie Apocalypse.

A Movie recommender That used MoveDB, YouTube, and the NY Times API to find and show info about movies and actors.

Recipe Pricer scrapes for a recipe then uses Google's shopping API to price out the ingredients (with some interesting results).

One group remade the Stuyvesant Home Page but since they're using a Twilio test account you won't be able to see the really neat stuff they did.


Tweet Stat tells you how well your favorite celebrity spells.

This is just a sampling.

You can see all of them at Our Projects Page and all the code is up on GitHub (linked from the page).

I'd encourage you to take a look. It would be terrific if you could give the class feedback either by commenting here or on the project page.

I can't wait to see what they do for their next projects.

Special thanks to Ben, Moisey and the entire DigitalOcean team for providing us with server space for all of this.

Making Varsity part 1 - Athletics

I've never been a huge fan of the way we do varsity sports, and I say this as a guy that coached for a number of years. In NYC, we're governed by the Public School Athletic League or PSAL. Practice time and lack of facilities make teaching difficult, but my biggest problem is the fact that most teams cut, that is, if you're not in the top "n," you're out. So, if our basketball team has, let's say 15 kids on it, they get exclusive use of the gym every afternoon during basketball season and no one else can receive coaching or be part of the team.

I coached Stuyvesant's fencing team for a bunch of years and I think I did a pretty good job. We won our share of city titles but while most coaches ran teams in a traditional way I never cut anyone -- we might have over thirty people in a tiny room trying to learn how to fence.

I can be competitive and we often won but high school should be about exposing kids to new experiences and the exclusiveness of competitive sports seems to be contrary to this.

Thats why I love Stuy's rowing club. I've been involved in the program for about five years now. Prior to that many of my CS students were involved and they kept saying "Z - you've got to check out the rowing club." During good weather, every Wednesday, we go up to the village community boathouse at Pier 40 and row Whitehall Gigs - old school wooden boats - 4 oars and a coxswain. We've rowed up to the Intrepid and down to the Statue of Liberty.

It's a great activity and everyone's welcome. It's an athletic, team building activity and very different from what our kids normally do. It's an opportunity for our non-competitive kids to be involved in a great athletic activity.

For our competitive kids, they can enter our races. Everyone can take part in local races (cancelled this year due to Sandy) and we usually send our top crew and a younger crew to events outside the city. Just two weeks ago, Stuyvesant sent two crews up to Hull, MA to take part in The Icebreaker Northeast Regional Youth Rowning Championships. Our kids got to meet and compete with kids from all over the northeast.

If you're wondering about how we do with the non-cut format - both of our boats won their respective divisions (first fours, the top division, and second fours). A mixed crew with Stuy alumi won the first sixes division. And yes, that's Batya in the picture - she coxed our first fours.

It would be great if kids had more athletic opportunities like this.

Next post -- how this relates to computer science.

Alumni Day(s)

The day before Thanksgiving is always fun. For as long as I can remember, recent graduates descend upon Stuy. For the most part, they mull around the senior bar but we get our share up in 301.

This year was a little quiet but I got to see more than my share of graduates over the weekend as I attended the 2002 and 2007 class reunions. I've only been invited to a handful of reunions and really consider it an honor when I am.

I had a great time at both events but here are some notes for those of you organizing reunions in the future:

  • Name tags!!!!!! 2002 had them, 2007, not so much.
  • Be a sport, give the teachers the open bar tickets (thanks 2007)
  • Maybe I'm just an old fart, but people are there to reconnect - lower the volume on the music - particularly if you don't have a dance floor

I've got to also give particular props to Gary He for keeping the class of 2002 crush lists for the past 10 years.

Between the two reunions and the alumni visits prior, I noticed a few things. First. I was reminded that each years is like a separate stratified layer. You might know a couple of students from the year before or after, but that's about it. It's like groundhog day. Each year has a similar assortment of personalities and archetypes and exists in semi-isolation. I also noticed that while the graduates were strongly connected to each other, not so much to the school.

These are two of the things that I've tried to address by creating I'm hoping this group can bring Stuy grads together across the years. The feedback I got from people at both reunions was very positive. I'm also counting on this community to give back to help us in our efforts to enhance computer science education at Stuy and in the city.

On the lack of connection to the school, I do think things will get better. Stuyvesant's new principal, Jie Zhang was at the 2002 reunion. The fact that she was there was huge. I can't imagine the previous principal coming in to attend a class reunion. After all, he's the principal that tried to keep the alums out of Stuyvesant on multiple occasions. There was also a point in the evening when one of our alums was telling Principal Zhang that many graduates wanted to be more connected to Stuy but felt alienated. She seemed shocked and emphasized that graduates should be welcome at and feel part of the community.

It was a tiring weekend -- too many late nights, but a good one.

I sense good things to come.

Back to Work

On going back to work today

Since school was still out due to Sandy, we ran a second online class yesterday. At the end of the session, which I'll summarize below, I told the class what I wanted them to accomplish today and over the weekend. One student queried "you mean no class on Friday :-(?" Alas no -- while students aren't reporting to school this morning, teachers are.

Of course the logic as to why is far from sound. Some schools are fine, some not, in our case, there's no subway service south of 34th street or coming in from Brooklyn and we're located near the tip of Manhattan.

What are we going to do? Who knows. We don't have lessons to plan and while Stuy has power, phones and internet are out. Professional development? Even when planned extensively, I've found it to be mostly useless (I always have to sit through math PD, for example, learning how to use a graphing calculator).

So, we're going to report in for no real purpose. Best I can figure, the city wants teachers in so they can call it a professional development day then they can try to change things so that students will report during Brooklyn Queens day next semester thus restoring one instructional day lost this week. Not a bad idea to recapture the day but to make teachers - coming from all over the area - trudge in for no purpose just to play politics is distasteful but unfortunately typical.

To add to the insult, not only are us teachers still in the dark as to what's going on, we weren't even told when to report until after midnight yesterday. I woke up at my usual 5:00am to exercise but first checked my email -- waiting was an email from Chancellor Dennis Walcot. I recieved it at 12:52 this morning. This was when I was first told that I was to report to school at 10:00am. I can't believe this decision couldn't have been made and emailed out a few hours earlier. In any event, I'm waiting until 10:00 to get in - I've often found the building locked when I've shown up before official opening hours.

So now for the part of my job that I actually enjoy:

How did yesterday's online class go?

Today's class was a wrapup of a mini project -- basically an add-a-line story site. You can see an unfinished version that two of the students put together here. You can see more of the stuff we are using on our class github page. The students are using Flask which is a python website generator along with MongoDB. We had to tie up some loose ends.

We again broadcast a Google+ hangout live through YouTube and we again used a google doc as a chat space. This time we used the right hand side bar for comments and only used the document for more permanent material (a web refernce for example). It worked much better. The vertical flow of comments on the sidebar were much easier to track and work with than a freeform document.

The session still had the time delay problem and the feedback loop is still a killer but the students again seemed to enjoy the experience. This is clearly not a replacement for in person teaching, but again, better than nothing on a day off.

And a note on the Stuy CS Culture

The seniors were game for this experiment and would be happy to go again today if we were able to. They also continually surprise me in little ways. When we started this mini project, we all had to learn how to use MongoDB (myself included). At first I had a hard time confirming that they had done the outside work to learn the MongoDB specifics. Only as they continually gave me better alternatives to my approaches did I know that they were on top of things.

On the other hand, my sophomores were much less receptive to an online class during the hurricane days. A handful wanted to give it a go, but the majority never responded to my email. Why was that?

I have a few thoughts.

  • A big reason is that I've only been with my sophomores for a short time. We haven't yet built the rapport and culture that exists in my senior classes. I always notice a difference in class attitude around Halloween but we really don't have the feeling of family until late November or some time in December.
  • The sophomores are in a required course, the seniors an elective. I think this is secondary to the culture / rapport but I'm sure it has an effect.
  • I believe the seniors have a better understanding that what we're doing in class is to their benefit and the sophomores are still

I'm going to have to pay more attention to the time line from when students come into my class and when they become part of "the family."

Enter your email address:

Delivered by FeedBurner

Google Analytics Alternative