Ugh, had to go scurrying around to find this info (really wish they linked it directly), but here's the actual proposal (and its press release):
1) In the next three years, every high school will offer a foundational “Exploring Computer Science” course. (This is a survey course - my note)
2) In the next five years, at least half of all high schools will also offer an AP Computer Science course. (My note: AP CS is a Java based course that looks roughly comparable to first year computer engineering courses, including algorithms and data structure... I've never taken AP CS, but I bet lots of people here have, and they can probably elaborate on its usefulness)
3) Chicago will also be the first US urban district to offer a K-8 computer science pathway, reaching one in four elementary schools in the next five years.
4) Within five years, CPS will allow computer science to count as a graduation requirement (e.g. possibly as a math, science, or foreign language credit). Only thirteen other states have elevated computer science to a core subject instead of an elective.
Anyone who's cheering this proposal should remember how well making mathematics compulsory has worked out for us. How many kids are (justifiably) disgusted with advanced mathematics because it's forced on them?
It's also important to remember highschool teachers aren't college professors. You may have had awesome and passionate HS teachers, but from what I saw, there don't seem to be very many.
I think the quickest way to destroy a future programmer is by forcing them to learn dumb ideas from half-interested teachers during their formative years, and it seems like this proposal will lead to that. It's hard to understand why people trust the modern highschool system to teach kids anything. Most of the kids aren't there to learn; they're there because they're forced to be. If an ambitious highschooler wants to learn programming, why not give them a way to learn it in a university early?
I really hope I'm wrong, but in my experience the highschool system is a grim situation for nerds, especially in the Midwest.
EDIT: Regarding highschool teachers vs CS professors: I meant that teaching programming requires programming ability, not just teaching ability. Maybe highschool teachers will become good programmers first. I don't know. And certainly, awful college professors exist just like awful highschool teachers exist. It just seems like the average CS professor has a higher chance of imparting useful knowledge to kids than a highschool teacher who has to learn it from the same book as the kids they're teaching it to. Worse, the kids have a high chance of becoming disgusted with the idea of programming if it's taught poorly, so this proposal seems at least as potentially dangerous as it is potentially helpful.
The challenge is how they'll be able to teach folks computer science, when they fail to teach them basic reading and math.
The AP Computer Science class I took was close enough to first year coursework that they let me pass out of it. The biggest benefit was having a very serious teacher whose goal in life was that class. (He taught others, but his main focus as a teacher was the top 2-3% of programmers in the student body) It was a course that's both rigorous and useful.
I took AP Computer Science in High School. My teacher, who sometimes served as grader for the AP exam, would often tell us of one year in which there was a large number of abysmal tests. Many students could not answer even the most basic of questions. He and the other graders noticed that all of these students were from one particular state.
It turns out that this state had required CS as a subject, but many schools did not have faculty even remotely qualified to teach it. The schools had simply stuck a random math or science teacher in the role, and these teachers had made no effort to learn the content. My teacher told us that in the coding portion of the test, these students would often just write "my teacher did not know computer science, we just sat and browsed the internet all class."
Thank you for finding all of that. I think it squashes a lot of the negativity and objections elsewhere in this discussion. That is a legitimate sounding computer science curriculum and it's incredibly refreshing that it puts the discipline on a par with traditional fields.
My High School AP CS class was C++, with a very heavy focus on data structures, up to and including balanced binary search trees (we had covered linked lists, doubly linked lists and other more basic data structures, including pointer math, in CS 3/4). Second semester was a self-directed team project. This was in 2001-2002.
>>> 3) Chicago will also be the first US urban district to offer a K-8 computer science pathway, reaching one in four elementary schools in the next five years.
In my view this is as big a deal as the high school course, if not bigger. The earlier you teach it, the less rigorous and more fun it can be.
I took AP Computer Science A two years ago as a sophomore.
Most of the questions have to do with understanding how scopes, assignment, loops, and conditionals work. There isn't very much about data structures -- arrays (both the native and ArrayList kind) were the only structures ever covered. Most of the focus is on OOP and using the API for an app called GridWorld, which is pretty neat.
I'm currently a sophomore in APCS after taking a year of the base Java class. Both focus on the language for the most part. In APCS, ~60% of the material is Java OOP, as in specifics behavior when overriding methods, static vs instance, interfaces etc. 20-25% is control structures, syntax etc, and in first semester we've covered basic sorts, built in arrays and ArrayLists. I believe in second semester we talk about elementary data structures like linked lists and _maybe_ binary trees after the AP exam (the class is structured around CollegeBoard's AP exam).
Since there is already a Java class on campus, I think the AP class should focus more on language independent CS concepts. At least half of our final and tests are problems about determining what is printed by an obfuscated Java program to test knowledge of how edge cases are handled.
> I've never taken AP CS, but I bet lots of people here have, and they can probably elaborate on its usefulness
Well, when I took AP Computer Science, it was still Pascal, but it was pretty much what it says on the tin as far as being very roughly equivalent to an introductory college class (of course, the quality of introductory classes varies a lot by institution.)
My god, people. Why is there so much dickish nitpicking in this thread? This is great news! It is mind blowing (to me at least) that basic knowledge of programming is not a general requirement – and this is a step in the right direction, regardless of whether the terminology is exactly fucking correct or not.
As a 5th grade teacher who teaches "computer science" among other things, I completely agree that this is great news. Kids love learning about basic programming concepts, and they deserve the opportunity to be exposed to programming at a young age.
If there are any other computer science teachers on HN, I'd love to hear about what you're up to (especially if you are using Scratch with young kids).
"A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects." ~ Robert A Heinlein
I see several comments on this thread re: 'where are they going to get the teachers?' Not sure what Chicago is planning to do, but I'd love to see them follow the TEALS k-12 model (http://www.tealsk12.org/) - TEALS is an organization that brings software engineers into high schools to teach computer science (so you, yes you, can teach CS!) - there is a regular classroom teacher in the classroom w/ you, and while they help you out w/ teaching/classroom management etc, you are helping them to learn about computer science - so after a few semesters of assisting in intro CS classes, these full-time teachers are prepared to teach it themselves. Awesome program.
Also, notes on AP CS - a few years ago, the AP CS AB test (this is the one with all the data structures and stuff) was discontinued - currently the only AP CS class that exists is the AP CS A test (that is, the easier version, that covers a fraction of the material of the AB test). Also currently under development is "AP CS Principles" - an even softer, more humanities focused AP course that deals w/ the role of computers in society in addition to programming. I have mixed feelings about this - on one hand, it'll introduce way more kids to computer science and give them a degree of technical literacy that today's kids really ought to have... on the other hand, not sure how I feel about the 'dumbing down' of the curriculum - I loved CS AB - it was probably the best course I took in high school, and it's a shame that many students will no longer have that opportunity.
That seems like a great program. I too am skeptical about their ability to find enough CS teachers that are qualified to teach, so I hope they have a plan other than giving random teachers a book and setting them on their own. If you haven't posted this to hacker news yet, you definitely should! They look like they need and deserve more attention.
I really don't think teaching some basic syntax and some scripting is "computer science." It would help students a lot more if we started offering courses like discrete mathematics instead.
I know HN is really, really focused on semantics. I know this. But seriously, every single time one of these articles pops up with the GP calling programming 'cs', the majority of the discussion is focused on calling out how it's incorrect.
Now I may be wrong, but I know that I personally would much rather have been creating something with some basic syntax as opposed to learning theory while I was in grade school. Being able to see your seemingly magical incantations create something cool is going to be a lot more encouraging than studying discrete mathematics.
Theory is cool. Theory has its place, but before you even encounter the situations in which it's applicable, I'd say try making something first.
EDIT -- Especially when these kids are low income. Discrete mathematics to inner city kids is about as relatable as Biggie is to Wall Street bankers.
The point I suspect is not to make them all into little Knuths. It's to make sure they have at least some exposure, so they can decide if this something they want to pursue in a focused way later on -- and, importantly, regardless of their parents' own professional background (or lack thereof).
BTW, perhaps you're forgetting -- they're just 8th graders. We're luck of half of them can pass a pre-Algebra class. Any coding skills we can get them to learn on top of that is a huge, huge win.
Agreed. That sort of thing is to "computer science" as "shop class" is to "mechanical engineering".
Mechanical engineering students generally take many shop classes, and computer science students spend a lot of their time learning vocation-styled computer skills. All are important, I could get behind getting more of any or all of these into highschools (though programming less so than the other three), but I don't think we should be honest with the terminology we use. If for nothing else, we should keep our terminology straight and honest so that we do not perpetuate misconceptions about what fields actually entail.
In the UK, kids do (or did) get taught various forms of discrete mathematics at fairly young ages. Boolean algebra, very basic set theory etc.
However, to get some basic programming done, you don't really need any of this, and in fact the code may help you grasp some of the maths so it might even be better to start that first.
Either way, the world runs on code now, it's everywhere. Giving all children a small taste of that, so that they can decide later if they want to pursue it as an interest or a career, is a good thing.
I think there is a common confusion about the term Computer Science. Universities such as University of Chicago teach raw CS. UIUC and U. of Ill. teaches what I would call Computer (Software) Engineering.
These courses are likely neither of the two, but more of the nature of "practical computer programming".
Having studied CS at UIUC, the undergrad CS curriculum on the U Chicago website is indistinguishable from my own undergrad requirements.
I would have to agree that the public school curriculum would be about the basics of how computer systems work and how to use them vocationally, rather than say proofs of computational complexity.
So, is it computer science or computer programming? This is only going to add a truckload of fuel to the already huge fire that is the confusion between computer science and computer programming.
But to be less pedantic, let's actually focus on what this will entail.
First of all, "learning to code" is as ambiguous as "learning a [natural] language". Not all natural languages are Latin, and not all programming languages are ALGOL.
Second, I am highly skeptical as to the intentions of this movement. Yet criticizing it is bound to get you labeled a cynic, a Luddite, an obscurantist or a combination of those. After all, teaching kids to code? How benevolent of them!
Not when you realize that the big moguls standing behind this are probably more concerned about having typists who can write instructions, rather than skilled programmers and computer scientists. I'm not saying this out of spite, but because of how they've presented their agenda (I'm referring to Code.org, primarily). The sugar coating, the testimonials from everybody besides actual computer scientists and their setting of sex quotas and affirmative action to create the illusion of desiring equality.
Notice how they all focus on the code. They rarely even use the word "programming". This should already set off an alarm.
As the proprietary software giants are standing by this, they are very likely to focus on proprietary platforms. They don't talk about this, of course. It's all about the code. About imagination, creativity and dreams. Have fun fulfilling your dreams on a locked down tablet with a TPM chip. The issue of software freedom, I believe, is more important than bashing instructions, which is a skill anyone can pick up, if they so desire. But there will be none of that. How many of these kids will be taught about GNU? I'm assuming none. But I'm sure there's going to be lots of Visual Studio and C#, plus iOS and Objective-C.
Ultimately, this will either drive away children from programming (depending on how it's taught, but let's face it: compulsory schooling is notorious for just how apt it is at sucking the life and fun out of learning... even more when Code.org is pushing for pay deductions on teachers whose CS classrooms consist of <40% females), or it will reduce the general quality of labor. Many will be uninterested, many will refine their skills, but many will become 9-to-5 enterprise monkeys as a direct result of this.
I really want to support this. I do. But it really keeps looking like learning to code is just a facade. Of course, the children will learn something, but the ulterior agenda and how their perception will be skewed is something distressing.
> First of all, "learning to code" is as ambiguous as "learning a [natural] language".
True, so what?
> Second, I am highly skeptical as to the intentions of this movement.
Okay, you are skeptical about intentions. Where's evidence of nefarious intent that would lead a person not relying purely on irrational bias to give your skepticism any particular weight?
> Not when you realize that the big moguls standing behind this are probably more concerned about having typists who can write instructions, rather than skilled programmers and computer scientists.
Granting for the moment that you claim of what they would be "probably more concerned about" is correct -- though I'll note you provide neither evidence nor argument to support this imputed motivation -- so what? Having more people with only basic competence might be a desire, but doing that would also seem likely to open the door for more people to move beyond basic competence, as well.
> The sugar coating, the testimonials from everybody besides actual computer scientists
To the extent these are real things (certainly, its pitched to have mass appeal rather than appeal to people who are already into computing and equally certainly many of the testimonials are from people who are influential with the general public rather than specifically computer scientists) it is understandable given that much of the goal is to draw interest from outside the community of people already deeply interested in computing.
OTOH, its a distortion to claim that their testimonials are "from everybody besides actual computer scientists". While their testimonials are from a broad range of backgrounds, some of them are "actual computer scientists" (for example, Maria Klawe [1] and Peter Denning [2].)
> As the proprietary software giants are standing by this, they are very likely to focus on proprietary platforms
There's a lot of companies "standing by this", some of which are "proprietary software giants" -- and plenty of which aren't. Plenty of open source educational projects are "standing by this", plenty of companies whose business isn't selling proprietary software, too.
> The issue of software freedom, I believe, is more important than bashing instructions
Software freedom is meaningless without the skill to "bash instructions", since its only the freedom to choose who to be dependent on. More people with "instruction bashing" skills means more people for whom software freedom means something more than gratis software.
> How many of these kids will be taught about GNU?
I suspect lots of them will learn about GNU whether or not they are taught about it. I wasn't taught about it -- but, being interested in programming -- largely as a result of being taught in school at a young age, often on proprietary platforms -- I learned about it simply in the course of seeking out more resources and tools for programming.
> Ultimately, this will either drive away children from programming [...] or it will reduce the general quality of labor.
Wow. That's an interesting -- and completely unsupported -- dichotomy.
> I really want to support this. I do.
Sure you do.
> But it really keeps looking like learning to code is just a facade.
You have provided nothing other than statements of your own biases to support the idea that its a "facade".
> Of course, the children will learn something, but the ulterior agenda and how their perception will be skewed is something distressing.
You have provided nothing substantial to support the idea that an "ulterior agenda" exists, or that "perception will be skewed".
> Many will be uninterested, many will refine their skills, but many will become 9-to-5 enterprise monkeys as a direct result of this.
The kids in the Chicago Public School system are 87% from low-income families. If these course result in "many" of these kids becoming 9-to-5 "enterprise monkeys" then that would be a smashing success beyond anyone's wildest imagination.
> Code.org is pushing for pay deductions on teachers whose CS classrooms consist of <40% females)
I think that's a grossly misleading characterization. Code.org is offering a small ($750) stipend to teachers who successfully complete a course. That is not pay, that's a minor incentivizing bonus. A further $250 is given to teachers whose class had at least 7 female students. (NOT 40%; if you have 7 females and 25 males, you still get that $250.)
Calling that a "pay deduction" is misleading at best. Calling it a percentage-based quota is flat incorrect.
So having actually seen what Code.org's small hour of code assignment was (my sister in 6th grade had to do it), I can say that it's not as evil as you're making it out to be. For one, they're not taught a specific language -- they're given visual blocks to work with (and the ability to show the corresponding javascript).
I assume that without real instruction you're not going to learn the theory, and yes someone will have to advocate for OSS, but it seems that the goal is more basic -- not to pump kids full of impressions that 'this way is the only way' and 'just type code don't think no think'.
One thing I noticed more from my sister than the hour of code was that thought processes for programming that we take for granted haven't been implanted, and need to be taught. For example, my sister when faced with a path for the zombie to take would start by telling the zombie to move forwards many times then take a left... etc etc. Conditions and loops are introduced gradually and the idea that you would use a loop to do multiple things instead of just manually doing it is part of this. How should kids understand complex CS concepts without this? They need to start somewhere.
Disclaimer: I worked on Code.org's beginner tutorials.
Why do you assume that there is some sinister agenda? Why can't you believe that a couple of smart, charming, and lucky brothers decided to spend some of their wealth and time doing what they feel is right? Why can't you believe that some of the smart & lucky folks they've made friends with in their careers want to help?
It's no secret: Better computer science education is beneficial for tech companies. These companies want more engineers. Does the involvement of volunteers from Microsoft/Google/Twitter/Facebook/etc instantly mean that everyone of us at Code.org that really believes we're helping students world wide are bad people for choosing to accept (or soliciting) help from large, influential organizations? Does institutional or celebrity support inherently corrupt philanthropic endeavors? That's such an insane world view to me.
By the way, the word "code" is a marketing decision. It's easier and more fun to say. It's a catchy domain name. It's not about correctness, it's about being impactful.
If you want to support this, but you have concerns, then maybe you should do some research before spreading FUD. Curriculum details are widely available: http://code.org/educate
Tutorials vary wildly in goals, approaches, quality, scope, etc. You can find many at http://code.org/learn including our own (open source github.com/code-dot-org/) and many others, generally utilizing JavaScript or other non-proprietary technology.
The "big moguls" would love more skilled programmers and computer scientists. I don't know why you think the evil employers want less skilled workers, but that makes no business sense.
It might not be what you were looking for, but to say it's not "built out" is a bit of a reach. I don't see how a department whose faculty include Alexander Razborov and Laszlo Babai can be considered lightweight. If you're interested in theory, UofC is a very good place to go. Are they upenn, columbia, cmu, etc.? No, but they're not trying to be. It's much more an extension of the Mathematics program than at many other places.
That's not completely fair: the math department is world-class, and the computer science department is sort of an offshoot of it. It does have a very theoretical bent. That doesn't mean it's bad.
So right now is the time to start a long-term study on all of the students who go through the program to see if it prepares them better for CS/various engineering disciplines in higher-ed.
Hopefully the latter. There's no practical reason for a biologist to understand Djikstra's algorithm, but a lot of professions will benefit from being able to code up helper scripts.
Wow. Read the comments make me wondering why so many geeks are so incapable of thinking social issues. Do you guys have even a little bit of sense of human feeling?
How come this is a good news? If the news says Chicago students love computer science, it could be a good news. But it is not what the news said. Instead, the news is: all Chicago students will be Required to learn computer science. How can this be a good news?
Will you consider requiring all students to join football team or to play piano a good news?
[+] [-] icegreentea|12 years ago|reply
1) In the next three years, every high school will offer a foundational “Exploring Computer Science” course. (This is a survey course - my note)
2) In the next five years, at least half of all high schools will also offer an AP Computer Science course. (My note: AP CS is a Java based course that looks roughly comparable to first year computer engineering courses, including algorithms and data structure... I've never taken AP CS, but I bet lots of people here have, and they can probably elaborate on its usefulness)
3) Chicago will also be the first US urban district to offer a K-8 computer science pathway, reaching one in four elementary schools in the next five years.
4) Within five years, CPS will allow computer science to count as a graduation requirement (e.g. possibly as a math, science, or foreign language credit). Only thirteen other states have elevated computer science to a core subject instead of an elective.
http://www.cityofchicago.org/city/en/depts/mayor/press_room/...
And for reference, here is CPS' current requirements for highscool graduation: http://www.cps.edu/SiteCollectionDocuments/PromotionPolicy/H...
[+] [-] sillysaurus2|12 years ago|reply
It's also important to remember highschool teachers aren't college professors. You may have had awesome and passionate HS teachers, but from what I saw, there don't seem to be very many.
I think the quickest way to destroy a future programmer is by forcing them to learn dumb ideas from half-interested teachers during their formative years, and it seems like this proposal will lead to that. It's hard to understand why people trust the modern highschool system to teach kids anything. Most of the kids aren't there to learn; they're there because they're forced to be. If an ambitious highschooler wants to learn programming, why not give them a way to learn it in a university early?
I really hope I'm wrong, but in my experience the highschool system is a grim situation for nerds, especially in the Midwest.
EDIT: Regarding highschool teachers vs CS professors: I meant that teaching programming requires programming ability, not just teaching ability. Maybe highschool teachers will become good programmers first. I don't know. And certainly, awful college professors exist just like awful highschool teachers exist. It just seems like the average CS professor has a higher chance of imparting useful knowledge to kids than a highschool teacher who has to learn it from the same book as the kids they're teaching it to. Worse, the kids have a high chance of becoming disgusted with the idea of programming if it's taught poorly, so this proposal seems at least as potentially dangerous as it is potentially helpful.
[+] [-] mathattack|12 years ago|reply
The AP Computer Science class I took was close enough to first year coursework that they let me pass out of it. The biggest benefit was having a very serious teacher whose goal in life was that class. (He taught others, but his main focus as a teacher was the top 2-3% of programmers in the student body) It was a course that's both rigorous and useful.
[+] [-] mournit|12 years ago|reply
It turns out that this state had required CS as a subject, but many schools did not have faculty even remotely qualified to teach it. The schools had simply stuck a random math or science teacher in the role, and these teachers had made no effort to learn the content. My teacher told us that in the coding portion of the test, these students would often just write "my teacher did not know computer science, we just sat and browsed the internet all class."
[+] [-] StefanKarpinski|12 years ago|reply
[+] [-] warfangle|12 years ago|reply
[+] [-] analog31|12 years ago|reply
In my view this is as big a deal as the high school course, if not bigger. The earlier you teach it, the less rigorous and more fun it can be.
[+] [-] ucarion|12 years ago|reply
Most of the questions have to do with understanding how scopes, assignment, loops, and conditionals work. There isn't very much about data structures -- arrays (both the native and ArrayList kind) were the only structures ever covered. Most of the focus is on OOP and using the API for an app called GridWorld, which is pretty neat.
Here's the College Board site about AP CS:
http://apcentral.collegeboard.com/apc/public/courses/teacher...
[+] [-] ajayjain|12 years ago|reply
Since there is already a Java class on campus, I think the AP class should focus more on language independent CS concepts. At least half of our final and tests are problems about determining what is printed by an obfuscated Java program to test knowledge of how edge cases are handled.
[+] [-] dragonwriter|12 years ago|reply
Well, when I took AP Computer Science, it was still Pascal, but it was pretty much what it says on the tin as far as being very roughly equivalent to an introductory college class (of course, the quality of introductory classes varies a lot by institution.)
[+] [-] unknown|12 years ago|reply
[deleted]
[+] [-] StefanKarpinski|12 years ago|reply
[+] [-] gmichnikov|12 years ago|reply
If there are any other computer science teachers on HN, I'd love to hear about what you're up to (especially if you are using Scratch with young kids).
[+] [-] anigbrowl|12 years ago|reply
[+] [-] vezzy-fnord|12 years ago|reply
"Basic knowledge of programming" doesn't actually mean anything.
[+] [-] IgorPartola|12 years ago|reply
"A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects." ~ Robert A Heinlein
One of my favorite quotes. (Emphasis mine.)
[+] [-] nicolethenerd|12 years ago|reply
Also, notes on AP CS - a few years ago, the AP CS AB test (this is the one with all the data structures and stuff) was discontinued - currently the only AP CS class that exists is the AP CS A test (that is, the easier version, that covers a fraction of the material of the AB test). Also currently under development is "AP CS Principles" - an even softer, more humanities focused AP course that deals w/ the role of computers in society in addition to programming. I have mixed feelings about this - on one hand, it'll introduce way more kids to computer science and give them a degree of technical literacy that today's kids really ought to have... on the other hand, not sure how I feel about the 'dumbing down' of the curriculum - I loved CS AB - it was probably the best course I took in high school, and it's a shame that many students will no longer have that opportunity.
[+] [-] etler|12 years ago|reply
[+] [-] webo|12 years ago|reply
[+] [-] sehr|12 years ago|reply
Now I may be wrong, but I know that I personally would much rather have been creating something with some basic syntax as opposed to learning theory while I was in grade school. Being able to see your seemingly magical incantations create something cool is going to be a lot more encouraging than studying discrete mathematics.
Theory is cool. Theory has its place, but before you even encounter the situations in which it's applicable, I'd say try making something first.
EDIT -- Especially when these kids are low income. Discrete mathematics to inner city kids is about as relatable as Biggie is to Wall Street bankers.
[+] [-] bonemachine|12 years ago|reply
BTW, perhaps you're forgetting -- they're just 8th graders. We're luck of half of them can pass a pre-Algebra class. Any coding skills we can get them to learn on top of that is a huge, huge win.
[+] [-] Crito|12 years ago|reply
Mechanical engineering students generally take many shop classes, and computer science students spend a lot of their time learning vocation-styled computer skills. All are important, I could get behind getting more of any or all of these into highschools (though programming less so than the other three), but I don't think we should be honest with the terminology we use. If for nothing else, we should keep our terminology straight and honest so that we do not perpetuate misconceptions about what fields actually entail.
[+] [-] jebus989|12 years ago|reply
[+] [-] Nursie|12 years ago|reply
However, to get some basic programming done, you don't really need any of this, and in fact the code may help you grasp some of the maths so it might even be better to start that first.
Either way, the world runs on code now, it's everywhere. Giving all children a small taste of that, so that they can decide later if they want to pursue it as an interest or a career, is a good thing.
[+] [-] wglb|12 years ago|reply
These courses are likely neither of the two, but more of the nature of "practical computer programming".
[+] [-] sundresh|12 years ago|reply
I would have to agree that the public school curriculum would be about the basics of how computer systems work and how to use them vocationally, rather than say proofs of computational complexity.
[+] [-] vezzy-fnord|12 years ago|reply
But to be less pedantic, let's actually focus on what this will entail.
First of all, "learning to code" is as ambiguous as "learning a [natural] language". Not all natural languages are Latin, and not all programming languages are ALGOL.
Second, I am highly skeptical as to the intentions of this movement. Yet criticizing it is bound to get you labeled a cynic, a Luddite, an obscurantist or a combination of those. After all, teaching kids to code? How benevolent of them!
Not when you realize that the big moguls standing behind this are probably more concerned about having typists who can write instructions, rather than skilled programmers and computer scientists. I'm not saying this out of spite, but because of how they've presented their agenda (I'm referring to Code.org, primarily). The sugar coating, the testimonials from everybody besides actual computer scientists and their setting of sex quotas and affirmative action to create the illusion of desiring equality.
Notice how they all focus on the code. They rarely even use the word "programming". This should already set off an alarm.
As the proprietary software giants are standing by this, they are very likely to focus on proprietary platforms. They don't talk about this, of course. It's all about the code. About imagination, creativity and dreams. Have fun fulfilling your dreams on a locked down tablet with a TPM chip. The issue of software freedom, I believe, is more important than bashing instructions, which is a skill anyone can pick up, if they so desire. But there will be none of that. How many of these kids will be taught about GNU? I'm assuming none. But I'm sure there's going to be lots of Visual Studio and C#, plus iOS and Objective-C.
Ultimately, this will either drive away children from programming (depending on how it's taught, but let's face it: compulsory schooling is notorious for just how apt it is at sucking the life and fun out of learning... even more when Code.org is pushing for pay deductions on teachers whose CS classrooms consist of <40% females), or it will reduce the general quality of labor. Many will be uninterested, many will refine their skills, but many will become 9-to-5 enterprise monkeys as a direct result of this.
I really want to support this. I do. But it really keeps looking like learning to code is just a facade. Of course, the children will learn something, but the ulterior agenda and how their perception will be skewed is something distressing.
[+] [-] dragonwriter|12 years ago|reply
True, so what?
> Second, I am highly skeptical as to the intentions of this movement.
Okay, you are skeptical about intentions. Where's evidence of nefarious intent that would lead a person not relying purely on irrational bias to give your skepticism any particular weight?
> Not when you realize that the big moguls standing behind this are probably more concerned about having typists who can write instructions, rather than skilled programmers and computer scientists.
Granting for the moment that you claim of what they would be "probably more concerned about" is correct -- though I'll note you provide neither evidence nor argument to support this imputed motivation -- so what? Having more people with only basic competence might be a desire, but doing that would also seem likely to open the door for more people to move beyond basic competence, as well.
> The sugar coating, the testimonials from everybody besides actual computer scientists
To the extent these are real things (certainly, its pitched to have mass appeal rather than appeal to people who are already into computing and equally certainly many of the testimonials are from people who are influential with the general public rather than specifically computer scientists) it is understandable given that much of the goal is to draw interest from outside the community of people already deeply interested in computing.
OTOH, its a distortion to claim that their testimonials are "from everybody besides actual computer scientists". While their testimonials are from a broad range of backgrounds, some of them are "actual computer scientists" (for example, Maria Klawe [1] and Peter Denning [2].)
> As the proprietary software giants are standing by this, they are very likely to focus on proprietary platforms
There's a lot of companies "standing by this", some of which are "proprietary software giants" -- and plenty of which aren't. Plenty of open source educational projects are "standing by this", plenty of companies whose business isn't selling proprietary software, too.
> The issue of software freedom, I believe, is more important than bashing instructions
Software freedom is meaningless without the skill to "bash instructions", since its only the freedom to choose who to be dependent on. More people with "instruction bashing" skills means more people for whom software freedom means something more than gratis software.
> How many of these kids will be taught about GNU?
I suspect lots of them will learn about GNU whether or not they are taught about it. I wasn't taught about it -- but, being interested in programming -- largely as a result of being taught in school at a young age, often on proprietary platforms -- I learned about it simply in the course of seeking out more resources and tools for programming.
> Ultimately, this will either drive away children from programming [...] or it will reduce the general quality of labor.
Wow. That's an interesting -- and completely unsupported -- dichotomy.
> I really want to support this. I do.
Sure you do.
> But it really keeps looking like learning to code is just a facade.
You have provided nothing other than statements of your own biases to support the idea that its a "facade".
> Of course, the children will learn something, but the ulterior agenda and how their perception will be skewed is something distressing.
You have provided nothing substantial to support the idea that an "ulterior agenda" exists, or that "perception will be skewed".
[1] http://en.wikipedia.org/wiki/Maria_Klawe [2] http://en.wikipedia.org/wiki/Peter_J._Denning
[+] [-] rayiner|12 years ago|reply
> Many will be uninterested, many will refine their skills, but many will become 9-to-5 enterprise monkeys as a direct result of this.
The kids in the Chicago Public School system are 87% from low-income families. If these course result in "many" of these kids becoming 9-to-5 "enterprise monkeys" then that would be a smashing success beyond anyone's wildest imagination.
[+] [-] aaronharnly|12 years ago|reply
I think that's a grossly misleading characterization. Code.org is offering a small ($750) stipend to teachers who successfully complete a course. That is not pay, that's a minor incentivizing bonus. A further $250 is given to teachers whose class had at least 7 female students. (NOT 40%; if you have 7 females and 25 males, you still get that $250.)
Calling that a "pay deduction" is misleading at best. Calling it a percentage-based quota is flat incorrect.
http://code.org/educate/20hr
[+] [-] zmjjmz|12 years ago|reply
I assume that without real instruction you're not going to learn the theory, and yes someone will have to advocate for OSS, but it seems that the goal is more basic -- not to pump kids full of impressions that 'this way is the only way' and 'just type code don't think no think'.
One thing I noticed more from my sister than the hour of code was that thought processes for programming that we take for granted haven't been implanted, and need to be taught. For example, my sister when faced with a path for the zombie to take would start by telling the zombie to move forwards many times then take a left... etc etc. Conditions and loops are introduced gradually and the idea that you would use a loop to do multiple things instead of just manually doing it is part of this. How should kids understand complex CS concepts without this? They need to start somewhere.
[+] [-] brandonbloom|12 years ago|reply
Why do you assume that there is some sinister agenda? Why can't you believe that a couple of smart, charming, and lucky brothers decided to spend some of their wealth and time doing what they feel is right? Why can't you believe that some of the smart & lucky folks they've made friends with in their careers want to help?
It's no secret: Better computer science education is beneficial for tech companies. These companies want more engineers. Does the involvement of volunteers from Microsoft/Google/Twitter/Facebook/etc instantly mean that everyone of us at Code.org that really believes we're helping students world wide are bad people for choosing to accept (or soliciting) help from large, influential organizations? Does institutional or celebrity support inherently corrupt philanthropic endeavors? That's such an insane world view to me.
By the way, the word "code" is a marketing decision. It's easier and more fun to say. It's a catchy domain name. It's not about correctness, it's about being impactful.
If you want to support this, but you have concerns, then maybe you should do some research before spreading FUD. Curriculum details are widely available: http://code.org/educate
Tutorials vary wildly in goals, approaches, quality, scope, etc. You can find many at http://code.org/learn including our own (open source github.com/code-dot-org/) and many others, generally utilizing JavaScript or other non-proprietary technology.
[+] [-] azernik|12 years ago|reply
[+] [-] adamnemecek|12 years ago|reply
Who comes up with these things?
[+] [-] rhc2104|12 years ago|reply
Well, here are Code.org's GitHub repos!
https://github.com/code-dot-org
[+] [-] tslathrow|12 years ago|reply
Consider UPenn SEAS or Columbia Fu for a similar tier CS program.
It's really excellent for economics (which I was considering), but ended up not going to Chicago after talking to some of the comp sci majors.
[+] [-] davidmr|12 years ago|reply
http://en.wikipedia.org/wiki/Alexander_Razborov
http://en.wikipedia.org/wiki/László_Babai
[+] [-] dcre|12 years ago|reply
[+] [-] platz|12 years ago|reply
[+] [-] bane|12 years ago|reply
[+] [-] frozenport|12 years ago|reply
Unlike reading, math, and science, there exists no relevant metric for measuring 'computer science' proficiency.
[+] [-] spitfire|12 years ago|reply
There's a wide gap between the sorts of problems you can solve (or even identify) with the two skill sets.
[+] [-] yen223|12 years ago|reply
[+] [-] georgehaake|12 years ago|reply
[+] [-] ffrryuu|12 years ago|reply
[+] [-] xname|12 years ago|reply
How come this is a good news? If the news says Chicago students love computer science, it could be a good news. But it is not what the news said. Instead, the news is: all Chicago students will be Required to learn computer science. How can this be a good news?
Will you consider requiring all students to join football team or to play piano a good news?
Unbelievable ...