The President Wants Every Student To Learn CS. How Would That Work? (npr.org)
theodp writes: The very first proposal President Obama put forth in his final State of the Union address Tuesday night for his remaining year in office was "helping students learn to write computer code." While the President wants every student to learn CS, NPR notes that getting a new, complex, technical subject onto the agendas of our public schools is a massive challenge, prompting it to ask, How Would That Work? That Microsoft CEO Satya Nadella attended the SOTU address as Michelle Obama's guest suggests the President is counting on the kindness of tech titans to help make things happen. Microsoft and Obama have worked together to try to get CS in the schools since at least 2006, when Microsoft announced a $1 million donation to NCWIT, which it indicated would facilitate "taking the discussion to a national stage" at a Washington, D.C. Innovation and Diversity Town Hall co-sponsored by the NSF and keynoted by then-Senator Barack Obama. "Most of all, what inspires me about this program [NCWIT] are the prospects of my two daughters," Obama said at the time (video). "I want them to go as far as their dreams may take them. And, unfortunately because of long historic discrimination in the areas of gender, we can't be assured of that."
It wouldn't.
A lot of women also want to be able to be stay at home moms, supported by a husband on a single income. The effect of driving down wages in our field means it's that much harder for any woman married to a man in our field to have that option. What our economic policies mean for a lot of women in general is that should they want to give up their career, they can't, because cheap labor is more important than economic flexibility.
If you call programming creating Wordpress sites, then fine, everyone can code.
Otherwise, programming is little more than an IQ test. That means only the top x% have any hope when they start to learn to code of ever being any good at it. I fully support using the Purple Book ( https://mitpress.mit.edu/sicp/ ) for intro to CS. If you can finish it, you rock. You are welcome to keep going. Otherwise: Be happy. You failed fast. Your calling is elsewhere.
It is the same as asking EVERY student to become proficient in Science, Technology, Engineering and Math. I don't know anyone who is proficient in all four.
Individuals are inclined to one or two things. Trying to force them into doing something they truly are not interested in has always been a failure.
History shows us that if Microsoft is involved, education will be harmed, and Microsoft will get money somehow, even if not getting paid directly. Do not ignore the lessons of history. Corporations don't change their stripes unless forced, and Microsoft was explicitly not punished in any way after the DoJ found they were Guilty of illegally abusing their monopoly position... and basically every possible kind of anticompetitive behavior.
Some people are never going to be good programmers. That's okay, because we don't need everyone to be a programmer. We don't actually need that many of them; we already have massive duplication of effort right now, and don't need more. We already have massive joblessness in the sector right now, and don't need more of that either.
It would be valuable to teach "everyone" more computer skills, since they are only becoming more common, and I personally believe that it would be valuable to teach them all a little programming. Don't try to make everyone into a programmer, computer scientist, whatever the goal is. But it is senseless for us to continually integrate computing further and further into our lives without coming to a greater understanding of it. A little programming knowledge will give people an appreciation of the complexity of the systems they're currently casually throwing their personal information into the void with.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
Enough people fail to grasp the concept of a variable that I can confidently predict that the "anyone can code" mentality will hit an unassailable obstacle and be abandoned. The only question is how long it will take for this particular neurosis to metastasise and die.
...well, that's how I read it the first time.
What this world is coming to - is for you and me to decide.
Some would be interested in it and learn to program. The rest will crib the homework from them. Come tests, teachers will game the system to produce the required outcome to still get government money.
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
suggests the President is counting on the kindness of tech titans to help make things happen.
Is the government seriously incapable of putting together a computer science curriculum???
And, unfortunately because of long historic discrimination in the areas of gender, we can't be assured of that.
He has the daughters of a president. They will be well into the upper 5% or 1%, will have connections any other person could only dream of, and are almost guaranteed an easy life into doing whatever it is they want to do. You are saying these ladies are worse off than a boy from a smalltown like Stillwater, Pennsylvania, who will earn maybe $50,000 per year as a construction worker? Seriously?
There is indeed something widely missing from American public schools, and that we should certainly be adding. It's called logic. To my knowledge, most American public schools don't even teach it at all, and even most higher level schools skip right over. THAT'S what all this effort should be directed at, and it pains me every single time I hear a story about computer science in school and not that.
"Set a man a fire, he'll be warm for the rest of the night. Set a man afire, he'll be warm for the rest of his life."
When I went to school, in the mid-80s, we were taught BASIC and Pascal, which was a good springboard to languages like C. Today, we have the benefit of more mature, object-oriented languages like Java which are great for educational use, but instead, my son's high school teaches with App Inventor, which is like teaching shop class with LEGOs.
We also have the benefit of great, now classic, books like the Gang Of Four's Design Patterns. We should be teaching kids something useful out of high school, yet we no longer do.
I'm mentoring on my son's Robotics Team, and find myself having to teach them Java programming from the ground up. I suppose it is good for them, but I'm not a teacher, I'm an engineer. Still, we are managing, and they are learning. I'd prefer it if a professional instructor had prepared them better, though.
Shame on educators for having gone this route.
There seems to be a fundamental misconception in this entire dialog between "Computer Science" (as define by the ACM/academic folks and their curriculums) and learning the skills needed to be useful as a Software Engineer in industry. These are very different things. The proponents should be clear exactly what it is they think all kids should be learning: do we want to train them to do research in Computer Science, or do we want them to get a more vocational education for the vast number of non-academic jobs?
Instead of focus on CS, how about we start with something more fundamental ... a science-based and medically accurate, single term, comprehensive, across-the-nation, practical sex education course instead. That'd solve more social problems in the US than teaching a single term of CS. Lower rates of teen pregnancy, lower rates of STDs, healthier relationships, better understanding of the range of normal sexuality, etc. Despite the abstinence-only crap being taught in so many districts, the false info floating around about how one can get pregnant, and the fear-mongering, patriarchal religious nut sacks who equate teens who have had sex with used chewing gum and who think women should have no say in their sexuality, 97% of the population lose their virginity before they hit the age of 20. Maybe we should make sure people know about what the hell they are doing that before teaching CS?
DaveyJJ
CS is a subject that can be taught as well any other subject. We don’t expect everyone to become an expert in biology, but they should be familiar with the basics. So we can apply this to CS.
Computer programming is a labour intensive job that can be done from anywhere.
With a few provisos. First, the cultures need to match closely enough to minimize loss of information when communicating requirements. Second, the time zones need to match closely enough for clarifications and change requests to be communicated in a timely manner. Third, the field of use needs to be one where sending information out of country does not pose an unacceptable privacy risk.
Given current policy, they would make sure that only "sufficiently diverse" people would benefit. They wouldn't want any white males to have any chance of succeeding over a diversity candidate.
If they really wanted more people in CS, they would kill offshoring and guest worker programs with fire, from orbit. More individuals would be motivated to complete a program with a higher chance of an actual career.
Twitter supports and protects racists - by smearing their critics with the "Hate Speech" label.
That's what introductory classes are for. De-mystify software and give children the basic concepts and skills to pursue it, and an opportunity to see if it interests them.
Completely agree. Computer science is not out of reach of most students, but it has to be introduced in proper context.
I think what many people are missing in this "teach compsci!" movement is that a firm understanding of computer science requires a very solid basis in logic and abstract mathematics. Guess what we don't teach in high school? (as far as I know; it wasn't part of my school, and I never see it mentioned in anything I've read about common core, etc.): Basic propositional logic and symbolic logic. Number theory and discrete mathematics. Abstract algebra!! Abstract algebra, at least the basics of groups, is not difficult and out of reach -- we should totally be teaching high schoolers about groups, which awakens the ability to abstract and see patterns, which is fundamentally what programming (and really all of comp sci) is all about.
I'm not as concerned about making compsci part of the high school curriculum as much as making real mathematics part of the curriculum. With a solid foundation in basic logic and mathematics, you open up the ability to pick up pretty much any technical book, and read it and understand it. You can go anywhere with that foundation -- computer science, but also engineering, physics, etc.
The failure of this plan is relying on corporations like Microsoft to do it. Corporations do things that are best for their shareholder's interests. The government and government run schools, on the other hand are for the public interest. While there may be some overlap between the two interests, most often they are not and relying on corporations to come up with curriculum and teaching methods is bound to fail.
For Microsoft and the other corporations involved in this, the students and schools are customers. It is reasonable to expect that Microsoft will push their OS, their programming platform, their web platform, etc., even if it isn't in the best interest of the country as a whole. Why? Because first and foremost, their goal is to maximize their shareholder's equity.
A more neutral approach to this would be to rely on colleges and universities to come up with a recommendation. Obviously, it would need to be coordinated, otherwise, you will have as many opinions as their are participants.
And finally, the question must be asked -- "In the future, will what is being being taught to code today be relevant?" If this were put in place in the 1980s, everybody would have been taught COBOL and FORTRAN. How useful would those skills have been by 2000? Teaching to code is more than learning a language, it is learning to think logically. It is learning to plan. It is learning to question. All of those skills can be taught without programming and are more useful in society than only being taught for programming.
If you want future adults who can code what they are told to code, teach programming. If you want future adults who can think for themselves, teach philosophy -- that way, there will be somebody to tell the coders what to code. There is a reason that parents who are in the 1% send their kids to elite schools that teach philosophy and other humanities along with core subjects. They are raising their kids to be leaders in the future. Sure, they also teach computer programming, for those who are interested, but not for those who are not. After all, in the future, if we all have to program our devices to get them to do what we want, then that is a step backward. That's fine for enthusiasts, but for most of society, it will become a skill as useful as in the past requiring everyone to take Home Ec or Shop class.
I am all for giving women equal opportunity to enter Computer Science but beyond that I see no advantage. Why are we forcing people into careers that they do not want to do
Perhaps it's to change the underlying culture that makes people in groups with a history of systemic disadvantage "not want to do" certain jobs. There could be a background level of small bias-motivated rudenesses that build up over time.