
New York Mayor De Blasio to Require Computer Science in Schools - mcgwiz
http://www.nytimes.com/2015/09/16/nyregion/de-blasio-to-announce-10-year-deadline-to-offer-computer-science-to-all-students.html?emc=edit_na_20150915&nlid=21175094&ref=headline&_r=0
======
dopeboy
I've taught programming on a volunteer basis to high school kids on behalf of
a non-profit in NYC for the past two years. [0]

Rough thoughts:

* This is great news. I'm not the biggest fan of DeBlasio but this is a step in the right direction. There are too many bright and talented kids who never get exposed to computers or the field of programming. Getting to these kids and showing them that they're capable of manipulating the machines they use everyday is huge.

* There needs to be more effort put toward sourcing qualified teachers. I talked about this in more detail in another comment in this thread but a TFA equivalent might be a good idea.

* I'm pleased this is not a mandate to teach all kids programming. I've seen kids in my classroom who are there because they want to be with their friends. There needs to be a small amount of organic interest on the student's part.

* What will the curriculum be? Is it going to be AP CS which has serious issues around it and over-emphasizes theory over practice? I've found that---especially with high school kids---it _needs_ to be fun and have immediate feedback involved (ideally visual).

Sidenote - if you're a programmer who lives in NYC and wants to make an impact
now, consider volunteering for ScriptEd
([https://scripted.org/](https://scripted.org/)).

[0] - [http://dopeboy.github.io/teaching-
code/](http://dopeboy.github.io/teaching-code/)

~~~
ytpete
> it needs to be fun and have immediate feedback involved (ideally visual)

This is so huge - it's not just that it's exciting for students and a more
rewarding way to show friends & family what you're studying. It's also a great
overview of the field: AI, graphics, data structures, performance, network
programming, discrete mathematics, concurrency, on and on. You never know
what's going to resonate with someone and get them excited about pursuing CS
further.

But it's also hard to get through to the CS academia establishment on this. I
worked with a professor who struggled for years to get a game programming
course accepted by his department. They kept rebuffing him because "games
aren't serious." (He eventually left and started a very successful game
programming track at a different school).

This was an Ivy League school, and they also seemed overly fixated on theory
over practice. I think they had the mentality that in depth hands-on
experience equals vocational school. I hope more of the teaching programs
coming online now understand how engaging it is to just make fun things with
code - and how it can still be a great learning experience as well.

~~~
dopeboy
One one hand I get academia and on the other hand I don't.

They might argue because it's computer _science_ there should an emphasis on
theory over the practice. And while the practice (individual technologies and
languages) change rapidly, the concepts moreorless stay the same. There are
also software engineering and informatics majors that bring in more practice.

On the other hand, most employers want kids from the "hard" disciplines. And
academia knows this and actively promotes themselves based on these metrics.
So why not be a little forward thinking and integrate more practical skills
into the curriculum like version control, more team projects, more practice
with web development, etc? The whole holier-than-thou mentality that you
reference is immature and has got to go.

------
jboggan
When I was 8 my public school had a gifted program that I was fortunate enough
to have participated in. They attempted to teach us BASIC on Apple IIe's, or
rather the teacher (who had little or no understanding of programming)
followed through a lesson book and told us what to do. We were creating still
color images, pixel by pixel, and I thought it was the most boring, pointless,
and stupid exercise we did that year. No connection was made to the programs
that we used on a daily basis or the Nintendo games that I was so happy to run
home and play. It completely disinterested me in computers for the next 15
years as I was more drawn to competent teachers who could share their love of
music, mathematics, and literature.

I wince when I think about the years I spent not coding because of poorly-
intentioned education. I'm not sure that a mandate to have that many CS
teachers at that level will create positive educational experiences on the
net.

~~~
blister
That's interesting. My school in Indiana had a gifted program that taught us
the rudiments of Basic programming in almost the exact same way. We used to
take home grid paper, draw in the pixels where we wanted them, and then write
out the code to display them on the screen.

Thus began my life-long love affair with making computers do what I tell them
to do. As a 4th grader, even just the exposure of typing words and having
graphics show up on the screen was enough to let me know that this was
something I would love.

~~~
jboggan
I'm guessing it was some sort of standard lesson plan. The problem wasn't with
the lesson plan so much as it was being taught by someone who didn't really
understand or wasn't personally _moved_ by code.

At that age I was the same kid who typed random characters in my Apple IIe at
home pretending to be the G.I. Joe "Sci-Fi" who was "hacking" the Cobra
Terrordrome. But somehow the static pixel assignment came across as the
slowest coloring book ever and I didn't get the point of it at all. What I
would have done for a reference manual or any bit of the internet back then.

I remember hacking Logowriter to trace out a clock's second hand in 6 degree
increments over the course of a minute, but my regular teacher thought it was
stupid and told me to finish the assignment drawing squares.

------
danso
I imagine most of us programming now will be dead by the time (if at all)
programming reaches some kind of universal acceptance; think of how long it
took for literacy to become universally important, even though reading and
writing was done centuries before Gutenberg.

20 years ago, learning programming wasn't as important because the technology
just wasn't there to make it a good return on investment. But the value of
reading and writing was also relatively minimal when it cost a fortune just to
_make_ a single copy of a book. If programming is how we turn human thought
into machine-understandable commands and subroutines, and more and more of our
work is delegated to machines...it's hard to imagine the long-term argument
against learning programming.

~~~
userbinator
Unfortunately I don't know if it ever will reach the same level of importance
as literacy, because the industry seems to be trying very hard to discourage
regular users from ever becoming programmers or even "advanced users"; see the
War on General Purpose Computing:

[http://boingboing.net/2012/08/23/civilwar.html](http://boingboing.net/2012/08/23/civilwar.html)

[http://boingboing.net/2012/01/10/lockdown.html](http://boingboing.net/2012/01/10/lockdown.html)

I mean, how do you even convince someone that learning to program is a good
idea if it takes jumping through many serious hoops just to set up? The
majority of interaction with computers is with locked-down mobile devices.
Contrast this with home computers in the 80s that were practically begging to
be programmed as they came with little other than a built-in interpreter, or
the early days of the PC where _user magazines_ had source code - in assembly
language - that people could enter in DEBUG and create small but useful
programs.

The walled gardens of app stores have also grown to the point where simply
sharing an executable with someone has become an almost taboo act, with some
central authority telling the users who to trust.

It's in the interests of the software industry to keep the majority of users
computer-illiterate, so they can be profited from. On the other hand, basic
literacy is valued by the industry, because it makes it _easier_ to persuade
users who know how to read and write (adverts wouldn't work if people couldn't
read them...)

~~~
interpol_p
Locked down mobile devices do not prevent you from enjoying programming, or
sharing in that joy with others. I make a programming app called Codea for
iPad. I get users telling me it brings them back to their first days of coding
basic, and kids as young as six using it to make games. My forums are full of
people sharing their code and creations.

In fact, I'd say that it's more accessible _because_ it's on a locked down,
easy to use device.

~~~
userbinator
I know such environments exist, but programs in them aren't really "first-
class citizens" of the platform; I'm not saying that people don't like it, but
after all there's no mistaking that it's more like playing in a sandbox you
can't get out of. "Why do I need this app just to run what I wrote? Why can't
I make it do $something_native_apps_can?"

...although perhaps it would be a great time to talk about how things used to
be different, when such questions come up.

~~~
interpol_p
> but programs in them aren't really "first-class citizens" of the platform

But now you are moving the goalposts.

It is irrelevant whether programs are "first-class citizens." It doesn't stop
one from enjoying and experiencing programming, and it certainly doesn't
prevent someone from making just as complex and interesting programs
regardless of the environment in which they are executed.

The point I am arguing from your original post is the following:

> Unfortunately I don't know if it ever will reach the same level of
> importance as literacy, because the industry seems to be trying very hard to
> discourage regular users from ever becoming programmers or even "advanced
> users"; see the War on General Purpose Computing:

I very much disagree that anyone is trying to discourage regular users from
becoming programmers. Whether you are in a sandboxed or locked down
environment is an irrelevant implementation detail. Virtual machines can be
explored on such systems, even if the real ones can't.

(And, as an aside, Codea for iPad _can_ export a user's project into a native
app that can be developed further or uploaded to the App Store. So even
environments like the iPad can, and have, produced "first-class citizen"
applications. In fact, we published the first game coded entirely on iPad in
2010. It has had millions of downloads.)

------
throwaway420
* Getting a little exposure to it is wonderful and valuable for all. But I believe that being good at computer science requires having some skill at a type of abstract thinking that many people, even otherwise really intelligent people, don't possess. If this ever becomes mandatory for all students, I believe that it will be a recipe for a lot of wasted time and frustration.

* If it ever becomes mandatory, I also wonder if this could also be a recipe for really hampering kids who are actually interested and talented in this field. You'll have a bunch of untrained teachers trying to corral a group of kids, the majority of which won't be interested in the subject matter. That will end up with dumbed down classes so the majority don't feel uncomfortable and the talented folks also being frustrated at being slowed down and made to do a bunch of busy work.

~~~
rhino369
A lot of people are really bad at math and we give them at least 10 years of
it. I think at least some exposure to CS is important to just give kids a
sense of it before college.

------
cpwright
The original title "De Blasio to Announce 10-Year Deadline to Offer Computer
Science to All Students" is a better headline. Of note in the article,
"Computer science will not become a graduation requirement, and middle and
high schools may choose to offer it only as an elective." This is quite
different than the HN modified title.

~~~
mcgwiz
I thought about this too. The current HN title is basically the title used for
this article on the NYT homepage. Prepending "New York Mayor" clarifies the
significance of this "De Blasio" fellow.

<bikeshedding> Both titles have merit, both titles have flaws. Granted, in the
shorter title, it's unclear that the "requirement" is of the school to offer
it, not of the students to take it. In the longer title, who cares that it
hasn't been formally announced yet, and it's unclear upon whom the deadline is
placed. </bikeshedding>

Can't please 'em all.

------
decisiveness
>“The difficulty is getting enough teachers who are trained in it, and trained
well enough to make it a good introduction to computer science,” said Barbara
Ericson, the director of computing outreach at Georgia Tech’s College of
Computing. “And if you are well-trained in computer science, you can make a
lot more money in industry than teaching.”

Seems to be the real problem here. What kind of negative effect might result
from a bunch of unqualified high school teachers teaching CS poorly? Is some
exposure better than none regardless of teaching quality?

~~~
dopeboy
Yep, this is the central problem and I'm disappointed the city isn't taking
any steps in offering incentives to potential teachers. The hard truth is
there's a huge opportunity-cost for a professional programmer to step into a
~$50k role.

On a broader scale, what needs to happen is a TFA like organization for
programmers that works with companies and source their employees for 1-2 year
tours of duty. This org would train programmers how to teach (good programmer
!= good teacher) and place these programmers in schools that need them. Most
critically, this org would need to convince employers to count this service as
part of the employee's total work experience and professional development.

~~~
larrykubin
I am volunteering to teach in Seattle through the TEALS program (started by a
Microsoft employee) for a couple of hours a week:

[https://www.tealsk12.org/](https://www.tealsk12.org/)

We had a few summer training sessions to learn how to be effective teachers,
and they have some lesson plans written out for teaching with Snap (a visual
language based on Scratch). The high school in our neighborhood wants to offer
AP Computer Science eventually, but we are starting with an Intro to CS class
first. I agree that it will be hard to find professional software developers
who will leave their job to become teachers, so it seems like we are relying
on volunteers who have a good work life balance at this point.

Appreciate the blog post on your previous comment, sounds like NYC has its own
similar organization. Anxiously awaiting school to start on Thursday :).

~~~
dopeboy
That's awesome! I think TEALS has a chapter in NYC too.

Good luck for Thursday.

------
logn
> “I’ve literally had a conversation with a student where she’s saying, ‘I
> really don’t like math,’ as she’s walking me through a JavaScript function
> to have an interactive photo gallery on a web page that she had also built
> from scratch,” Mr. Samuels-Kalow said. “I looked at her and said, ‘This is
> harder math than what you’re doing in your math class.’ ”

And being a baseball pitcher requires lots of physics knowledge. If they
actually want to teach computer science, then they'll be teaching some math.
But this will probably turn into a practical programming curriculum. Maybe we
need to accept that vocational schools are actually what our country needs.
And a vocational programming course just doesn't carry the same stigma as
other fields.

~~~
dopeboy
> Maybe we need to accept that vocational schools are actually what our
> country needs.

The success of dev bootcamps would seem to indicate they are what's needed. I
have mixed feelings here.

> But this will probably turn into a practical programming curriculum.

I would argue that's what it _should_ be if the pathway is to get the student
to major in CS (or related). Most kids need to get excited before they get
interested. If the hook is practicable programming (a la jquery photo gallery)
in HS, then the catch becomes learning the linear algebra that is behind
moving a picture from one spot to another.

------
browseatwork
I wonder what impact there will be in places that will require the
availability of CS classes for students.

Who's going to teach, and what will be expected- a credential, a CS degree?
Programs that have a shortage of qualified teachers, e.g. special education in
California, have some streamlined process, but it still requires a credential.

What will the CS-skilled teachers get paid- the same as others? What material
will they use? Hopefully good digital content will help students with teachers
of all quality levels be exposed to good lectures and material.

Will universities see even larger increases in CS class demand?

Will poorer students join the middle class with skills gained through programs
like this?

Large companies will be so happy when they get a huge increase in their
applicant pools, especially more overall women/non-whites/non-Asians, for good
pr/stats. And with an increased supply, a decline in price they'll have to pay
for simpler/lower-level work. This could have a knock-on effect up the chain
over time.

------
nemo44x
I admire the sentiment but I have to believe that at any scale someone
qualified to teach CS would be doing something a bit more lucrative than
teaching public school. Altruism is a beautiful thing, and something I wish I
had more of, but let's face it: it's easier to demand this than to actually
deliver it.

I imagine that when our industry has the next culling, public interest in CS
will wane as usual until the next revolution is quickly unleashed by software
fueled technology.

~~~
cm2187
To me it is less about teaching computer science than teaching computer
literacy. You learned physics or history in high school but that wasn't to
make you a scientist or an historian.

~~~
iLoch
I agree, also a big benefit of having CS in schools is just in getting kids
exposed to it. Would be nice if they named it something a little more friendly
too, as I'm sure Conputer Science scares some people off.

------
alexvr
By the time kids who are taught to program in K-12 enter the workforce,
knowing syntax, computer details, and data structures will be a thing of the
past or a thing for really hardcore engineers who have to use a strict
language like Python. By that time, most common programming tasks will be a
matter of writing plain English and testing the AI interpreters, and students
will be stuck learning archaic programming just as they are presently forced
to learn archaic and impractical math techniques that could be done very
intuitively with a few lines of Python and arithmetic. I say this jokingly,
but there may be some truth to it.

------
cm2187
It's great to give the oportunity to kids to learn computer science but it
looks like everyone associates computer science with programming. That's true
at university level but does that make sense for young kids? Shouldn't we
rather focus on the basics of computing: typing on a keyboard, understanding
how an OS works, how internet works, a browser, etc. Then in high school some
basics of programming in an easy but useful language like VB, java or python.
And leave the hardcore stuff for university.

~~~
dopeboy
It's a good thought and in an ideal world with enough resources, I think this
is how things should go. But if there aren't enough resources, I think a "JIT"
approach is sound where students learn how a browser works as their learning
HTML or they learn how the internet works when they're making a call to an
API, etc.

~~~
cm2187
They could learn the basics of HTML, CSS and javascript when covering
browsers. But to me it is equally important to understand why https and
certificates matter, how email works, what's a DNS, a router, what's the
difference between an IP and a Port, between RAM and ROM, CPU and GPU.

And even very basic skills like using Excel, Word and Powerpoint.

Programming to me is an advanced topic in computer literacy.

------
kkalra
It's a good start but I think it better to focus on getting kids interesting
in general math and sciences (of which computer science is a part). The next
generation of entrepreneurs need to focus on solving bigger problems and not
just focused on making apps. Of course all of it depends on how we can get
kids more engaged and interested in learning (whatever subject that moves
them).

~~~
dopeboy
I think what's being proposed here is both. I know it varies by country but
atleast here in the US, kids learn the core subjects and then have a couple
options for elective courses (music, basketball, etc). The objective of the
mayor is to get CS into that elective list at all schools.

~~~
kkalra
Agreed. Having that option is an absolute must. I've been a programmer for 20
years so I think this is a step in the right direction. The point I was trying
to make is that in the last few years, there's been a lot of talk about
getting kids interested in programming but there's a lot more to the sciences
than just programming. We need to make general math and sciences more
interesting to kids. Maybe programming will be that catalyst to leads kids to
a love of math and sciences.

------
snorrk
I'm just worried that the kids are going to get arrested:
[http://www.dallasnews.com/news/community-news/northwest-
dall...](http://www.dallasnews.com/news/community-news/northwest-dallas-
county/headlines/20150915-irving-ninth-grader-arrested-after-taking-homemade-
clock-to-school.ece)

------
SEJeff
I had a class in C++ in 10th grade and an advanced class in C++ in 11th grade.
It clued me into the fact that I was pretty good at building things (I played
with legos a lot as a child) with software.

Fast forward 18+ years, and I'm a successful software engineer at a leading
financial firm. Yup, this is a great idea.

------
crapolasplatter
From what I have seen gov't typically does things for the benefit of the
lobbyist and oligopolies and not the general public.

So I have a hard time not thinking that all this attention and push to teach
programming isn't really a ploy to saturate the computer field with software
engineers and programmers to lower their compensation.

IMO it looks like software engineers are getting compensated fairly well ,
perhaps to well and to close to executive and director pay. Increase the pool
of software engineers and the less you have to pay them.

------
ghufran_syed
Hal Abelson's foreword to Harvey & Wright's "Simply Scheme" comes to mind:
"One of the best ways to stifle the growth of an idea is to enshrine it in an
educational curriculum" [1]

[1]
[https://www.cs.berkeley.edu/~bh/ssch0/foreword.html](https://www.cs.berkeley.edu/~bh/ssch0/foreword.html)

------
sethbannon
It's a noble initiative but I can't help but wonder if some other discipline
will be the need-to-know one in a decade's time.

------
xacaxulu
This is the most "New York" way to do something: i.e. enforce it with LAW!!
What do Stop-and-Frisk, junk food tax and CS all have in common in NY?
Government enforcement hahaha.

How about just getting kids to pass basic Math and English courses first.

------
throwaway781
Current math teacher looking to teach computer science. Very excited to see
this!

~~~
dopeboy
Very cool! What curriculum are you following? And where do you teach?

~~~
throwaway781
We are using the EngageNY curriculum. I am teaching 6th grade in Baltimore.

------
stanley
As someone that attended public school in NYC, all I can say is good luck
finding qualified teachers and paying them enough to keep 'em from quitting.

------
crapolasplatter
test

------
ngoel36
It's too bad he hates one of the most successful apps of all time...[Uber]

