Looking under the hood

Just had an interesting conversation with Chris, one of our CSTUY mentors. Chris is working with one of our more advanced groups of hackers - they'll be creating a web based app that with ultimately be deployed as mobile using PhoneGap.

The question he had was "Angular.js or Backbone.js."

Chris and I have had this conversation before. I was explaining at the time why I preferred to use Backbone.js over Angular in my SoftDev classes. Part of the reason is that the current version of Angular is already deprecated while the new version isn't ready for prime time yet. This means I'd be teaching to a dead end. More importantly, Angular is a much higher level framework than Backbone. There's a lot of "magic" going on. Just a few short lines of code and you're done.

Backbone is much closer to the metal. It does less work for you so it let's me drill down with the kids all the way to the source. This way the kids understand what's going on under the hood. As my buddy Gerry says, "never use a tool you couldn't write yourself." I personally like low level tools like Backbone.js. If you have to get a job done quickly, it might not be the right tool, but for teaching, it's terrific.

I think Chris was surprised when I said that a higher level tool like Angular could very well be appropriate for our Saturday Hackers and that I'd certainly support whichever direction Chris wanted to go in with his team.

Why might it be right in this case?

Mostly because the hackers only meet once a week. In our Saturday sessions, we want our kids to learn, but we also need to create an environment where they can continue to progress on their projects. Some times, compromise is needed. Angular will let them get up and running within the constraints of our program and the hackers will still learn a lot, particularly with people like Chris mentoring them.

That's the balance we strive to achieve - a good amount of real CS but tempered with the realities of a once a week program.

We could go the way of many other CS programs out there and just use tools that do 90% of the work but we like to think we have a higher standard and I think that's what makes our team of teachers and mentors special.

Grading Autograders

The other day codehs made an announcement about their new autograder. Fellow CS Teaching veteran Alfred Thompson had his say up on his blog where he talked about Mark Guzdial's comment on autograders leading to less creative assignments.

I very much agree that autograders, due to their rigidness lend themselves to less creative projects, but thought I'd write up a few of my own thoughts on autograders.

First and foremost, I HATE GRADING. It's one of the worst parts of my job and grading projects is really hard to do well.

You'd think an autograder would be a panacea.

It's not.

In addition to them being very nit-picky – got an extra space in your output? FAIL. Wrong number of significant digits? FAIL. Didn't handle all those "trick" cases? FAIL.

Since autograders typically check your output against a correct solution, it's going to be limited in what it can grade right and wrong and what's more, it's very limited in the feedback it can give.

These are some of the limitations that lead to less creative projects but that's not my beef with the autograders.

Why do we give assignments? To assess students? Yes, but also to inform our instruction. We need to grade the assignments ourselves because those assignments tell us about our students and teach us how best to work with them. What's more, we really don't just want to see that finished product, but rather, we want to see the process as well. Autograders can't help here.

I do use autograders – codingbat.com and our own locally developed Scheming Bat. I use them for small homeworks and class assignments early on. For bigger stuff, I do it myself.

For advanced classes (AP and beyond) we're all about the GitHub. Not only can I grab the projects at any time but I can also see how projects were developed - logs, diffs, graphs. All give me insight into how the students working. Add in class lab time when I get to interact with the kids and I've got a good sense of my student computer scientists.

In our intro courses, where they're not ready for GitHub, we use Dropbox for sharing and collecting assignments. Not quite as good but we can still see a lot.

At the end of the day, if a teacher doesn't look at a student's work directly, a teacher isn't going to know everything there is to know about a student. I can't imagine a top English teacher not reading a student's essays. We're no different.

It's time consuming and generally no fun but it's a big part of real education.

Free labor for the College Board and more angst for the kids

I won't be teaching my regular classes tomorrow. I'll be meeting all my kids but classes will only be 12 minutes long.

So, how will my colleagues and I spend the rest of the day?

Proctoring the PSAT.

This has always been a sore point with me. Back in the day, many schools, Stuy included, offered the PSAT on the weekend. If you wanted to proctor, you'd come in and get paid a little extra. As a kid, if you wanted to take the exam you'd come in as well.

I don't remember when it changed but at some point it did. The DOE decreed that if you offered the PSAT during the week on school time, the DOE would pay for the exams. This was done under the ridiculous idea that all kids taking a test that counts for nothing is a good thing. You can make a claim that having taken the PSAT gives the kids some familiarity with the SAT but the SAT's value as a predictor of college success is questionable at best anyway.

Of course, setting things up like this is a great deal for the College Board. It looks like they get a $15 per kid cash cow every year from the NYC tax payers. It's a hidden expense so no one complains but we keep shoveling the money out the door.

What's worse is that we also provide the College Board with free labor - rather then spend my day teaching my kids I'm working for free for the College Board administering their test to my kids.

Teachers do the work, kids suffer through the exam, and the College Board laughs all the way to the bank.

Coding schools - or why I chose NYCDA

Some of you might have noticed that a few months ago, I decided to affiliate myself with The New York Code and Design Academy or NYCDA. I took on the role of "Academic Director, Youth Programs." It's a part time gig, at least for now and I'm helping them develop their programs for middle and high school students.

Why did I choose them?

There are a number of coding schools with varying levels of hype around them. At their core, all are workforce programs. They take people with little or no programming background and after a few months of intensive training, they ship them off as web devs or the like.

I have friends at many of these coding schools and related programs so what was different about NYCDA that made me decide to work with them?

They know who they are, they know what they do, they know where they want to go, and we all feel I can help them get there.

Let me explain.

Most coding schools follow the same mold.

For one reason or another, a founder decides to start teaching a class. This works pretty well so it starts to grow into a business. For many of these coding schools, the teaching staff comes from the program's own graduates.

The key point here is that most coding schools have little to no interaction with real, experienced educators.

So, why do they work? Well, to start, there's plenty of low hanging fruit. Right now, as these programs are in high demand, programs can cream top applicants.

Many programs also have applicants complete pre-work - that is a program of self study before starting the coding school. This pretty much ensures that your classes are going to be composed of hard working, intelligent self starters - that's a recipe for a successful student body.

Given the student population and the fact that the skill set for an entry level programmer can be taught fairly formulaicaly, it's a recipe for success.

Now, I don't mean to imply that these schools are bad or doing bad things - all of them are taking people and giving them a chance at a new career. It's good and it's important. Even more so for organizations that provide a step up for the have nots.

Teaching kids is another matter.

For adults you're teaching a specific skill set for a specific job market. For kids, you're setting a foundation and opening doors. You can't just take your adult model and apply it to kids. Well, you can, and it will even look good, but it won't have real substance.

That's what impressed me about NYCDA - when Jeremy came to me it was clear - they knew what they did and what they did well. He also knew that as they ramp up their youth offerings, it was important to involve real, experienced educators - that it was about having true expert teachers even more than it was curriculum. He understood that while NYCDA is doing a great job, how much better could it be to include CS educators who have been sending kids into industry successfully for years.

I was even more delighted when my partner in crime JonAlf Dyrland-Weaver - one of the best teachers I know, CS or otherwise, agreed to teach one of our NYCDA youth courses this semester.

NYCDA is the only coding school working to bring the best teachers out there to their youth programs.

That's why I joined on and that's why I'm really excited for the programs we're going to roll out.

How it all began

This past week, Garth Flint wrote a couple of posts on how he got to be a CS teacher and on being a CS teacher. You can find them here:

They're both well worth a read.

It got me thinking about how I got my start.

I never planned on being a teacher. I figured I'd just work in tech. After working my way through college, fresh CS degree in hand, I landed at Goldman Sachs. I had other opportunities but the tech scene was very different. You could (basically):

  • Work for a financial house or insurance company
  • Do niche consulting
  • travel out of the city to Bellcore, AT&T or IBM.

Well, I didn't drive and wasn't going to do consulting so I ended up on Wall Street. I worked there for a bit but it didn't do it for me, then tried a consulting gig. No better. Wall street never appealed to me and at the time, more programming type jobs involved you working alone on a computer in an office or a cube all day.

So, for no particular reason, I decided to give teaching a go.

I always wonder, if I had come along a few years later if I would have stayed in pure tech.

I had zero teaching credentials but there was a math teacher shortage at the time. By taking a couple of CS classes as math classes (numerical methods, algorithms) they justified giving me temporary license. I would have to take a handful of Ed credits within a couple of years and later get a masters (which I knew would be in CS, no way was I getting an Education degree).

So, I started at Seward Park High School as a math teacher. Best thing that could have happened to me. I was working with an incredibly diverse population - high achieving kids, low achieving kids, immigrants, multi-generational Americans, delightful kids and kids on parole. That's where I developed my chops.

Knowing that I was a CS guy the math chairman started having me teach the basic programming course and later APCS.

A couple of years later, I was bumped to Stuy. Taught math and the rest of my history can be seen here.

Garth talks about requirements and Alfred Thompson, in his link to Garth's posts talks about the problems of CS teacher isolation. It took a long time and it was hard work, but I started in a school with no CS to speak and no CS teachers and now we have a required course, between six and 10 CS teachers depending on the year, and a thoroughly oversubscribed program. Of course, if you're at a small school, you can't really do that. I remember in the early years, when it came to course signup time, I'd have to visit every math class in the building on one day to hock my courses. I'm glad those days are gone.

Garth also makes a great point about all there is to learn as a real CS teacher. The best math teachers I know love doing math and love solving problems but by and large, they're not learning new subfields every year. Over my time as a teacher I've learned, either by choice or necessity:

  • new fields such as
    • relearning AI, which is radically different then when I was in college
    • Data mining
    • Stats
    • OOP
    • Machine Learning
    • UX
    • HCI
  • new languages
    • Java
    • C++
    • Javascript
    • Haskell (a bit)
    • Python
    • Perl
  • And tons of technologies
    • Unix as a toolset
    • system administration
    • network administration.
    • Git

      and many more.

On the other hand, since I do work with many other CS teachers, I might be a little bit of an outlier. Some of my colleagues also work to keep current and learn new things while others are content with their knowledge base and are happy to teach what they're currently teaching. That's not to say that they don't work on their craft, but rather, they're in a comfort zone of knowledge.

So what's next? As initiatives like CS4All progress, CS education will become more formalized. You all know my fear about the current efforts - CS Ed will go the way of Math Ed and we'll be left with Meh CS education for all. If that's the case, and I hope I'm wrong, many of Garth's issues will disappear. CS across the nation will become more generic but more accessible and CS teachers will hopefully know how to teach their courses but maybe not too much more.

Even if that is the case, there will hopefully still be places for us old time gluttons for punishment.

I guess some people like the blues

Funny story from yesterday.

Devorah, my better half, is an assistant principal at another high school. Yesterday evening, she was at work late for "curriculum night." Parents came to the school after hours to hear a variety of presentations.

During her presentation, Devorah mentioned her name, that she had two former public school kids in college, and that's about it for the personal info.

After the session, two parents approached Devorah to say "we're big fans of your husband!"

Since when do teachers have fans?????????

I mean, I understand "my daughter/son was in your husbands class and really enjoyed it," but "I'm a big fan?" She wasn't sure how to take it. Obviously we both took it as an honor and compliment but we also both got a chuckle out of the turn of phrase.

I've already said that teachers aren't rock stars, we're blues men so I guess this shows that some folks still like the blues.

Hacking Sessions - iterating until it's right


Today we kicked off Hacking Sessions 2015. Saturday morning with sixty kids in a room brainstorming ideas. Soon they'll settle on teams and projects and we'll be off for a semester of exploring CS and tech.

The next couple of weeks will be a little chaotic with groups shifting, mentors figuring out which groups to work with and us, the instructors launching each team on its way.

This is our third year running Hacking Sessions. We're setting things up to have student teams exploring a project, technology, or tool. Each team will have more experienced students mentoring them. In some cases the mentors will also be new to the topic. Supporting both the hackers and mentors are our instructors.

I'm pretty happy with our model but it took us a couple of iterations to get here.

Our first go round was Fall 2013. We had just started CSTUY and wanted to get something started prior to launching a summer program. SumAll provided us with space and we were able to attract a small cadre of kids. We had a few of our older students as teaching assistants and ran the program with a mix of instruction and projects. Over the year we saw that a Saturday program presents a number of challenges:

  • Students have other obligations on Saturdays such as athletic teams. This can lead to inconsistent attendance.
  • SATs also kill attendance
  • You can't count on the participants to work between the sessions.
  • Lateness can be an issue early on a Saturday morning.
  • Once a week makes building a community a challenge.
  • kids have enough classroom learning during the week. Saturday should be a change of pace.

We learned a lot that year and ran V2.0 the following fall. Second time around we had the advantage of bringing in kids from our summer program to seed the culture. We also knew we wanted to move to more of a project / mentor based model but due to space restrictions couldn't really get to where we wanted to be.

That changed halfway through when SumAll moved to larger offices. By the end of the year, I think we worked out most of the kinks. We figured out how to get the kids into teams and pointing in the right direction as well as how to find the right mentors and provide them with support. The only thing we weren't happy with was that the mentors didn't have enough time to work on their own projects.

Now we're in V3.0. Thanks to our kickstarter, we're fully funded and somehow word seems to have gotten out. Numbers are way up and I think we've finally gotten the model down.

As with anything new, it takes time and revisions to get things right but as long as one leaves the kids with a net positive and as long as one can look at oneself with a critical eye, you eventually get there.

Looking forward to a great year.

Suspension if disbelief and the Mikado

I was brought up on Gilberg and Sullvan. My father, who always wanted to be an opera singer sang with LOOM back in the day and there was always classical music playing. Either from the Hi Fi or my father singing.

Recently, there's been a kerfufle over what was to be NYGASP's production of Mikado.

My son, Natan wrote a terrific blog post on it and the suspension of belief in opera. It's long but well worth a read.

If you like G&S or opera in general, take a look.

It can be found here.


Not in with the in crowd - concerns about NYC &#35CS4All

Earlier this week, Mayor Bill deBlasio announced some ambitious CS Education Plans for NYC. I posted a response here. Now that a few days past, I thought I'd clear a few things up.

First and foremost, I hope my concerns are unfounded and I hope the plan is a tremendous success.

What's got me bummed is not that I need to see my name in lights given that in many ways I've been a CS Ed trailblazer (although who doesn't like a little ego stroking), rather that in my humble opinion NY has squandered a great opportunity and resource and as a results, kids won't get nearly all they could.

This STEMs from the fact that NYC has been unwilling to engage us, StuyCS as a resource. We've got the most experience and success in building programs, training teachers, and teaching kids. What more could you ask?

I've repeatedly reached out to and repeatedly invited in key government and DOE players in an effort to try to get them to look at our work and leverage it to do more good for more kids but over two mayors and around fifteen years, the silence we get back is deafening.

Now, this isn't to say that I don't have some friends and supporters in the CS Ed space. I consider Fred Wilson, the main man driving this from the tech sector side to be a supporter, ally and friend. His involvement is the key reason I think this whole thing might work. Likewise, many people in the tech industry who've worked with my graduates are very supportive of my efforts and my actual graduates are a wonderfully supportive family.

So why do the DOE and NYC people say they don't want to include us?

Here are some of the things I get back:

  • We want something that works for all students.

This implies that our stuff is purely a result of Stuy being a school with high achievers. My response?

  • By saying all students but excluding high achievers, you can't mean all students.
  • Other high achieving schools haven't developed anything near what we've built.

and it also ignores the fact that:

  • Our nonprofit has had kids from around 40 to 50 schools and we get rave reviews from those kids and their parents.
  • Our gender numbers far outpace the national averages.
  • We've had teachers move on to other schools and customize our work their.

and this is just the teaching part. What about our success in designing an overall program or training teachers.

Of course it doesn't help that Stuyvesant's own administration has never recognized nor supported StuyCS.

You'd think that those with the keys to the castle would engage and at least consult with the people who've been doing this successfully for over 20 years.

So who are these folk with the keys?

It's a mix of people. Some in NYC government, some in DOE, some Tech entrepreneurs, and running program. None have our experience or track record and a number have neither taught nor coded.

Why won't they really engage us?

You're guess is as good as mine but I have my suspicions.

Why am I concerned?

Because we have something to offer. NYC and DOE won't leverage us as a resource. What other missteps will they make as they try to bring CS4All.

I have no control over all of this, all I can do is work in my little corner of the world. If others want my help, my doors always open. If not, I know there will always be some parents, kids, and educators who get what we do and will benefit from it.

I should be happy but feel like I've failed

The NY Times just posted an article - the mayor announced a 10 year deadline by which time all NYC public school students will be taking CS.

I should be happy.

I'm not.

I feel thoroughly defeated.

As many of you know, I've struggled for years to try to bring CS education to more kids and to train more teachers. You also probably know that over the years, I've become pretty good at this.

Why am I feeling so down about this.

Because despite my best efforts I'm no closer to my goal than day one.

Stuy is no closer to recognizing CS. I'm still a just math teacher and the DOE has given the job of running CS education to person after person none whom had any real CS experience and few who have had any real teaching experience.

I see plans based on dropping in curricula and quick fixes.

I see programs run by people still wet behind the ears with respect to CS Education.

Sometimes I feel like I'm the only sane person in the room, or maybe I'm the loony. I'm not sure.

Probably because I don't play well with others.

So I feel defeated.

Defeated because I know I have something to offer that the kids of NYC deserve.

Defeated because I know they're not going to get it.

I'm already looking to leave Stuy and public education.

Maybe this is just another sign that it's time.

Enter your email address:

Delivered by FeedBurner

Google Analytics Alternative