Simply Awesome Leadership in Computer Science Education

I woke up this morning to a post from Fred Wilson titled The Academy For Software Engineering. In it Fred announced a new initiative in New York City called The Academy For Software Engineering. Fred, and his friend Mike Zamansky (a teacher at Stuyvesant High School) helped create this with the support of Mayor Bloomberg’s office and Fred and his wife Joanne are providing initial financial support for the project. If successful, it will have a profound impact on computer science education in the New York public high school system.

Fred’s looking for additional support. I haven’t talked to Amy yet about magnitude, but I’ve already committed via Fred’s blog and sent him a note separately. If you are interested in education in general and computer science / software education in high school in particular, I’d strongly encourage you to reach out as well.

I’ve been working on this general problem (dramatically improving computer science education, both in K-12 and college) for a while through my work at the National Center for Women & Information Technology. More than ever I believe we have a massive education pipeline problem – whether you call it computer science or software engineering or something else. There are several fundamental problems, starting with the curriculum and lack of teachers, but including a total miss on approach and positioning. I expect efforts like The Academy For Software Engineeringto take this on directly.

I’m involved in the nascent stages of two projects in Boulder going by the code names “CodeStars” and “The Software School.” I’m excited about each of them and Fred’s initiative and leadership just pumped up my energy by a notch.

Fred / Joanne / Mike (who I don’t know) – thank you! And Mayor Bloomberg – we need a lot more politicians like you who speak their mind and get things done.

Before one decides to support existing models, one should ask if instead they should be blown up. Computer science education is completely broken. A few thoughts:

99 percent of students are interested in software engineering, not computer science. But most schools, particularly the prestigious ones, teach computer science.

Most of the computer science professors I know are not people I would hire, as a lead developer, a CTO, chief architect, or V.P. Engineering. And I an not super fussy.

Most software engineering programs do not even teach the basics, such as:

Good documentation
Commenting within your code
Source control
Working in teams
Basic UI/UX
DBMSs (basic stuff such as table design, stored procedures, and triggers)

Let alone scalability, security and internationalization.

The single biggest problem are the PhD programs. To teach in such a department, you need to obtain a PhD. I know very few gifted software developers who have any interest in the nonsense that PhD programs teach. (Including you by the way, although it was not a computer science program.)

One of the most innovative thinkers on software engineering is Philip Greenspun. Who practices what he preaches — he has started several software based companies and he still teaches, now and then, at MIT. Here is the course he is offering for free starting January 30:

Greenspun believes that the best undergraduate engineering program in the country is the Olin School of Engineering, which is affiliated with Babson College. From day one, students actually design something — a bridge, a nuclear reactor, a spaceship.

Skakespeare said, “The first thing we do, let’s kill all the lawyers.” Mitchell says, “The first thing we do, let’s kill all the computer science professors, OK only 90 percent of them.”

I strongly agree. And to be clear, none of these initiatives are supporting existing models. My impression is that the Academy for Software Engineering will be something totally new. The Boulder Software School and CodeStars are aimed directly at completely reinventing what “school” means for software development. And the work at NCWIT has been entirely about immersive computer science and software development, recognizing that “teaching Java to high school students” is – well – dumb.

Having spent some time at Olin, I think it’s great. I don’t know if I agree with Phillip that it’s the best undergraduate engineering program in the country, but it’s a powerful approach and should have a broad impact on engineering education over time.

James Mitchell

I think most people would agree that 99 percent of students are not interested in how to write a mathematical proof of a program’s correctness. Instead, they want to code an app. The movie “The Social Network” has substantially increased enrollment in introductory CS courses. Apparently the students want to write an iPhone app or the next Facebook. See:

So my first test for an intro class would be: “At the end of the first class, do students know how to write a ‘Hello World’ program?” If not, fire the guy who wrote the syllabus.

Since you are so concerned about the gender gap in software engineering, how about this: If you are female and you have SAT scores of 500 or higher in math, you must take one software development course each semester, starting in nine grade through your senior year of high school. If after that, you want to quit, fine, but you will have (whether you want it or not) four years of exposure to programming. Since we have compuslory education, why not include some mandatory programming education? The social pressures in high school are so intense, most girls want to be cool, and being nerdy is not cool for a girl, so a bit of compulsion is necessary.

There’s a logical issue in your suggestion that if your SAT score is > 500 then you must take a course on software development each semester. Most kids don’t take the SAT until their junior or senior year so this filter doesn’t work.

As someone who was forced to take two years of French in high school, hated it, and rebelled, I think there are better approaches than compulsory education.

Excellent points James. I personally have experienced some of this here in Rochester NY. There are kids on my FIRST Robotics high school team that could program the socks off of recent graduates from RIT – a pretty darn good school for software engineering – despite the fact that there are NO SOFTWARE PROGRAMMING CLASSES AT OUR LOCAL SCHOOL! They taught themselves, and were mentored through FIRST robotics and are – at 15 years old building stuff like this: http://www.youtube.com/watch?v=hklEpmiRIN8&feature=share. All of the software to animate and coordinate the sound for those Vocaloid characters was built by a 16 year old Robotics student.

James Mitchell

I think we as a society need to somehow make being a nerd more fashionable, particularly in high school, where kids are so impressionable. Right now the way to popular at most high schools is for guys to be great athletes (e.g., the football team) and for girls to be pretty and to be a cheerleader. If we could have competitions such as this and there was great prestige in winning them, more than being quarterback of the football team, a lot more kids would become interested. And some of them will have the necessary talent.

What really annoys me is that the colleges do not do anything. Imagine if every college that is ranked “Most Competitive” in terms of admission said, 4 years from now, when people apply, if you do not have one computer science course each semester on your transcript, it will be much harder to be accepted. In addition, there should be AP tests in different types of computers — Web design, web programming, even Microsoft Office.

This is awesome. NYC High Schools school require students to take at least one year of a foreign language and one year of a programming language (python?) Go one step further and add a AP programming class and wow, you just made NYC a to place to locate for Internet companies!

…..While I like the idea of an academy, I like a virtual academy even better. Standord’s virtual machine learning class November / December had 10000 active students. It was amazing. Something happens when students take classes virtually they become a community. This would be ideal for Colorado!

Brad, as you know we are an upstate NY company that was instrumental in the authoring of this product: http://demo.kajour.com and have a solid understanding not only of software development, but of building software for educational use at http://www.os-cubed.com. The Kajour project is currently on hold pending additional funding – it seems like there must be a way to marry NY’s desperate need for better software development education with a tool designed and built here in NY to enhance collaborative learning.

Agree that education delivery will be disrupted.
But I think the best solutions to student education will come from students. There is a contest (http://www.desire2learn.com/r/innovationprize2012 , disclosure: I am connected with it) that is trying to encourage students to create tech that facilitates learning.