Chicago Is Making Coding Education Mandatory. Is That a Good Idea?
A school computer science program developer explains the pros and cons.


"Just make it a requirement."
That's what Chicago Mayor Rahm Emanuel said the government should do to make education in computer coding and programming available to public school students.
"You'd be amazed to if you make the goal, how much all the other choices will be made to get to that goal," he told people attending a tech event in October sponsored by the Washington Post.
Emanuel wants the federal government to make the same mandate he is attempting to implement back in his home city. Chicago Public Schools is rolling out computer science classes at all levels of education, and the goal is eventually to require some mandatory computer science education in order to graduate from high school.
Should we bristle at the idea of yet another inflexible government mandate in public education or commend Emanuel for recognizing how important computer education is for today's students as they prepare to enter the work force?
It's interesting to note that Emanuel's advocacy falls on the side of what parents say they want and in opposition to what administrators think is in demand. An August poll by Gallup and Google found that 90 percent of parents see computer science education as a good use of school resources, and 67 percent, like Emanuel, want it to be a mandatory core subject. But only 8 percent of school administrators realized or thought that parents wanted it as a priority. A Gallup director called it "shocking how huge the disparity is between the demand we're seeing in this study and what's actually happening in schools."
We are seeing louder, more obvious pushes for computer science education in schools. This isn't about how to teach kids to use computers; it's about teaching kids the basics of coding and programming technology, teaching kids to build things like web sites and apps and even to program robots. Adults, regardless of whether they have kids, have probably heard of Code.org's push for computer science education in schools and President Barack Obama's endorsement of its aims. On Monday, Microsoft unveiled a tutorial program to help kids learn introductory coding with the assistance of the beloved Minecraft game.
It's very easy to make a compelling argument that coding education ought to be available to students in all schools—public, charter, private, or otherwise. But it's also very easy to be unsettled by Emanuel's suggestion of adding yet another mandatory core education requirement in order to graduate high school, particularly a demand made via a federal order.
And that's not necessarily even what computer science educators want. To learn more about the development of computer science education, Reason interviewed Julie Flapan, director for the Computer Science Project at UCLA's Graduate School of Education and Information Studies. This program is responsible for the development of the Exploring Computer Science curriculum that has been used or adapted for use in school districts in Los Angeles, Chicago, Washington, D.C., and elsewhere.
For Flapan and Exploring Computer Science, the mission isn't mandates so much as it is simple access in public schools.
"Computer science has historically been at the advanced placement level," Flapan says. "It appealed to students who already had exposure to computer science and already showed an affinity to math and science." When they examined the demographics, there was a very obvious gap in who was studying computer science, and women and minorities were being left out. To the extent schools that served poorer students had computer education at all, it was focused on the student as a computer user, teaching data entry and how to use Microsoft Office, Flapan says. It's at schools with better resources where students can go beyond basic computer use to learn actual programming and data analysis.
The mission of Flapan's program is to change that attitude and make computer science education more available to minorities and female students and to counteract stereotypes that push students away from learning the subject.
"We wanted to develop a computer science course that opened all students up to the ideas of what computer sciences are," she said. "We felt all kids should have this exposure. It shouldn't be just kids who have access to summer camps or after-school programs."
And there are practical, marketplace considerations as well. It's not just about providing equal access, but trying to adapt education for what the American economy is evolving into. There's a huge educational emphasis on STEM-related fields—science, technology, engineering and mathematical occupations. Flapan notes that within these fields, half of all the jobs are actually going to be in computing.
"At the rate we're going right now, by 2020, we have a projection of about 1.4 million more [computer science-related] jobs, but only about one-third of our students are being educated to meet those needs," Flapan says.
To be clear, though, this push is absolutely not about operating on an assumption that all high school students are bound for college, at least not at UCLA's Computer Science Project. Part and parcel of trying to end stereotypes about who should be learning computer science and coding is not assuming these students are all on some sort of college computer engineering track. Some may finding coding education in secondary school a helpful precursor for vocational training or entering into the job market.
"The idea is, there are many different pathways for students to pursue," Flapan says. "If they don't know what the pathways are, they won't be able to pursue them. Not everyone has a linear pathway. Some may want to go straight into the workforce. We're preparing students for both college and career."
An adapted version of the Exploring Computer Science course is what the Chicago Public School system intends, eventually, to make mandatory. The curriculum for Chicago's version of Exploring Computer Science is available online here (pdf). Adapted with the assistance of folks at several Chicago colleges, the course starts with basic computer education and training with Microsoft Office software, then shifts to using computers to solve problems, web design (where students will learn how to create web pages), introductory computer programming, data analysis, and even basic robotics.
Numbers for the 2013-14 school year for Chicago had 4,377 students enrolled in this course at 30 schools. Chicago currently has 112,007 secondary school students enrolled. Assuming each student will have to take a single course, enrollment is going to have to increase seven-fold to 28,000 students per year.
That's a lot of program scaling, and it's not as though teachers can simply be shifted from some other course to computer science. As a field of education in public schools, Flapan notes, computer science is still relatively new, and there's a significant amount of professional development needed. Furthermore, computer science is a constantly evolving field. The classes then will have to be flexible and adjust to wherever the technology goes in the outside world. If any of today's parents got any sort of computer science education in school at all, it was likely at a time where schools had Apple II computers using floppy discs. School districts can't just implement a computer science program, dust off their hands, and move on.
As such, when asked about whether Emanuel's suggested mandate was a good idea, Flapan sees both good sides and bad. On the good side, because her program is devoted to increasing access to computer science to female students and minorities, requiring a class to graduate would eliminate a lot of barriers. "When we leave it up only to students, parents, or teachers, we reinforce certain stereotypes over who could be good at computer science," she says.
But while Emanuel may flippantly declare "choices will be made to get to that goal" to wave away concerns about program scaling, it's a serious issue for computer science educators. This may be why, as Flapan explains, there is not a consensus among educators about making classes mandatory. Just because every high school in the country is ordered to provide computer science classes doesn't necessarily mean they'll be any good and that students will learn from them. Imagine trying to learn introductory computer programming from a barely-trained teacher who just lectures from the text.
"You want to make sure of a level of quality," Flapan says. "You want to have a structure in place to make sure schools can put it in their master schedules. There's a whole infrastructure we need to put into place. It's a tough one."
Chicago's Public Schools, despite having a disastrous debt situation and a massive pension liability problem, is pushing forward with this experiment. The unanswered question is whether the program will be scaled properly, get the infrastructure and training experts say they need, and whether those kids will actually get the computer science education their parents say they want them to have.
Editor's Note: As of February 29, 2024, commenting privileges on reason.com posts are limited to Reason Plus subscribers. Past commenters are grandfathered in for a temporary period. Subscribe here to preserve your ability to comment. Your Reason Plus subscription also gives you an ad-free version of reason.com, along with full access to the digital edition and archives of Reason magazine. We request that comments be civil and on-topic. We do not moderate or assume any responsibility for comments, which are owned by the readers who post them. Comments do not represent the views of reason.com or Reason Foundation. We reserve the right to delete any comment and ban commenters for any reason at any time. Comments may only be edited within 5 minutes of posting. Report abuses.
Please
to post comments
COERCION IS ALWAYS PREFERABLE TO FREE CHOICE.
Ah, the mantra of the liberal fascist...
THAT WHICH IS NOT PROHIBITED IS MANDATORY!!!
Now get back in line, prole....
Making a subject mandatory in public schools is a sure-fire way to make the students know less about a subject than their predecessors.
^^This. I wish this were just a joke but I think it's all too close to reality to really be funny.
Forcing me to play tuba at thirteen would have turned me into a serial killer. That is all.
...the sprinkler hose would have become a living snake coiling itself round and round the necks of my parents as they dreamed sweetly under the morbid bleats of the goddamn gigantic metal tube stapled against my unwilling fingers.
An artiste, sir, you are an artiste. I wish I could write with even one tenth your skill at eloquence and brevity.
But learning to play the skin flute made you your well-adjusted self?
I learned to adjust just enough through the blood of my knuckles and the trickling sweat of foolish meanderings, Cousin Brett.
The mandatory art and music classes were hell for me.
What the fuck are you talking about just sing an octave lower than the default? That noise you just made sounds exactly the same as what I was doing. And why should I even care about this? I'm barely going to listen to other people sing once these required classes are over, let alone sing myself.
I was also this person.
Agreed!
The rest of my family is musically talented. I, on the other hand, had modest hearing impairment since birth. Four years of weekly lessons on the piano and now, 25+ yrs. later, I'd be lucky to find middle C.
I find the bullshit of computer science education most often to be a proxy for concise and critical thought. Generally, people who can't consistently figure out what they want for breakfast and how to prepare it want to be sure that their kids are forced to comply with the strict and rigorous standards of whatever hardware/software combinations that educators decide to cobble together.
I see the posters up in my kids' elementary school and am mortified, "What a fucking nightmare it would be if all or even most of these kids were *just* programmers! Imagine if we'd done this 20-30 yrs. ago? The majority of the adult population of the United States, by mandate, being fluent in COBOL or Visual Basic. The Horror."
COBOL and Visual Basic. 😀
When I took CS in HS in the midst of the Java "Revolution", we learned Pascal which was then outdated.
That's how this is going to end up ? large numbers of people who used to be able to program in an outdated language.
Given his quoted statement, maybe he should make English class mandatory.
This is dumb. If the kids don't want to learn it why make them? If they wanted to they would apply them selves.
Indeed, why force them to attend school at all?
If top men let people decide for themselves, the people may not make the decisions that top men have decreed that they should.
Of all the uses of state coercion, forcing students who will be at school anyways to do a different subject that may introduce them to a useful skilled trade is at the bottom of my list. It's like bitching about shop class.
Sooo, certain types of state coercion are fine? Cool.... just tell me where the line is drawn, bro...
Yes, it's impossible for there to be degrees of wrong...
Okay, so they're already in school, now you want to fight about which subjects they should be cowrced into taking? Its like fighting over whether slaves should have to work cotton or sugarcane. The problem is the slavery. Given that some coercion is going to happen, why can't I support the coercion I think is most likely to have some positive application when they are less coerced?
mmmmmmm.... sugarcane....
That's 1 way of looking at it that I've been tempted to adopt in the past. Now, though, I just look at mandates imposed from a greater distance above to be worse than those adopted closer to the people. That could vary, though, depending on the channels of accountability & control; if the longer chain is still connected, it's better than a short chain that's connected as a loop to itself.
You're saying that you disagree with slavery but, if you're going to enslave people, letting the slave owner decide what the slave farms isn't a bad idea in and of itself. To continue the analogy, the problem is that the slave owner decides slaves should pick cotton because cotton is useful. Time and experience proves the slave owner is correct in many cases, and so the slave owner uses the evidence of his good sense to justify the continuation and eventual expansion of slavery.
Yes, that's about what I think.
If we are set on forcing kids into schools, then providing programming classes isn't an issue. I took programming in high school, and that was when I decided to pursue a career in programming. It should not be made mandatory though. The only possible upside to forcing it as a core class over offering it as an elective is that you might interest some additional students that you otherwise wouldn't have reached. But by making it mandatory you will also turn some kids off to programming that may have been receptive to it if they were allowed to take it when they were ready to instead of when the state decided they should. You will also be taking away from the kids that want to learn it as well, since a mandatory class will be dumbed down and slowed down for the kids that have trouble with the material. Standardization will also lead to standards, which like every other educational standard, will probably suck any of the remaining life out of the subject.
I haven't looked in a while, but I imagine that schools still have a basic computer skills class that kids have to take so they know the basics of how to operate a computer. Add a few lessons on basic programming there to whet the appetite of any students that have an interest or an aptitude, and offer elective classes for them to take. Ramming it down everyone's throat will be a detriment to getting new, competent programmers, not a boon.
I can imagine that if my programming classes in high school were mandatory, the teaching of the subject would be so god-awful that I would have tried to avoid such a profession.
Most places have trouble finding enough teachers to cover the AP classes they already offer. If it becomes mandatory you'll have the football coach teaching programming. Which could work out OK, but I wouldn't count on it.
It would be about as AP as typing class.
"...stereotypes over who could be good at computer science," she says."
And there it is; diversity and multiculturalism mentality. We need more black female transspecied lesbian engineers.
These people are insane.
Forcing people to become something not suited to their personality is not a recipe for happiness or success. It is just a way for progs to feel good about themselves. They really are the worst kinds of people.
Perhaps if the schools spent more time with math, literature,composition, logic, history, and science, coding could be a skill that interested pupils could pick up on their own.
Of course, actually making the pupils smarter and more aware might lead to them someday realizing how poor and wasteful the schools are, and put the teachers' and admins' phony baloney jobs at risk...
Is the objection that there exists "mandatory subject matter" or that computer programming might be one of the mandatory subjects?
The objection is that fundamental learning is more important than specialized learning, and that the latter can be more easily self taught once the former is well in hand.
Of course, the elephant in the room is public education, but if we start with the assumption that we have to submit to the inevitable...
Ok, but from my experience, computer programming is bursting with "fundamental learning".
Great. What do I do with my Fortran 77 learning?
"Great. What do I do with my Fortran 77 learning?'
What you've probably already done. You throw away the chaff and you keep the wheat. That's what's being discussed here.
You're first programming class taught you a slew of fundamental skills that you continue to use or have built upon. The specifics of the language are not the most important thing.
I don't use do loops or anything like that, and the rest is similarly archaic. I learned to specify what I wanted to be coded and how to send the job to India to get it done cheaply and well. I didn't need a coding class for that, I needed common sense and a bit of economics.
I majored in Comp Sci. I've never programmed professionally. And yet I've been using those skills non-stop ever since.
That's what I meant by the wheat.
Maybe in your experience. In mine, it presupposes some of those fundamentals. As a largely self-taught developer I find myself benefiting from online math classes. Learning to code would've been much easier if I'd gotten the fundamentals of mathematics down pat.
Programming in a high level language is like writing street directions for a friend. Anyone can do it.
I learned COBOL with a bunch of business school retards.
You must not know very many people.
Send me any student of IQ 90 or above and I'll have him writing a simple program within a week.
Well said Old Man
"Johnny, your program abends immediately. But in your heart you wanted the program to execute properly so you get an A."
" coding could be a skill that interested pupils could pick up on their own"
You are missing the point. Over a million programmers will be required by employers by 2020 according to the article. We obviously can't expect employers to foot the bill for the necessary training so it falls to tax payers. Which tax payers though? I suggest we refrain from spending any money on these efforts and let foreign school systems teach these skills. Employers could then sponsor these people's work visas and hire them. Everyone is happy.
You're missing the point. It is being suggested that all students receive an introductory course to computer programming.
It is not being suggested that high schools attempt to produce a million (or even one) fully trained programmer.
If you want to argue against that, go ahead. But there's no need to inflate the straw man.
"It is not being suggested that high schools attempt to produce a million (or even one) fully trained programmer."
Read the article again. It's about social engineering. As the article says, it's about "trying to adapt education for what the American economy is evolving into." Hardly a market solution.
Good forbid a high school class should introduce a child to the most significant and prevalent technology in the world.
It's a question of who pays for it. The employers who so desperately need these coders can't be expected to foot the bill for obvious reasons. Why should we tax payers foot the bill when we can free-ride on the tax payers of other, less Libertarian nations?
It is public school education. It exists regardless of the details of the curriculum.
The only decision is, what shall we teach the children while they are in the school?
"The only decision is, what shall we teach the children while they are in the school?"
I don't care. As long as the schools are under-funded and the teachers are poorly paid. What they do with the money they take from me is the least of my concerns.
Then Shut the Fuck Up about the curriculum.
It comes down to a matter of who pays for the curriculum. I prefer that others pay for it.
Doesn't computer coding and programming involve a great deal of logic?
Don't the proggies realize what turning a bunch of logical-thinking young people out of the government school system would do to their hegemony over the low-infos?
All of these questions would be moot if they believed in school choice. Vouchers are the most realistic since people aren't going to agree to get rid of public schools IMO. Then the parents of the school choose whether they want the programs or not.
I'm for it. You can't learn to program without a nodding acquaintance with deductive logic. Maybe it will help some people apply logic and analyze statements in a broader context, and is no worse for disinterested students than "social studies".
"apply logic and analyze statements in a broader context"
... also known as math.
I actually learned formal logic in a philosophy class, then had it given to me again in the true/false argumentation of computer programming. Not sure I could bootstrap myself to broader mathematical principles.
The lovely philosopher/thinkers this place attracts. Like midget rainbows dribbling from lonely interweb clouds.
The two best academic influences in my life:
1. 6-week logic curriculum that kicked off my high school calculus class.
2. Multiple computer programming classes in college.
Logic and philosophy is something that is almost completely lacking in the current curriculum. The rigorous enforcement of logic in computer programming is a major plus. (after all, the program either works, or it doesn't work. You can't really debate with it.)
The world would be a better place if everyone were trained in logic. And computer programming is a good place to learn applied logic.
And from a selfish point of view as a libertarian, I think that the more people are able to think logically, the more people will understand and be drawn to the libertarian point of view. (of course, this is just another in a long list of things that I'm wrong about when it comes to understanding people. The domination of the skeptic movement by hard core progressives demonstrates that I have no understanding of just how flexible the human mind can be when it comes to political philosophy)
So many benefits to learning programming.
One of the things that impressed me early on was the necessity for perfection. A programmer literally has to be perfect (syntax-wise) to get a program to work.
That has stuck with me ever since. My attention to detail and "prefectionist" tendencies started there and have reaped huge dividends throughout my working life.
Agreed. Same here.
I would also add that it forces one to think of the other sides of equations in anything (from finance to social issues and so on...). Not just feel good one sided ideas that can be spouted off. In order to write good code, you have to look at all sides of the multifaceted issue that you are trying to solve.
It certainly does have a long term upside to one's critical thinking abilities.
Yes, the key to a good programmer is someone who can imagine and plan for every possible scenario, not just the most common implementation.
With that skill I have been crushing the competition for 30 years.
Worth noting. I've never worked as a programmer in my life, yet my programming training is my most valuable intellectual asset.
after all, the program either works, or it doesn't work. You can't really debate with it.
It's usually the math teachers that bitch about how fucked up the teacher's union is. There is no fucking way the union is going to swell their ranks. You're either going to get social studies teachers teaching programming - meaning after 18 weeks the student might get "Hello World!" working -; or you're going to get computer programming counted as part of a math requirement - meaning there will actually be LESS math instruction.
It should replace some math. There is zero sense in spending so many years practicing manual calculations when everyone literally carries a computer in their pocket. The more abstract, logical part of mathematics, such as what you learn when programming a computer, ought to displace it.
I'm for it too. Public schools, under any funding mechanism, need to offer students an education that gives each pupil an opportunity to experience a broad fields of knowledge. Computer science is a great tool to understand the modern world and a great life skill for either work or hobby. And at the introductory level it is tractable for most students. Let's teach it.
As someone in this business, I am all for exposing kids to computers at all levels. As for making "coding" mandatory I think that is NOT a good idea. Programming is just ONE aspect of computing and does NOT make up the entire industry. Why not make operations or infrastructure mandatory? After all, without those of us who can actually BUILD networks, coders couldn't do what they do. It's all inter-related so to target a single area of IT could put some students off. Not everyone makes a good programmer or web developer or engineer or project manager and so on. My suggestion is expose them to the general areas of computing, how it works, how systems tie together and such to educate them and then allow them to decide what specific areas to go into. Just like medical degrees. You go through the general classes in science, chemistry, etc. but then later on specialize. You don't teach people cardiac surgery in the early years....why would you treat IT the same way? I can tell NON-TECHIES are making this suggestion because they have NO clue as to what IT actually involves.
I concur. Coding is specialized like tuba-huffing. General studies assist kids in discovering pathways into organic 'choices' more in tune with their DNA. Jamming specialized classes down the throats of disinterested youth is a perfect technique for creating serial killers- the which I allude to above.
It could all be bundled into an "intro to computers" class (which could include a simple programming block of curriculum). Interest (or lack of) could determine if the student pursues more.
^This
I had that in elem. school. Which led me to choose a (public!) science/tech school that had mandatory programming classes from 7-12.
It's the same nonsense as, "Learning a foreign language is good..."
No, learning a foreign language is, 99.99% of the time, utterly useless.
Learning the STRUCTURE of a foreign language, and then comparing it to the STRUCTURE of English, can on the other hand be immensely useful in one's education.
But that's exactly what is not taught. You simply rote memorize how to count to one hundred, to recite the colors of the rainbow, and ask where baggage claim is.
Donde... esta... el ..bano?
Aqu? tengo tu ba?o.
(Turns head down, grabs own crotch, starts to snicker at Auric...)
That's not how I learned Spanish. It was chock full of grammar structure. In fact, that's when I leaned the most about language structure, including English structure.
Maybe I just got lucky.
Same here. Even in my first Spanish class in 4th grade we were learning more than that. I don't know what kind of language classes he had, but by junior high we had real learning with textbooks teaching grammar and stuff.
"Grassy Ass"
"De nalga"
"Bawn Jorno"
This was basically my point above. Teaching a specialty that has a short expiration date in preference to teaching eternal fundamentals is something so stupid that it must have originated in the mind of a professional educator.
You can't "do programming" if you don't understand Boolean algebra.
How many Chicago school students can even spell "Boolean algebra"?
This will not end well.
A very specific subset of Boolean algebra that professional programmers routinely find themselves not being rigorous enough in applying. You need to solve partial differential equations to catch a football, too, but plenty of kids who do can't spell calculus.
Utter nonsense. Approximations work in football, billiards and driving a car; they do NOT work when writing an IF-THEN-ELSE algorithm or flowcharting a subroutine.
Thanks for trying, and we have some lovely parting gifts for you...
Oh? So when I fail to be rigorous enough in my conditions and my program fails a unit test and I discover the flaw in my logic that is....? Look, I made a good living for a long time as a programmer who only knew Boolean as a bit operaor. The idea that you must understand the formal totality before you can apply the specific instance is demonstrated false by my, and probably 50 other commentors learning of programming.
Huh. I programmed for a number of years without remembering virtually ANY algebra.
What I did understand was logic chains.
And I was good at it.
Guess I was just lucky....fed my family for about 5 years....
I don't think assembly language coding is what's being pushed here, I could be wrong.
Of course a person could learn a higher level programming language without formal Boolean algebra training. People use Boolean algebra every day without knowing that's what it is called.
Let's say you're right. Then this proposal would quickly devolve into something like this:
Class, today we will learn how to code color schemes in HTML and CSS,
Let's say you want to change your font color from black to red.
Open your code and search for the word "black."
Now change the word "black" to "red."
Congratulations! You just learned how to code color schemes in HTML and CSS.
Here's you gold star...
I'm starting to think you've never used a programming language which was developed after 1970.
Maybe. Or maybe not. I guess your point is that teachers are lazy and school is ineffective? Isn't that another issue entirely?
Strike the word students and insert teachers.
Why oh why would Emanuel be pushing for mandatory computer science classes? I can't imagine why.
Wait. Don't computer science classes need...computers? And won't that mean that the Chicago public schools will have to shell out millions upon millions of dollars for computers?
You don't think whoever gets the contract to sell them those computers will be any kind of political ally of Emanuel or anything, do you?
Well, there is that....
Same could be said of desks and chairs.
Except they already have desks and chairs. It'd be a lot harder to justify the expenditure.
As I commented elsewhere... Computer programming could be taught on 10-year old donated desktops. This kind of thing happens all the time.
Granted, that won't be the way it plays out in Chicago.
Exactly. "Could" is the operative word in your statement.
Think about it this way. Chicago Board of Ed just got downgraded to junk. And, rather than looking for ways to cut costs, Emanuel is looking for a program that's going to require a lot more resources.
It's not hard to figure out what's going on.
I think promoting more technical education among children is a good thing. I think making coding mandatory for kids is not. A general computer/IT class would make sense, but programming is a pretty specific subset and if you don't enjoy this kind of problem solving it would be torture. Offer courses in it, sure, but let students who are interested in it try it out.
Allowing choice in the matter will allow minority and female students to opt out. Forcing them to be educated on the subject will obviously lead them to a livelong interest and mitigate the obvious racism and misogyny in which the STEM fields are mired.
So it's the new 3 R's: Social Justice, Keynesian Economics and Computer Hacking
Does making phone apps really count as hacking?
In the "flailing around with a machete and breaking things" sense, perhaps.
Actually, given the way the public school system implements everything it will be more scripting than hacking.
A generation of kids raised on the 3 S's; Social Justice, Sharing Economy, and Sticking to the Script.
....bowstaff stkills, nunchuk skills....
Bristle.
I think a problem solving course in general would be a better idea. Have kids build Goldberg machines to solve simple every day problems. Have them figure out how much they have to charge to both get business and cover the costs of some baked goods sold to other students (you'd have to let them actually sell the goods). Teach them how to wire something on a breadboard together to make a light come on or sound play, then let them compete on who can make the coolest thing (let them keep what they make afterwards). Let them program a robot to run a course either completely preprogrammed or by following a line. Egg drop competitions with discussions about what worked and why. Let them try those learn to code hours that walk them through building a game.
Give them a small sampling of a bunch of problem solving subjects. Whatever catches their interest can then be delved into deeper in another class, and more importantly will exercise the logic driven problem solving part of their brain.
Computer programming is as much an abstract problem solving course as what you've described but far easier and cost effective to implement.
Program a robot? Really?
Yes, really. Don't see what the problem is with that. Which is not to support mandatory coding education, but if there is going to be coding education, programming a turtle robot in Logo is a good place to start.
Lego robots, they have kits that are fairly simple to use.
Not everyone hooks into logical thinking the same way. Even if they use the same problem solving skills building a Goldberg machine is easier for most kids to visualize than code. Once you've got them used to exercising that set of skills its much easier to move them towards code than it would be if you started there.
I taught physics (AP and regular high school level) and my final exam for the high school level was to build a Rube Goldberg machine. I rotated the task every year. The kids who had done well in the mathematical side still did ok, and some of them actually learned how to use tools! Many of the kids who didn't do so well from a theoretical view absolutely LOVED it. I made them incorporate a certain number of energy exchanges and had to include some electrical steps (powered internally, except for solar cells) and some heat steps.
For juicing an orange, one group actually knew enough to power a kitchen blender with an inverter and lantern battery.
ok, I'm on board. I was just trying to keep costs down.
A computer programming class could be taught on 10-year old donated desktops.
"on board" LOL.
You're right about the obsolete hardware. The commenters above who said the reasons for this were contracts for new computers and fulfilling the quotas for women and minority (read: black) programmers nailed it.
Computer programming is as much an abstract problem solving course as what you've described but far easier and cost effective to implement.
Abstract problem solving is not applied problem solving. Further, not all problems can be solved, or solved optimally, computationally (especially a lot of the problems we continue to face now that computers are ubiquitous).
Maybe they should concentrate on reading and math proficiency and lowering the dropout rate. Call me crazy but it seems achieving these goals would be a better use of finite resources.
The question is: should it be 3 hours of math and 3 hours of reading each day, or some other ratio?
I question the true motivations of anyone who approaches an initiative with the motive of "increasing access for women and minorities".
Computers as a tool - similar to a home ec class - would be a nice start. Can't see making programming a requirement for graduation, even in a college prep track. Nice to have, but not a requirement.
There are only 10 types of people who understand binary. Those who do and those who don't.
Groan.
Dammit, Jimbo, stick to the popery - it's "There are 10 types of people in the world - those who understand binary and those who don't".
It's a pretty decent idea that gets worse and worse the higher in the government you apply it from.
World needs ditch diggers too
Teaching kids to write code is nice, but I think think schools should address the underlying field of electronics first. Besides, web design and HTML have been consolidated into point and click programs for years. And if you learn C/C++ (starting with embedded at a small scale in micro controllers and moving up), you can handle learning just about any other interpreted language like Java, Python, C#, HTML etc...
If we start teaching kids about basic electronics (which includes basic electrical theory) as well as math, chemistry and physics, kids will be better prepared to deal with the 21st century shift from manual to automated manufacturing and process control. This applies to anyone that wants to be a programmer to a network engineer to a robotics repair tech or anything between. From factories to farms, this stuff is everywhere.
I have to agree with the posts above about teaching kids to use micro controllers and seeing the fruits of their labor in the classroom. It is boring to hear a teacher drone on and on with nothing to show for it. But when a kid can build a small robot that actually does something, they can appreciate that experience right away.
If math is mandatory, electronics should be mandatory! Electronic gadgets are everywhere in our daily lives now. Get these kids some Arduinos and let them go nuts.
Agree with everything, but I think I've found the 'final solution'.
Give each kid a login to Hit and Run.
Can't imagine a more concentrated education than that.
Imagine trying to learn introductory computer programming from a barely-trained teacher who just lectures from the text.
Kernighan and Ritchie's "The C Programming Language" is a fully self-contained introduction to programming. Any Linux machine with a C compiler (gcc) can be used; all example programs in the book "work". And they teach rudimentary system programming.
Another good book is Algorithms + Data Structures = Programs. It uses Pascal, though.
Thanks for the tip! Sent your note to myself as a reminder -been thinking about getting back into programming (it's been many years)
"Thanks for the tip! Sent your note to myself as a reminder -been thinking about getting back into programming (it's been many years)"
There's been a lot of changes in the world of computer languages (and computers) since 1970. You might want to try your hand at object oriented programming or functional programming. Or both!
Most people can't code and you can't force them to be able to. This is the reason why we have to import so many Indians and Koreans for coding jobs. It's not that there are a shortage of people who want to be software engineers, there's just a shortage of people who can actually do the work. Getting complex software used by hundreds or thousands of people to work in the real world is not the same as writing a hello world app in a classroom. You can force everyone to take structural engineering courses too, but I sure as hell don't want to drive across a bridge that most of them would create.
^This.
We teach people to read and write, too; yet there are lots of functional illiterates, and relatively few people become writers/journalists &c. I think it is about giving the opportunity to people to experience programming: some will catch on, but most will not. Which is OK.
"there's just a shortage of people who can actually do the work"
And this is why kids need to know more about electronics and software at younger ages. If they did, you might find more of them that CAN do the work. This country is too busy teaching social sciences rather than real science.
more that CAN do the work later on in life as a profession that is... not like I want a kid writing code that moves billions of dollars a year at the age of 16 with no practical previous experience. LOL
"Most people can't code"
Only a retard can't learn to write a simple computer program.
Was your post sarcasm?
I don't think he means 'code' as in 'type at a terminal' as much as 'craft ubiquitously useful solutions to problems with a computer'. To wit, I agree, it's very much like shoving a paint brush into everyone's hand with the expectation of producing more Da Vincis and not too big a leap from making them work in the patent office with the expectation of developing special relativity.
Everybody is getting way beyond the topic. The article is not talking about turning public schools into programmer farms.
"You can force everyone to take structural engineering courses too, but I sure as hell don't want to drive across a bridge that most of them would create."
A mechanical watch, the kind with springs and jewels and so on, is far more complicated than a bridge, so I don't suppose you want one that watch-making students are required to make as part of their education. You might be surprised though. I have such a watch, made by a student, and it's worked fine for at least ten years now. Don't be too quick to dismiss the work done by people who are still fresh in their field they bring the latest knowledge and enthusiasm to their work which may be lacking in well established veterans.
The more it is made a mass requirement, the less likely the actually qualified, interested kids will get high-quality instruction.
^This, also.
No, they'll maintain AP classes for rich white males.
Inequality!!!1
It has been my experience that the larger the organization that tries to implement mandatory training, the more likely it is that this exact thing will occur. The more training of any kind becomes a "check the block" the less likely teachers will exercise initive and provide enthusiastic instruction and the less interest the students will have in it.
"...less likely teachers..."
*facepalm*
You mean Top. Men. can't just snap their fingers and make it so? Crazy talk!
Been there.
More or less this was where I was going with my comment above. In the Army this sort of thing is almost expected to some degree or another with pretty much any given block of instruction that isn't a "hard skill" (e.g. operating a weapons system) with specific proceedures.
A programming class is a great way to teach logic and communication skills. The computer can't "guess" at what you mean.
Probably more valuable than a fourth year of remedial English.
Thank you.
It is the opposite of FEELZ education.
No, for two reasons.
#1, Chicago can't do anything good.
#2, Any mandatory education is a violation of NAP.
Yeah, really not a great idea. Keyboarding/typing should obviously be mandatory, but mandatory coding is just asking for trouble.
Unless things are vastly different than they were a few years back. I tried AP Comp Sci my senior year in the 90s, but while I enjoy gaming, etc - I couldn't focus on Turbo Pascal to save my life. I could work through AP Calc, AP History, AP English, etc - but something just didn't click with me for programming no matter how much I tried.
I tried another community college course in AutoCAD this past spring - (16 years later) and still couldn't really get focused - but that might have been the fact it was an online course with shitty video lectures.
Like music and art, programming is something that a lot of people either have or don't have and forcing people (and grading them) on something they have literally no aptitude for is going to turn them off a lot harder.
...computer coding and programming...
That's like saying, "speeding and driving too fast".
I dropped out of school because of C++ class. I FINALLY had a subject I was intensely interested in, burned through the text book in a few days. Only to discover that I was not allowed to type during "instruction" because the keyboard made too much noise, an unacceptable distraction for our teacher who only knew visual basic.
Leave it to a bureaucrat to dream up a moronic compulsory program that sounds good but will fail students and build a new level of govt. employees.
We don't require students to be proficient in their abilities to read and write a simple English sentence on a computer. Why should we go another step and ask them to be able to code the computer program they can't use?
As a retired programmer, I can never see or hear the words "computer science" without thinking of Stan Kelly-Bootles definition--"A study akin to numerology and astrology, but lacking the precision of the former and the success of the latter"--and his 'quotation' from 'Prof. M. Thump'--"Science is to computer science as hydrodynamics is to plumbing". If you want architects, don't train people in materials science or classical mechanics. If you want programmers (architects whose beams and bricks are of logic rather than steel or fired clay), don't train people to be computer scientists. That's not to disparage materials scientists or physicists or computer scientists, only to point out that degrees in those fields don't prepare you to do the work of an architect or programmer.