ACM Urges Obama To Include CS In K-12 Core
jmcbain writes "The ACM issued a set of recommendations supporting Barack Obama's stated goal of making science and mathematics education a national priority at the K-12 level. The ACM is urging the new administration to include Computer Science as an integral part of the nation's education system. 'The new Administration can play an important role in strengthening middle school education, where action can really make a difference, to introduce these students to computer science,' said ACM CEO John White." Is CS such a basic subject, at the level of science or math, that it makes sense to (try to) teach its principles to every elementary school child?
When I was in high-school in the late nineties the only computer classes at my school were "keyboarding" and later "Tech Exploration". Keyboarding is an abomination because people who can use a computer well enough don't need the masochistic cover-over-the keyboard training to type accurately at a fast rate.
The best ultra-rudimentary programming can start with point-and-click commands to a simple robot arm (interface). That will give noobs a good idea of the algorithm and the order of steps required for it to work properly. ~5 years later I had the pleasure of working for a simple but bulky industrial robot which happily displayed on an LCD monitor the steps it was going through as it was doing them(the meatspace equivalent of a real-time debugger) and it said stuff like "pick up bale", "alter travel to avoid rod collision". The arm actually had to take an elongated path to avoid hitting other parts of the machinery, even though it was capable of doing so. The operation required the operation of the program as well as proper calibration of the servos to avoid beating itself to death!
In one word: YES!
Computer science is very very important. You will use it in damn near any field you go into- from operating the register at a burger king - to being a software programmer.
I'd rather see something more abstract like symbolic logic classes rather than programming classes.
No sig for you!!
They do such a miserable job with the basics already. Colleges have to give classes in remedial reading and math to get their students "up to speed" because the K-12 are doing such a crap job.
Besides, you know this will degrade into "This is how you create a powerpoint presentation" because that's all the "teacher" knows? Besides, by the time they draw up a curriculum, you *know* it will be obsolete.
There is no need for computer classes, not when you can't get the basics right. And speaking of BASIC, do we really need another generation ruined by it?
Personally, I'd like to see any basic CS course in K12 include training on how to avoid pitfalls of computing along with some basic research instruction.
Computing Bad: MySpace
Computing Good: Slashdot
"Lame" - Galaxar
"To meet the nation's educational and professional needs in the face of insufficient numbers of undergraduates majoring in computer science"
LOL.
It's called $$$. Keep trying H1b visas. Typical of corporates who don't want to pay and want to too see lots of cheap labor. More CS workers = lots of competition for jobs.
You saw how IT industry turned out.
Math teaching should indeed include programming knowledge. It doesn't have to be intensive knowledge but it should be enough to teach logic flow and problem solving methods and procedures. We all learned PEMDAS in algebra class, but there is more that should be included as well. Not only comparative operators like greater-than, less-than and equals, but the other ones we use in programming like not-equals, greater-than-or-equals and the like. Binary math with AND, OR and XOR should be enforced in many areas as well.
These types of mental skills are good for math and science, of course, but these sorts of mental processing skills are very useful in day-to-day life in thinking and reasoning. Thinking and reasoning skills should be taught throughout K-12. Learning how to learn effectively is THE absolute key to a successful academic career. Right now, emphasis is on passing tests. That is just the wrong way to do it. Teaching how to learn and think will resolve the student success problems very naturally.
Some people will ALWAYS lack the capacity to learn and think effectively. That is unfortunate. But the whole of our nation's youth asset should not be compromised because a few will be left behind. "No Child Left Behind" sounds good... especially on a battle field. But it inhibits the potential growth for a massive amount of students. Talented and Gifted programs are all good, but the average student is far more capable than the regular school system is geared for.
Why bother? Computer Science is just applied Mathematics...
Some schools have Lego Mindstorms, which have a primitive programming system. I mean, it's not hat hard to teach stuff like conditionals, loops, object, etc. The idea of anything taught at this level is to familiarize the student for higher-level work. We do spend 4 years teaching algebra, after all.
I guess there's two ways to slice it: software development versus algorithms. I think it would be very easy (and in fact quite beneficial) for algorithm development to be integrated into existing math and science classes. Something like VPython could be a tremendous aid in helping physics students visualize vectors and how mechanics and EM problems "look". While the ability to compute (not only does it help you solve the problem, it helps you understand the nature of the problem as well!) is just as critical as the underlying problems it helps you solve (core sciences, math, etc), skills that are more commonly thought of as "software engineering" definitely belong in specialty classes and electives.
Allow students to advance their CS knowledge if they are interested, and teach everyone else how to use a computer! Plugging in peripphials, playing with wireless routers, how to properly plug computers in if they ever buy a new one, installing a basic operating system.. linux is perfect
What you describe is NOT Computer-Science... you're talking about how to utilize various "tools".
Computer-Science is the field/discipline where we take a process, break it down to its base tasks, and then develop computational tools/technology to automate components of the process or the process in its entirety.
Computer-Science == "I currently do X, by performing tasks A, B, and C, is there a way to make this easier or more efficient using formal logic tools (such as computer-software or simple electronic components)?"
Computer-Science != "How do I plug in a printer?"
I'd refer you to Dijkstra's Telescope analogy, but no-doubt it'll be used by someone else.
A Man's ethical behavior should be based effectually on sympathy, education, and social ties -- Albert Einstein
I say no, and here's why: A lot of C.S. never made any sense to me, until I had a good grasp of language and mathematics. Knowing the state of American education, I'm guessing that means that the majority of kids will not be able to handle C.S. as a required course until they're well in to middle school, and most likely, a lot will not understand it until they're in high school.
(And yes, I know some people on Slashdot started coding when they were twelve. You're the exception to the rule.)
By that time, Computer Science is usually available as an elective, which is where I think it should be at. Making computer science an "integral"* part of American education seems like a nice idea. However, I doubt the practical application will yield anything useful, as most students will treat it as "just another subject", they have to grind through. The cynic in me says, "The majority of schools already fuck up Mathematics, Chemistry, Biology, and Psychics already, why should we give them another area to piss on?"
On the other hand, I'm all for expanding computer science as an elective.
*Does anyone know what they mean by "integral"? Every time I've heard the word "integral" in education, it usually translates in to "Required". If it's not required, I'm much more for the idea.
Dear ACM and Computer Science Teachers Association, both of which I am a professional member,
STOP.
Please.
I know constitutional matters fairly well. I've got degrees in computer science and K-12 education. I see things from a younger yet informed, educated standpoint (I am in the first generation to be tested under the PA tests which satisfy No Child Left Behind).
Stop campaigning the federal government for educational things. The federal government has NOT been granted the right to deal with education in any way. Its current educational meddling in state-run schools should serve as evidence of this, and should be unconstitutional. Continued federal campaigning will only increase the amount of influence the federal government thinks it has and tries to have on public schools, an influence which is detrimental to the individual needs of students and the societal needs of their communities.
Instead, my dear ACM, please spend your time and money asking state departments of education, which move far, far quicker than the federal department of education, to include CS in curriculum. The federal department of education moves as a brontosaurus would, but the state department of education moves like a triceratops--still slow, but certainly quicker and more aware of its surroundings than a brontosaurus would be.
More effectively would be a grassroots campaign among ACM members to try to convince local school districts that CS needs to be included more in curriculum, especially in city and suburban districts where programming jobs are more available.
Asking the federal government to intervene is asking for something which will simply worsen the situation, and something which cannot be undone.
Colin Dean Go a year without DRM
I think "computer literacy" is more in order. In fact, just the other day I helped yet another person who didn't understand that documents written with a specific program didn't live exclusively inside that program. Understanding fundamentals like this are necessary to interact in a competent manner with computers, which are becoming a necessary tool for more and more fields.
Without these basics, "Computer Science" is somewhat hopeless; I would rather have these basics be required. One thing that needs to be improved is the ability for people inclined towards computer science ideas to be exposed to advanced concepts . . . but it should not be compulsory. I am a CS major, but had my first programming class my 2nd semester and thought I was really computer-savvy specifically because I knew that files were independent of the program that created them. However, I was interested in programming for a while before that and just never had the opportunity to explore it.
And here we go again: confusing math with arithmetic. Long division is basic arithmetic, not math. Math involves manipulating concepts, a far broader concept than just numbers.
That said I am interested in introducing a Computer Science curriculum starting in middle school but only insofar as it clearly calls out the notion of an algorithm. Way too much of today's middle and high school education allows kids to get away with doing well by simply being good at rote memorization: contrasting this with the notions of deduction and logic by being forced to capture them formally in an algorithm of sorts that can be followed by a computer introduces a level of rigor not otherwise enforceable.
PaulW, IT Consultant
It's not talking about teaching programming, or even computer use - but Computer Science. At the basic level very little has changed in Computer Science since Turing. You can spend an entire year just on designing very basic algorithms for very basic things - and not in any current computer language - and teach far more to children about logic than current mathematics does.
It depends on what area of the country you're talking about. If you think that all public schools teach the same things, then clearly your perception of American education is not correct.
Many schools don't have such courses, so colleges wind up picking up the slack where they leave off. Therefore, only the kids who are exposed to schools and districts where any kind of computer courses are offerred really benefit.
Of course, if there's no interest in a community, then why should a district impose such a level of technology? After all, everyone has computers at home and kids are growing up with them, just like people have been growing up with cars for well over 50 years now and so driver education got integrated somehow.
Comment removed based on user account deletion
The core computer science topics won't be obsolete anytime soon - consider that many places still teach the basics using Lisp, a language that's been around since 1958. Computer architectures haven't changed much either. Sure, instruction sets have evolved, but we're still using von Neumann archtectures. None of the paradigms used to program them is ever really obsoleted.
Basic Computer Science is far more useful than teaching 'American History from the Revolutionary War to the Civil War' for the fourth year in a row in Elementary School. You can drop one of those years for a course in 'Logic for Children' and get far more out of it.
Counter-strike?
But, there are a finite number of hours in a school day, and a finite amount of material that parents are willing to let their children learn before they complain that it interferes with the dozen after-school activities that the parents have scheduled.
Learning a 2nd/3rd language is a huge waste of time. What do you really learn by adding a list of words to your brain that is a copy of the words you already know, but in a different language?
Think of the opportunity cost of all thing other things you could have learned instead that would actually help you understand the world around you.
Just pick a language already, any language (does not have to be English). There would be so much saved effort in understanding each other and passing on knowledge between civilizations. Best of all, it would make it harder for politicians to say one thing to one group and something else to another, hiding it based on language differences.
Except for the bulk of students (easily 99% of them) it IS office suits. And they dont even do that well.
Computer Science is NOT something that should be taught any sooner than 9th grade IMHO. And certainly should not be a general ed requirement. It is not a general skill most people need and certainly should not be thought of as that way. I know this is slashdot so people are going to disagree with that, but the honest truth is its hard enough now to get kids to learn real life skills, teaching them something from a field most dont even have a inkling of want to be in and those who do will already know more than any teacher will be able to teach them is just another subject that waters down basic education.
"Slashdot, where telling the truth is overrated but lying is insightful."
I honestly believe that the CS teaching will start out bad. There are few teachers who can tell a computer from a hole in the ground, and fewer that can program to a good degree. However, the initiative for teachers to know about computers must start here. I had a teacher who taught AP computer programming with literally no knowledge about programming. He made countless errors and would have to teach himself in the middle of class. But you know what? The interested students actually learned decent programming, all the way up to mid level object oriented programming. What is so funny is that his lack of knowledge was even a benefit. He didn't know that Java was part of the curriculum because he didn't know there was such a thing as more then one programming language. He just picked up a c++ book and taught us that. After we finished learning about objects and their parameters, he decided to do interfaces with a library he downloaded and found out about VB. Since then, he suddenly realized there were a myriad of languages out there. By the end of the year we all learned c++, VB, Java (he finally found out), and he gave us a choice of the other programming languages to learn (I learned AUTOIT and my friend learned python). And he went from not knowing about the alt+tab trick, to writing a autoit script that would lock the computer down and beep like mad when the keyword "game" was typed. This may be the best case scenario, but as long as there is are a sliver of ambitious people distributed throughout the system, there will be a massive amount of progress made with this choice.
Help fight spam
I see your point, but teaching students basic set theory, first-order predicate calculus, and mathematical proofs under the banner of "computer science" wouldn't hurt.
And yes, these are in fact the first three topics covered in the core computer science course at my university. And the professor came in on the first day of lecture and told us, "The first half of this class will be the things your high school failed to teach you.".
In junior high many kids think algebra and geometry are irrelevant to life, and things they'll never use. There's no way they'd see Turing machines, state machines, regular expressions, etc as remotely relevant. They wouldn't be motivated enough to really tackle it, even if they are plenty capable mentally.
The first twelve grades should be devoted to communication skills, history, natural sciences, and the like. You know, the real basics in which our high school grads are already demonstrably deficient. How exactly will mandating CS at these grades do anything to produce more functional citizens? We might get a wonderful crop of idiot savants, but is that what we really need? If a given student has a distinct attraction to CS, they will naturally pursue it outside of the classroom.
Even the ACM counts as a "special interest group" that has "lobbyists", and here they are trying to push their own agenda to the exclusion of more important things.
Those are things that would be very useful to teach, for many applications, but I'm not sure that they need to be taught under the umbrella of C.S. Along with some stuff on algorithms, they'd all be fine in a math class; at that point, the students who want to learn programming shouldn't have much difficulty with it, whether they do it on their own or in college. Don't get me wrong, I'm glad I learned to program in high school. But while my school wasn't wealthy (we were using Apple IIe's in the late 90s), it did have the resources to offer those classes, for the very few students who took them, without impacting other programs. I'd hate to see stuff like music and art cut (and they're usually the first ones to go) in order to teach everyone to program.
As a maths teacher I agree with your 1st and last sentences. Everything between I take great umbrage to.
One of the reasons we have so many people graduating High School with little to no mathematical sense is the argument that "we have calculators so arithmetic is not so important". Consider polynomials. The best introduction to this important branch of maths is decimal arithmetic, as any radix representation of number is a polynomial. Students struggle with rates and ratio, because they cannot deal with rational arithmetic.
Geometry and algebra are two ways to consider deductive reasoning. Formal logic makes more sense if it can be cast upon a framework already constructed.
The equation of a line is a crucial concept. Almost all applied maths and numerical computing is essentially refinement of the idea that the only equations we can always be sure of solving with real numbers are linear. Without a solid grasp of this concept (which is difficult for a distressingly large number of students) there can be no understanding of calculus, nor can someone understand statistics (so they can't really understand democracy) or finance.
Studies do not involve "continuous time" until senior years. Until then it is far more important that students learn about days, hours, minutes and seconds, and their relationships with the shape of the earth and the seasons.
There is a shocking lack of diversity in K-12 maths education in developed countries. Part of the problem is the lack of mathematicians who are passionate about the subject working in K-12. Part of the problem is curriculum bloat. Part of the problem is really bad textbooks that purport that there is "one right way" to solve problems.
How many 12 year olds can extract square roots these days? Or can tell you that 19 x 21 is 399 without resorting to machines or lengthy sums? Or can even tell you what all those zeroes mean when they do a "long multiplication"?
By all means teach algorithmic theory and programming in LOGO or Squeak in maths in school. Teach them about memory. Teach them to consider the efficiency of their methods. Doing so and we might just start teaching maths again.
You do realize, don't you, that we're talking about K-12 here, not college?
They can't learn until they can think. Knuth is a good start on that.
They used to teach a lot of things in elementary school that people these days think are college level: grammar, spelling, latin, greek, algebra, basic chemistry, debate, logic.
I'd give that list a 10 points out of 10. Nicely done.
Help stamp out iliturcy.
I agree - up to a point. I don't agree that schools are all doing a miserable job. You know the phrase "garbage in, garbage out"? It really does apply to K-12 students.
I've taught 10th-12th grade for 4 years now at an inner-city style school (59% minority rate, 78% free/reduced lunch), over a variety of Math/CS subjects, including Precalculus, AP Calculus, Honors Physics, and AP Computer Science. You'd think I would have the top of the stack, the elite students, if you will. If I do, it demonstrates the problem with some U.S. Science & Math students in the 21st century: the students at some schools (at least mine) have no desire to put in the effort required to master a difficult subject.
Students are looking for classes they can pad their schedule with that look good on college transcripts, but which require very little work. If it's an AP class, they want the AP teacher that gives out extra credit like candy, assigns 3-5 problems a night for homework, and gives "open book" tests.
I came from a tougher school of thought, so in return I expect work from my students; I assign 1-2 hours worth of work every night, every test is "closed book", every quiz is unannounced, and there's no such thing as extra credit. You should hear the crying of unfairness and cruelty. (The funny thing is for the 4 years I've been at my school, my AP class has had the highest passing rate of all AP courses taught at our school.)
My AP Comp. Sci. course, for 3 years in a row, was filled with ambitious MySpace, Facebook, or other "texters" who thought a CS course was going to be something where we sat around all day and wrote the next "How L33T are you?" quiz. Some thought we'd be writing the next Line Rider game the 1st class. When I tried to get them to understand OOP, or to think of what a Model & View architecture really meant, it blew their minds. A simple assignment (almost pointless, but done anyway to try to get something out of them) of picking an everyday real life object and writing down all of the things it's made of and things it can do, netted me about 20 papers all describing a pencil as being made of lead, eraser, and plastic, which can write and erase. Deep stuff.
You should have seen how well they handled writing a simple "Guess a number" game. Basic IF structures (logic) completely eluded them.
It's not their math skills that was hurting them (although you'd be scared to see how many AP Calculus students I routinely teach who can't grasp working with reciprocals or fractions in general work) - it was their inability or lack of desire to employ critical thinking skills. If it wasn't something that could be put on the back of an index card (to cram the night before) or typed into their cell phones (to cheat from the day of the test), they wouldn't do it.
We have to get past that laziness, that lack of work/study ethic, in K-12 education before we tack on anything else. CS, done well, cannot be learned in any meaningful fashion if there's no desire to use reasoning, deductive logic, or problem solving skills.
I pray it's not this bad at other K-12 institutions around the country, but I'm fearful that it's the same everywhere. It's the chief reason I'm pressing onward with my MA or MS to get my foot into the door of college teaching. I know you still get your share of lazy students there as well, but they might just want to work hard and pay attention, and I won't feel like I'm just spinning my wheels every day I try to teach another young mind. And I'm fully aware that I'm not helping the problem, if I'm even able to, by "bailing" on the K-12 arena, but there comes a point when your work begins to feel like an ice-cream salesman standing in Fairbanks, Alaska.....you just have to move your stand to somewhere you can get something done.
P.S. This year the county canceled my AP Comp. Sci. class and rolled my BC Calculus course into my AP Calculus course as an "independent study". Due to budget cuts, having 12 or less students means the class gets folded. So much for even the wannabe texters...
Londovir
There's pretty strong evidence that the ability to program is more or less in you or not, and that training won't change that. If we want to start teaching programming to as many people as possible, we should begin with a simple screening test (as in the link) and exempt anyone who doesn't pass. To do otherwise will no doubt result in massively widespread, deep-seated hatred/disdain for programming (and maybe programmers).
"A great democracy must be progressive or it will soon cease to be a great democracy." --Theodore Roosevelt
1-2 hours worth of work every night, every test is "closed book", every quiz is unannounced, and there's no such thing as extra credit. You should hear the crying of unfairness and cruelty. (The funny thing is for the 4 years I've been at my school, my AP class has had the highest passing rate of all AP courses taught at our school.)
Now this is why you are precisely the kind of teacher I dislike the most. The one who thinks their class is the only one that matters.
Do you honestly think that after being in school from 8am to 3pm (7 hours) students should be expected to study an additional 6-12 hours? (1-2 hours per subject). This is ridiculous, as no person, let alone child has that kind of attention span or time (12-19 hours).
It is my humble opinion that the majority of 'textbook' learning should be done at school, and afterwards, the students need time to learn to play, interact, and learn responsibilities besides that of doing their homework.
I have also felt that many students would benefit from having more time focused on them, and so small group learning should be the norm, not 25-40 students in a classroom for a lecture. It is not the amount of time spent learning or the hours of homework spent, but the quality and efficiency that matters. We need to increase the number of teachers per student-perhaps 1 student per 6 kids. This would have to be accomplished likely by trained volunteers or less-qualified Teacher Assistants and one teacher.
However, I do strongly agree that there has been a softening in standards across the board, and that students expect to be coddled more. But I do think that the expectations on students are higher. There is simply much more to have to learn and know on a daily basis.
It is no longer the three R's (readin', 'ritin' and 'rithmatic) Now we have Social Studies, Health, Computer Science, Cooking, English, Spanish, Gym class, and on top of that students are expected to perform 50 hours of community service a year and after school activities and boy/girlscouts and have a part-time job when they reach 15 or 16.
What ever happened to bein' a kid?
Education is going to need to be revamped in a big way.
ERROR: SIG NOT FOUND (A)bort, (R)etry, (F)ail?:
NO!!! I like the ACM, but this is totally WRONG.
Rant 1:
Bring MATH up to par with other nations. Its acceptable for me to say "I can't do math" but I dare not admit "I can't read" or "I can't do english." Its cultural as well as systematic.
The US students have mental blocks on math (NEVER mention math,) they don't understand the use of experimentation, and have been shuffling paperwork and jumping thru tutorials for so long they are shocked when I get my hands on them... Their demands for the old-school methods have resulted in the degradation of other courses over the long term (a few like myself hold out against the trend - its not just the natural understanding gap increasing between instructor and student that makes me see a downward trend.)
I've seen inner city schools doing things ONLINE that create disadvantages for poor students without internet or computer access. If you really want to help, get kids access to a safe internet and a computer that facilitates exploration and experimentation.
Philosophy of Science would be widely useful. Actually, Critical Thinking -- one could fit in Science, Logic, and even some Ethics into that class.
Rant 2:
The computer is just a tool for teaching things that is completely misunderstood and under utilized while at the same time being thoughtlessly applied to education without any supporting evidence for its educational benefits!
The only real work on computers for actual learning that I've seen was done in the 80s and early 90s with LOGO, MECC, and Carmen Sandiego. These all tried alternative methods to use the computer as a tool to teach or build critical thinking skills... NOT teach CS. (Yes, LOGO did do everything.) More RESEARCH based tools should be encouraged like the brain-research that led to EyeQ or Nintendo's Brain Age. Speed reading would seriously change lives.
I've seen girls learn to type fast on their cell phones. They don't need a cell phone typing course to do that. They shouldn't be required to WASTE time learning typing on a computer when they will eventually figure that out. This is a great example of how misused computers in schools are (not to mention the waste of typing-only computer labs when 100 year old typewriters would suffice.)
Rant 3:
Bigger areas are being ignored. they are more important.
Creativity is a whole other area sorely lacking; my mother is an art teacher and the stories she tells sound like we are entering an age of mindless consumer drones. Studies have always shown that right-brained classes like art resulted in better scores in the left-brained classes... Until they wreck these courses (and for 8 years boy they have been trying) those courses will continue exist. I would HATE to see right-brained courses be replaced with more left-brained courses.
BTW: Einstein played an instrument.
Promotion of curiosity wouldn't hurt either... Some form of Omnibus course wouldn't be a bad idea; especially, if it helped find interests that could be leveraged in less interesting courses.
How about Business? Accounting? People can't manage their own credit cards and its pathetic. Nobody learns how to do taxes or run a business... and the LAW or even the constitution-- forget it...
Rant 4:
Students are institutionalized to memorize and do tutorials. Programming problems without example code is a huge break from the mundane norm of the current educational system; however, instead of jolting students with something new to make up for a degraded system (not that the US system was that much better in the past) why don't we improve the existing subjects to be more engaging? I managed to ace 3 years of spanish without learning any spanish! It was the perfect example of the path of the current system.
I DO think learning C++ should count as a foreign language. Would be a better use of time for most students; for all the reasons the ACM states. (If one must learn a language thinking it helps your english then why not learn latin then?)
Rant 5:
Obam
Democracy Now! - uncensored, anti-establishment news
Basic Computer Science is far more useful than teaching 'American History from the Revolutionary War to the Civil War' for the fourth year in a row in Elementary School. You can drop one of those years for a course in 'Logic for Children' and get far more out of it.
What elementary school did you go to?!? We didn't touch American History until we were well into 7th/8th grade, where we browsed it for a total of 2 semesters, memorizing the Preamble, the Bill of Rights, and the Schoolhouse Rock "I'm just a Bill" song. Oh yeah, most of us also learned somewhere along the way that the North won the War (although many of my classmates may have been confused about which War), Abraham Lincoln was tall (and there might have been some short dude named Douglas something-or-other), and that the Shot Heard Round the World was, probably not, literally "heard round the world".
/., and we do so love to revel in the glory of our own achievements/greatness and belittle things proportionally to their distance from our own sphere. So by all means, continue to build a cultural of arrogance and superiority akin to the ones used by academia/law-enforcement/politicos to insulate themselves from tribulations of the masses they are so willing to manipulate/bully/deceive when it serves their purposes.
Also, the statement that Basic Computer Science (however it might be defined) is More Useful than $SUBJECT_I_HATED can only have meaning after the purposes of basic (K-12) education have been defined and prioritized. Without agreed upon ends, there can be very little, if any, meaningful discussion on this matter.
If you would like to propose that the primary purpose of basic education is to obtain a career in the CS industry, I don't think many would argue with you about the greater usefulness of Basic CS over something as inapplicable as History. If you took a more moderate stance, and said that the primary purpose of basic education was to train the minds of the youth to be able to approach the problems of the adult world (and life) in general, well, I personally know some historians who would disagree with you about the usefulness of replacing some of the History classes with Computer Science classes.
But this is
Now that I think about it, I'm pretty sure everything I just said is completely wrong.
From the abstract of the referenced paper:
All teachers of programming find that their results display a 'double hump'.
"pretty strong evidence" my ass. First, any claim that this test identifies "innate" ability is nonsense. There's no part of the associated studies which even approaches a "nature" vs "nurture" type result. First clue of no real results: ZERO application of statistical analysis in the paper. This submission would be a big laugh to any serious social sciences forum. A population split is claimed, and a proposed test to identify that split is presented. No claim as to why that split exists is made. (If it exists! The paper far from proves that.)
For example, that data (if correctly gathered, is statistically meaningful, etc.) might simply reference the quality of the mathematics education the students received well prior to taking this CS class. If that were the case, it'd be VERY STRONG reinforcement for the ACM's case. Likewise, such a test might then indicate required remediation for students rather than kicking them out of CS entirely.
E.g. did the students have to really learn long division in school? That's their first exposure to a rigorous CS-style algorithm. How was the student's algebra education? That's the introduction to the abstraction of variables. The computer scientist who doesn't deeply grok abstraction gets precisely nowhere. The list goes on. These are core skills which allow a student to find success in CS work. These can be likened to the "literacy" requirements to comprehend Computer Science topics... are we simply producing "illiterate" students? We don't yet know, and this work, while stimulating, doesn't provide any answers.
Do you honestly think that after being in school from 8am to 3pm (7 hours) students should be expected to study an additional 6-12 hours? (1-2 hours per subject). This is ridiculous, as no person, let alone child has that kind of attention span or time (12-19 hours).
It is my humble opinion that the majority of 'textbook' learning should be done at school, and afterwards, the students need time to learn to play, interact, and learn responsibilities besides that of doing their homework.
I'm a high school teacher in a country where homework amounts like the GP's are commonplace - Japan. My students are often at school 8am-5pm. They then study more at home, several hours a day. Most go to cram school 1-2 times a week.
They aren't much better off academically for it, on the whole, I'll say. They're known to sleep through classes because they were up too late the night before studying. They can't concentrate that hard that long. It's just not possible.
On top of that, it takes a huge toll on their social development - I have 18 year olds telling me that they wish they could date, but they don't have time for it yet, maybe in college - and it's easy to see that there's a cost without any real measurable benefit.
There are some serious problems with most all educational systems, and from my experience, adding more criteria to test them on is going the wrong way.
What ever happened to bein' a kid?
Well... actually kids never were 'kids'. They used to work down a mine or in a farm for 12 hours every day from as early an age as possible. It's only in recent times that we've had enough wealth that kids can spend their time mucking around
You don't teach 1st graders Pascal, you teach them about the difference between a queue and stack. Then you teach them different sorting algorithm which they execute with their hands on wood blocks. And then in later grades you teach them logic and show them how a CPU could do multiplication like they have been taught and how it really does multiplication, then you ask them to rewrite the real algorithm for base-10 and award an Android phone to the kid whose multiplication speed has improved the largest percentage at the end of the week since the last standardized test.
I'm with you on everything except for the 1-2 hours of homework a night.
Any student who actually does care is taking 6-7 courses in a year. If everyone follows your philosophy they're staring down 6-12 hours of homework after completing a 7 hour day that includes another .5 to 1 hour commuting. So your kids are down to 4 hours of sleep assuming that they don't bother eating or showering.
I don't buy any of the crap other people are saying about "letting kids be kids," but you do need to assign something that fits into the actual physical hours they have to study.
Make them do some hard stuff, but give them a day or two to schedule it around the things the other teachers are piling on them.
As for your pencil example... it's a bullshit exercise. You should have spent five minutes doing it in class. As a student, I would have filled that in a quickly as possible so I could get on with actually learning something. Being hard on the kids is half of being a good teacher - and if your test scores are accurate you are at least a decent teacher. But you have to give the kids some reason to take your abuse. I've mentored high school engineering projects where we had to force the kids to go home at midnight on a school night so their parents wouldn't yell at us the next day, because they wanted to be there and wanted to put in that work. You've got to give them some motivation other than just "well, we're theoretically learning something, and I'll get a good grade." Robotics is a little easier to make that much fun than math probably is for most people, but CS should be easy.
Don't start with OO - start with one of bug killer algorithms. Give them something they can see do something cool, something where they can compete. Then after they've had to slog through several pages of their own crappy code, show them how OO will make their lives easier. The only way to make someone care about CS techniques is to a) show them something cool they can do with it or b) show them how they will make their lives easier. If you show them the solution before they've lived the problem they will either accept it tautologically, or not care, and neither of those results in learning.
I'm sounding harsher for this than I mean to - but teachers need to realize that students aren't going to high school because they want to learn. They're going because they're stuck there, and it is the next pre-requisite for for whatever they want to do in life. But that doesn't mean that you can't convince them to enjoy the one hour they're stuck with you ever day and maybe actually learn something in it. Hold them to high standards, but realize that you're only one out of about ten things they've got going on right now and it's your job to make them want to actually make your time a priority.
The best teachers I had motivated and commanded the respect of even the troublemakers in the class. Unfortunately they are few and far between.
Maybe not, but teaching them to think about problems in a logical way is never a bad idea. I think in elementary and middle school the ideas and methods around computer science could definitely help them later in life. Wait until high school to teach them a language. What do we teach them now? How to open word on a mac? Teaching kids logic and problem solving as it pertains to a computer system will only help them later.
All points of time and space are connected.
Here's a couple radical ideas ~_*
Keep letting elementary school kids play w/ Logo. Those who are hooked will quickly move all by themselves to other programming languages.
Expose kids at all levels to things like phun .
And most important: ban use of PowerPoint in all schools at all levels. 'nuff said on that one.
As others have posted, learning to design algorithms is useful; learning any specific programming language is far less so. I'd go so far as to suggest that the rules laid down in Geometry class may be of great use for budding programmers. Geo students are (or at least they are in the Honors levels) taught to write down every step in the proof, along with a justification (theorem, definition, etc) for each step. That's the first lesson in algorithm development.
https://app.box.com/WitthoftResume Code: https://github.com/cellocgw
Do READING first. Then we'll talk about CS.
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
High school makes people act like idiots. In other (less opressive) environments, most kids seem a lot smarter and more educable.
As for your anecdotal evidence concerning friends who had taken Calculus, any mathematician or computer scientist can tell you that success in Calculus is not at all a predictor of success in formal discrete mathematics. That's not news, and I don't think that anybody is trying to say it isn't true.
If you look at how universities teach their undergrad math majors these days, a lot of them include a transition class that comes during or after the basic calculus classes. The purpose of such a class is to teach students set theory, logic, induction, and other tools of formal math before sending them on to analysis or abstract algebra. If you look at what kind of math those classes use to teach formal methods, you'll realize that the prerequisite knowledge is actually just plain old algebra, which a lot of students get in middle school these days. Math departments have known for decades that they can't expect high school graduates to know any of the basics of math. Hence the mandatory remedial classes. Without them, it's hit-or-miss as to whether any given student will be able to pick up formal techniques as they struggle through the first few weeks of analysis.
The ACM clearly recognizes that much of the above applies to computer science as well. If you try to teach programming to students that have had no introduction to discrete math, lots of them will flunk out not due to lack of ability but lack of experience. In effect, the way most universities teach CS weeds out all but those who teach themselves the most important bits.
As someone closely associated with post secondary education, who has seen "computer science" curriculum at the community college level devolving into either Microsoft® or Cisco® application classes at the behest of Those-Who-Don't-Know-Better, I am leery of any effort, no matter how well intentioned, to add anything to a system already overburdened, underfunded, and saddled with failed standardized testing mandates.
The temptation to go from teaching that Copy/Paste is basic and accessible in all operating systems, to "This is a Wizard®, just click here" in order to keep test scores at acceptable levels would be too much for most public school administrators.
The ACM would do well to formulate a curriculum on its own that generates excitement in students, place it in select schools and get other schools to adopt it after results were shown.
Anything else smacks of throwing more public dollars at a perceived problem and then having to pick up the pieces later.
Some days it's just not worth
chewing through my restraints.
1) Oregon Trail. Famous government designed video game that taught prioritization and long term planning to kids. (it was sold to private industry where it died a slow death; educational software is not that profitable and provides little benefit when its privately run and designed. I'm merely stating history.)
2) Lemonade Stand. free game on Apple ][. Teaches K-3 level business concepts. I believe it resurfaced about 5 years ago as a turn-based drug dealing business game. I forget the name of it.
Anyhow, stuff existed but failed to get noticed and maintained. Open source research tied games used by public schools would continue past the life of the non-profit (MECC) government funding (MECC) or the platform (Apple ][e)
3)
Everybody blames teachers. I think its largely because americans won't take any blame on themselves!
Teachers do everything... Teachers can't create the tools that currently do not exist.
MOST teachers are like mechanics; if you need something designed you get an engineer not a mechanic.
They do not NEED technology to teach anything in standard K-12 education-- but I'd say that the technology is largely no good and its not the teachers fault. It is however their fault outside of the technology; I won't say they don't use technology as a scape goat because they sometimes do.
A greater problem is GREAT teachers are not properly promoted or evaluated. My BEST teacher was nationally recognized; but they didn't use her skills to help others after giving the award. She was instead FORCED out by politics when she'd be teaching wonderfully until she dropped dead. She washed her hands of the whole mess and still isn't being used!
Now, she'd not have won the award, because the test scores wouldn't be high. The principal gave her all the disturbed or failing kids; she had the worst of the school and they all made so much progress it was unreal (some more than others; still it was miracle work.)
Missing RANT)
Technology and Business are not models for use in education. Just because you have a good hammer doesn't mean you can treat everything like a nail... Education isn't analogous anything else.
Zero tolerance policy and standardized PAPER exams for example fit a square peg into a round hole by making something FUZZY like education RIGID like... technology. If it worked (which it doesn't) then we could replace teachers with computers, robots, and online learning. (I don't mean current online learning where humans are involved in the class...besides those are for adults anyhow.)
I TRY hard to observe students doing some of the work so I can help them; because just turning in homework and getting back a score is something a machine could be doing someday soon.
Rant 6) non experts. Would you like Obama telling you that you MUST run MAC OS on your computer? Sure it would help most the nation (windows users,) but it wouldn't make sense on plenty of computers; and be silly on embedded systems. Education shouldn't be pushed around by people who don't know jack but think they have a clue simply because they went to school. (ex: I've used a computer so therefore I know enough to outlaw everything but windows XP...)
Democracy Now! - uncensored, anti-establishment news