Slashdot Mirror


Programming Is Heading Back To School

the agent man writes "Researchers at the University of Colorado at Boulder are exploring what it takes to systematically get programming back to public schools. They have created a game-design-based curriculum, called Scalable Game Design, using the AgentSheets computational thinking tool. Annual summer institutes train middle school teachers from around the USA to teach their students computational thinking through game design and computational science simulations. What's truly unique about this is that it is not an after-school program; it takes place during regular school courses. Entire school districts are participating with measurable impacts, increasing the participation of women in high school CS courses from 2% six years ago to 38-59% now. Educators would like to be able to ask students, 'Now that you can make Space Invaders, can you also make a science simulation?' To explore this difficult question of transfer, the researchers devised new mechanisms to compute computational thinking. They analyze every game submitted by students to extract computational thinking patterns and to see if students can transfer these skills to creating science simulations."

169 comments

  1. To ask the question: by Anonymous Coward · · Score: 1, Insightful

    Why?

    Programming should be a college-level course, for those who want to go into the field. If a high school wants to offer an AP class, swell. But I just don't see the need to waste nonprofessionals' time by teaching them perishable skills they will not use.

    I simply can't explain why an average student needs to know this. Whatever they're taught, unlike English or math, will be obsolete inside a decade. I'd be thrilled if Mom knew that USB ports were pretty much interchangeable (thank you USB 2.0, 3.0, and high-power USB for wrecking that bit of simplicity, BTW). But she's scared to death that if she plugs something in wrong, hardware damage will result (thank you APC for making your "data port" [read: USB] connector the same as Ethernet instead of a USB B jack like God intended). And we're supposed to teach people like this programming? And expect it to stick? Give me a break.

    1. Re:To ask the question: by Toksyuryel · · Score: 5, Insightful

      Everyone should learn how to program, because knowing how to program gives you total power over your computer. You can only say you truly control your computer when you can use programming to make it do anything you want it to do; otherwise you are at the mercy of software vendors that seek to take that control away from you.

    2. Re:To ask the question: by Hatta · · Score: 5, Insightful

      Learning to program isn't just about learning the language. It's about conceptualizing and problem solving. Those aren't perishable skills.

      --
      Give me Classic Slashdot or give me death!
    3. Re:To ask the question: by jhoegl · · Score: 1

      Agreed,
      If they wanted to focus on programming, there are two "basic" options... HTML with JavaScript and/or Visual Basic (HA, just kidding). I mean Access type databases (AP course for sure, not because of the easy programming and scripting, but because of the database concept).

    4. Re:To ask the question: by loufoque · · Score: 3, Informative

      You seem to have a completely distorted idea of what programming is.
      It has nothing to do with knowing the different kinds of USB plugs. It's knowing how to describe a calculation so that it can be automated by a machine.

      It's essentially applied math.

    5. Re:To ask the question: by Anonymous Coward · · Score: 0

      We offer other vocational training (automotive maintenance, cosmetology, house construction), why is programming any different?

    6. Re:To ask the question: by MozeeToby · · Score: 2

      The same reason the average persons should know that a toaster works by running current through some wire coils to heat up the bread. The same reason people should know how to do basic math without a calculator. Basic programming skills simply don't go out of date. Put a 70 year old FORTRAN programmer who's willing to learn in front of any modern language and they could be up to date in a matter of weeks. Knowing how your computer works, hell, just knowing that it isn't a magical box that is impossible to understand is a huge, huge deal.

      High school should be about turning every kid into a little Renaissance Man, familiar with as many subjects as possible but experts in none. They don't have to know coming into graduation what they want to do with the rest of their life, but they should know where to start looking. That means a good base in all the essentials of modern society: language skills, math, science, computers, and yes, they should have some experience doing manual labor as well. At least then if they choose to enter the work force they'll know what they're getting themselves into.

    7. Re:To ask the question: by Anonymous Coward · · Score: 0

      No.
      Fucking.
      Shit.

      It's not about becoming a computer programmer. It's about having a set of tools (instructions), knowing what exactly each of them does, and determining which ones and in what order they should be used to solve any particular problem.

      That said, it's still fair to ask what makes computer programming such an ideal way to learn conceptualization and problem-solving. It does have several things going strongly for it, though: it's very likely that the kids will be (at the very least) using computers for the rest of their lives (if not programming them), and the school library already probably has a number of computers that are adequate to use to teach programming.

    8. Re:To ask the question: by hedwards · · Score: 1

      In elementary school I had a friend from South Korea, he came here for fourth grade, and he had already had some schooling in Basic. Granted that's a God awful language to start with, but he wasn't that smart, comparatively speaking, but it's something that was available to him in elementary school.

    9. Re:To ask the question: by khallow · · Score: 2

      But I just don't see the need to waste nonprofessionals' time by teaching them perishable skills they will not use.

      As Hatta noted, these "perishable skills" include conceptualizing and problem solving.

      I simply can't explain why an average student needs to know this.

      Perhaps that is a symptom of how you view knowledge? Everything nontrivial we learn or do has some application outside the narrow confines of the knowledge or activity in question.

      I'd be thrilled if Mom knew that USB ports were pretty much interchangeable (thank you USB 2.0, 3.0, and high-power USB for wrecking that bit of simplicity, BTW). But she's scared to death that if she plugs something in wrong, hardware damage will result (thank you APC for making your "data port" [read: USB] connector the same as Ethernet instead of a USB B jack like God intended). And we're supposed to teach people like this programming? And expect it to stick? Give me a break.

      The obvious benefit is that if you succeed in this teaching, then they won't be "people like this." The number one lesson of technology is that you have to try stuff in order to learn how it works. Once you learn that, you might still be a technophobe in abstract, but you'll be a lot less scared of your routine, personal technology and more willing to try stuff out.

    10. Re:To ask the question: by khallow · · Score: 2

      That said, it's still fair to ask what makes computer programming such an ideal way to learn conceptualization and problem-solving.

      There are two considerations. First, that some programming skill helps a lot in using spreadsheets. These are ways to monitor a family's finances or plan financial or life goals. Even for an average joe, this is a specialized skill that can pay off for anyone who saves money or makes loan payments.

      Second, programming is unusual as being a remarkably cheap and powerful means of building something of value. In other words, programming has a low barrier to entry compared to other crafts. With a few hundred dollar laptop and an internet connection, you can build programs of significant value. You simply don't need that much to get started.

    11. Re:To ask the question: by slimjim8094 · · Score: 2

      It's knowing how to describe a calculation so that it can be automated by a machine.

      I'd go further. It's about understanding your problem well enough to figure out how to *always solve it*.

      My example is Sudoku, mostly because a solver is the first nontrivial program I wrote. You need to understand the game on another level, and in an entirely different way, in order to find the answer to (effectively) all of them. "I know how to solve Sudoku puzzles" is not the same, and not nearly as powerful, as "I can solve *every* Sudoku puzzle". Making that leap from the specific to the general is what's important for people to be able to do.

      --
      I have developed a truly marvelous proof of this comment, which this signature is too narrow to contain.
    12. Re:To ask the question: by Anonymous Coward · · Score: 0

      And everyone should learn architecture so that they can design their own buildings, otherwise you are at the mercy of architects who seek to take that control away from you.

    13. Re:To ask the question: by Anonymous Coward · · Score: 0

      Learning to program isn't just about learning the language. It's about conceptualizing and problem solving. Those aren't perishable skills.

      Ignoring all the "programmers" I've interviewed and/or worked with who simply cannot design a program, but instead keep throwing code at things until it seems to work, then quit...

      That's not where the student spends their time! They spend their time learning the arcana of whatever language is being taught, and this is enough material to completely obscure the conceptualization.

      Not everyone's brain works like a Slashdotter's. Most people accomplish tasks by performing a series of steps they were taught in training. These people aren't going to be any good at designing a new procedure, for example, early on, but they will (eventually) be able to refine one. How many introductory programming courses have you had where the task was "here's the code, find the bug"? And yet that's what most programming is.

    14. Re:To ask the question: by FlyingGuy · · Score: 3, Interesting

      This year I turned my son's 4th grade class into a computer using nothing but the kids, baskets, 3x5 cards and a white board.

      You should have seen their eyes light up when it hit home that a computer is nothing but a machine that follows simple instructions.

      After one afternoon the kids were writing their own "programs"

      This is an example of 9 and 10 year old's learning problem solving and conceptualization with about $15.00 bucks worth of materials.

      Angry Birds is all the rage for 4th graders. After summer vacation and they move onto 5th grade we are going to "write" Angry Birds with the same 15 bucks worth of materials.

      --
      Hey KID! Yeah you, get the fuck off my lawn!
    15. Re:To ask the question: by Microlith · · Score: 4, Insightful

      I lose nothing by having someone else build a house to my specifications. Architects don't tell me how I can use my building afterwards, either.

      I lose a lot when a company comes along and says I can only do X, Y, and Z with something I bought, especially when they have a vested interest in restricting me.

    16. Re:To ask the question: by misexistentialist · · Score: 1

      Your mom is in high school? I can see why you'd be jaded with life already if you are reading slashdot at age 4.

    17. Re:To ask the question: by Anonymous Coward · · Score: 0

      Here in Pennsylvania I was doing BASIC and Logo in elementary school too. Hell by fourth or fifth grade I was moving on to C variants in my free time. Was probably doing some BASIC coding, in school, around 2nd grade. It wasn't something that _everyone_ did, but it was certainly available. More kids were doing Logo than BASIC though...for fairly obvious reasons I think.

      Oh, and for a reference of when this was, I'm currently a college senior. So 4th grade for me would have been...around 1999. Main reason this wasn't something everyone did, I think, was because our main computer lab for the school was still using Apple IIs. So most of this was being done on the limited classroom PCs (1-3 in most rooms).

    18. Re:To ask the question: by Anonymous Coward · · Score: 0

      Your argument does not make any sense. Software developers do not say what you cannot do with your computer. Say you buy a computer with no software, it sits there and does nothing. So you buy software to make it do something. In this case you are choosing to buy (or otherwise acquire) specific software to accomplish some task.

      The software is what actually does stuff, the computer is just a component. Software vendors are not stopping you from doing anything, they are providing a product that is capable of certain actions. If the software cannot do what you want, then use other software. Saying everyone should know how to program is just foolish, and is like saying I should know how to butcher a cow so I can have complete control over the type and cut of meat I get.

      Should I learn carpentry so I can build chairs and tables to my exact specifications and desire? I mean, if I don't then I cannot fully use this wood that I bought.

    19. Re:To ask the question: by DMFNR · · Score: 1

      By your logic gym class should be an optional college course only for students who want to become professional athletes, shop class only for those who want to become carpenters, and Home Economics only for those who choose to become stay at home moms. The point of high school is to expose a student to a wide range of studies so maybe they can find their niche in life. How is a student going to know whether he's interested in computer programming as a career unless he's been exposed to it sometime previously. A kid who's family doesn't own a computer might become fascinated by the subject after being exposed to it in school and maybe he'll actually learn a useful skill other than how to take a bong rip and shotgun a beer.
       

    20. Re:To ask the question: by Anonymous Coward · · Score: 0

      Actually, he's 12 and his mom is twice his age.

    21. Re:To ask the question: by Anonymous Coward · · Score: 0

      You'll also note that nearly all of those vocations you mentioned are *not* taught in middle school. If you want to learn to work on cars, be an electrician, plumber, or whatever else, you can do it later-on. School should be for teaching core skills and concepts, not specialized vocations.

    22. Re:To ask the question: by Alien+Being · · Score: 2

      One in a million people need understand machine language.

      One i one a thousand need to understand a high level language.

      One in ten need to understand Excel macros.

      Everyone needs to have some understanding of how computers "think".

      One in ten get by with no knowledge.

      One in a thousand pay someone to look after all their computing needs.

      One in a million control the programs.

      One in a ten million control the architecture.

      Programming was a high-school level course as far back as the 1970s and, for many, it was at least as valuable as metal shop.

    23. Re:To ask the question: by VortexCortex · · Score: 2

      Why?

      Programming should be a college-level course, for those who want to go into the field.

      Negative. I flipped an Apple IIe disk upside down on accident and began coding at the age of 8, in elementary school. Teacher was smart enough to find me a couple books on BASIC, and fortunately my step-father had a home computer -- MS DOS came with MS Quick BASIC, and a few simple games. Taking apart video games such as NIBBLES.BAS and GORILLAS.BAS jump started my programming career.

      For Christmas I got an expensive Borland C complier (on 24 5.25" floppies) -- I was selling software (shareware) by the time I was 12 (2D Doom CAD programs -- SuperVGA! -- Level & Savegame editors). Wrote my own BBS software and ran it from 3 phone lines. PUT MYSELF THROUGH COLLEGE WITHOUT LOANS.

      You, sir, sicken me. GTFO my Internet.

    24. Re:To ask the question: by Microlith · · Score: 2

      Software developers do not say what you cannot do with your computer.

      Apple does, by locking the device down. Sure you can jailbreak, but they're still telling you what you can do. Microsoft intends to, with the way they're setting up Windows Phone (and I wouldn't be surprised to see that extended into non-desktop versions of Windows 8.)

      Say you buy a computer with no software

      Show me a smartphone or other similar device you can buy without software.

      Saying everyone should know how to program is just foolish, and is like saying I should know how to butcher a cow so I can have complete control over the type and cut of meat I get.

      Some might say that knowing how to kill and dress an animal is a good thing, if only to understand where your food comes from.

      I think your point falls into the pit of the ridiculous, since computers are so integral to our daily lives that being ignorant of how they work and how to make total use of them is bordering on being a plague as bad as the rampant ignorance in math and financial planning that causes so many problems today.

    25. Re:To ask the question: by the+agent+man · · Score: 1

      While programming is part of the picture the more general goal is to teach computational thinking. The skills acquired when designing games or building computational science simulations have little to do with current high school level AP CS course offerings. The real idea is to provide general 21 Century computing skills relevant to STEM (Science, Technology, Engineering, Math) including: http://en.wikipedia.org/wiki/Computational_science#Related_fields

    26. Re:To ask the question: by Anonymous Coward · · Score: 0

      Precision of instructions/understanding the power of proper grammar alone would be a huge boon. While diagramming sentences is painful, my generation (tail of X, start of Y) did not really learn proper grammar until taking foreign languages.

    27. Re:To ask the question: by syousef · · Score: 1

      Why?

      . Whatever they're taught, unlike English or math, will be obsolete inside a decade. I'd be thrilled if Mom knew that USB ports were pretty much interchangeable

      1. I hope your mom is out of middle school. She belongs to a different generation which did deal with equipment that broke easily if you experimented without knowing what you're doing. She is not the intended audience.

      2. General programming and logic skills are no different to math and English. The underlying language with it's syntax and semantics may change, but the basic concepts of logical operators, iteration, conditional statements etc. apply to all procedural and object-oriented languages. Being able to follow through a logical set of steps is useful in just about any endeavor and profession - from baking a cake, to woodwork, to gardening to any trade or profession I can think of. Desk checking your code may not be quite the same as following a recipe but the ideas and discipline required are similar and that skill does transfer. Computing is a great way to get kids thinking about such things.

      --
      These posts express my own personal views, not those of my employer
    28. Re:To ask the question: by Anonymous Coward · · Score: 0

      Apple does, by locking the device down. Sure you can jailbreak, but they're still telling you what you can do. Microsoft intends to, with the way they're setting up Windows Phone (and I wouldn't be surprised to see that extended into non-desktop versions of Windows 8.)

      If the device had no software, it would not be able to do anything. By adding software, it can do something. If you cannot add the software you want to a particular device, then that is a limitation of the device, and perhaps you shouldn't purchase it.

      I do not think learning programming in High school is going to change what you can do with your iPhone. And I maintain that saying everyone should know programming is ridiculous.

      I am not saying you should not know how to USE a computer, but that is a far cry from knowing how to program one. You can drive a car just fine without knowing how to build one (or, as a better analogy, modify the operation of one).

    29. Re:To ask the question: by icannotthinkofaname · · Score: 3, Insightful

      Everyone should learn how to program, because knowing how to program gives you total power over your computer.

      Well, that's a stupid reason to learn programming. Do you also only think as far ahead as the next fiscal quarter? Do you only have plans to do work tomorrow, with no clue as to what your assignment in two days might be? Are you looking further ahead into the future of your living space than just next month's rent/mortgage payment? Or is programming the only thing about which you think in such small and short terms?

      Sure, power over a set of hardware is a nice immediate benefit of learning computer programming. But computer programming is so much more than that. Anyone can throw a python script together. Anyone can leak memory like crazy in C. But to wield that control over hardware in a way that accomplishes a useful purpose requires a good deal of ingenuity and (occasionally) a touch of magic.

      Teaching school-age children computer programming necessarily also entails teaching them to think differently. It teaches them to break a task down into its constituent steps. It teaches them to know exactly what they are doing and to know that they know exactly what they are doing. These are life skills that are useful to very nearly anybody, even if they don't use it to control their own hardware. The ones who want to learn it will learn to think as they must, and even the ones who memorize it for the exam will have to retain some of the skills that are necessary to write a program that does nothing more than start, do an arithmetic operation, and exit. The ones who do not learn this will simply fail the class.

      This ideal is why programming should be taught in schools. There is so much more benefit than just bending a few digital logic gates to your will.

      --
      Let q be a radix > 1. I am in ur base-q, killing 10 d00ds.
    30. Re:To ask the question: by Kjella · · Score: 1

      If you want to go into higher computer science and such then yes it's very much applied math, but the basics of it is not. For example, understanding program flow, basic object management (how do we copy/move/reference information), loading and saving information, network communication and that sort of thing. I'm fairly sure you could teach a lot of practical programming without ever going far beyond primary school math. You could at least make it to basic business app level, connect to a database, select a record, process it in some way, update it back. Append records, delete records, essentially the online equivalent of a filing cabinet. If you can make dialogs that look decent for input, pipe to reports that look decent for output... math? Not really.

      It's all about logic and structure, That also tends to help you understand math, but it's not math that makes you able to program. Typically it's not the O(n) of the algorithm, it's that you're doing it wrong. Like for example I've rewritten some really horrid SQL, I'm sure both Microsoft and Oracle has put tons of work in optimizing microseconds off the execution time but when you write a crappy query that'll take an hour instead of a minute it's really all for naught. Maybe if you work for Google or anything else with a kazillion records you really have to think new but otherwise if the basic sort operation is killing you then you're doing it wrong. Thousands of objects in memory or a million rows in a database is now light load for a computer. Nothing you do with so little data should really be straining your performance.

      --
      Live today, because you never know what tomorrow brings
    31. Re:To ask the question: by RussellSHarris · · Score: 1

      I'd go further. It's about understanding your problem well enough to figure out how to *always solve it*.

      That's well and good - if the problem is solvable. Some problems are not. In that case it might be understanding it well enough to figure out that it IS unsolvable. And in some cases you can't even efficiently determine whether or not the problem is solvable.

      --
      I find your sig to be amusingly pertinent.

    32. Re:To ask the question: by mario_grgic · · Score: 1

      This is a useful way to think of computing if you are a computer scientist or a mathematician. Most people however would be completely baffled if you asked them to give you a (informal) definition of computation. Most people would rarely mention something like finite state machines where computation is essentially "changing a state if you encounter a symbol", or even computation as symbol manipulation. Most have a rather narrow definition of computation as arithmetic, and would not recognize physical processes as computation.

      So expecting people to understand programming as collapsing the uncertainty of natural language to precise formal language description that is realized as symbol manipulator (i.e. a computer executing a program) is a bit too much.

      And this is probably not a useful way to think or to release the creative juices, since even most programmers don't view programming as such. Perhaps to some programmers, the process of programming is all about encoding/describing your problem solution discovery (i.e. knowledge) in a formal language, but there are others who don't think that way at all, and who concentrate more on different aspects of programming, esp. user experience, and human-machine interaction issues.

      --
      As the island of our knowledge grows, so does the shore of our ignorance.
    33. Re:To ask the question: by RobDude · · Score: 3, Insightful

      I hear this argument a lot. X isn't just about X, it's about all this other stuff that it sorta kinda addresses too.

      I think the question really needs to become, 'Does X teach other important stuff *better* than all of these other things we could cover?' I'm sure there are Shop teachers that would argue building a bird house or fixing a car teaches problem solving.

      You can learn a lot playing Monopoly or Checkers or Chess or Dungeons and Dragons or watching TV or studying math or programming or working in a factory. I'm not sure that programming really does a better job of teaching 'problem solving' than many other things. Procedural programming, particularly at an introductory level, doesn't seem like it would do a good job. Algorithmic programming, sure, but to get to that point you need to cover the basics and then, most of the time, I think you could have the same educational experience focusing on the problem and math to solve it.

    34. Re:To ask the question: by RobDude · · Score: 2

      I'm not really sure if it's fair to assume other people would have your experience.

      I'm sure there is some rich, successful business man who has many millions of dollars who started his first lawn care business when he was 8. That doesn't mean the key to future generation's financial success is to make them all cut grass all day. There are plenty of entrepreneurial types who do what you've done, in other areas than computer software. And there are lots of people who study computer science and never make anything worth having.

      There are plenty of people who never had to work a single day in their life because of their ability to play football or basketball. That doesn't mean we should emphasis sports in elementary school. There is only so much we can teach in schools if we add something we have to lose something. If we have 'x' hours in the day which material will be the most beneficial for the most students. Maybe CS should be included. Maybe it shouldn't be.

    35. Re:To ask the question: by Anonymous Coward · · Score: 0

      The comparison doesn't seem enlightening. You tell software company you need A, B, C, not X, Y, Z, and if they can't meet your specifications (as in the house example), you go to another software company. What would be different if the house company told you that you could only have a house with X, Y, Z specifications and you didn't like it?

    36. Re:To ask the question: by CastrTroy · · Score: 2

      Yes, except they should be taught programming as it applies to them, not game programming. Start off with teaching them how to use Excel and basic functions (sum, avg) and move on to some VB Script. Then move on to Access, and some database design with SQL and VB Script. You could then take the same skills and expand on them as needing, moving outside the office suite, making your own GUI. Just think about how much more productive the office would be if everybody understood a little basic computer programming. People could use these skills at home too.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    37. Re:To ask the question: by SomeKDEUser · · Score: 1

      Well, this is one thing where I agree with you. I would never have believed it.

      No, seriously, programming (and the practical understanding of logic that it comes with) is a basic life skill in the XXI st century.

      I think it also makes you understand something very important: trade-offs are required. At some point, you need to decide between exact and fast, or perfect and complete. If only a bit translates to the "real life", this makes for better, more adult, citizens.

    38. Re:To ask the question: by marcosdumay · · Score: 2

      If software were just a component, companies wouldn't be doing what the GP complained about. That the GP complaint is real and well documented means that software is not "just" a component.

      And computers also aren't "just" another tool. It is the tool of informatics, that is the art that is currently revolutionizing ourselves. Computers are "just" a tool the same way that reading is "just" a skill and critical tought is "just" a capability.

    39. Re:To ask the question: by grumbel · · Score: 1

      I simply can't explain why an average student needs to know this. Whatever they're taught, unlike English or math, will be obsolete inside a decade.

      The fundamentals of programming a computer have essentially not changed at all in quite a few decades. The only real difference between now and 30 years ago is that today you have more memory and CPU to waste and languages that do a bit of the stuff automatically that you used to manage manual. The core programming concepts are essentially the same.

    40. Re:To ask the question: by crank-a-doodle · · Score: 1

      exactly! it's the same as saying let's teach everyone about internal combustion engines since they are used in everyday life!

    41. Re:To ask the question: by Anonymous Coward · · Score: 0

      Yes, except they should be taught programming as it applies to them, not game programming. Start off with teaching them how to use Excel and basic functions (sum, avg) and move on to some VB Script. Then move on to Access, and some database design with SQL and VB Script. You could then take the same skills and expand on them as needing, moving outside the office suite, making your own GUI. Just think about how much more productive the office would be if everybody understood a little basic computer programming. People could use these skills at home too.

      I don't agree. Making games is so much more interesting to highschoolers than diving right into database design and all that dry stuff. I've taught students who've just came out of high school, and only after working on a game project together did they connect with the material. The cool thing is that games are much more interesting to the novice to start with, games can be as large as you want them to be and they still teach so many of the fundamental skills, as well as require the same kind of shift in thinking (thinking like an engineer if you will, breaking down problems into their smaller parts). If a student then wants to learn more about databases and these things they will have a good foundation to go from.

    42. Re:To ask the question: by chrismcb · · Score: 1

      Apple does, by locking the device down.

      Since the phone is locked down, even knowing how to program helps. You have to either jail break the phone, or ask Apple for permission to develop your own software.
      The OPs argument is invalid. He claims he can hire an architect to build what he wants. Well you can hire a programmer to build what you want as well. It just costs more money.
      No, not everyone needs to know how to program. Just like not everyone needs to know how a car's engine works, or how to fix it. Shoot I took several years of auto mechanics in high school. Rebuilt several engines. AND I am a computer programmer. Yet I doubt I could fix today's modern car.
      In today's advanced society you don't need to teach everyone to do everything (it is sort of the definition of civilization that people are able to specialize)
      My job as a programmer is to make it easy for people to use a computer so they don't have to also learn to be a programmer.

    43. Re:To ask the question: by chrismcb · · Score: 2

      I am pretty sure games apply to teenagers a LOT more then Excel and basic functions do.
      This isn't about teaching them how to do something. It is about getting them excited to want to do it.

    44. Re:To ask the question: by Anonymous Coward · · Score: 0

      If you show someone how to make a database, great... they know how to make a database. Boring - and also fairly useless unless you build an application around it.

      If you show them how to make a game, they have to learn any number of different tricks and the result is something that actually works. And you can even include a database if you want (e.g. your rooms and enemies are randomly generated on-the-fly? great, let's try improving that by creating a complete map instead and storing it in some sort of simple database).

    45. Re:To ask the question: by chrismcb · · Score: 1

      Not everyone's brain works like a Slashdotter's.

      Thank God!

    46. Re:To ask the question: by Hatta · · Score: 1

      I would like to see that demo. Do you have a youtube video or something?

      --
      Give me Classic Slashdot or give me death!
    47. Re:To ask the question: by izomiac · · Score: 1

      There are three main reasons why kids ought to be taught some simple programming. First, computers are part of everyday life and one should have a rough idea of how everyday tools work. Second, it teaches a person how to think in an exceedingly logical and literal manner, which can be useful outside of the computer. Third, it teaches people that computers are very good at doing mindless, repetitive work very quickly (e.g. learning to use mail merge VS spending three weeks writing 1,700 letters).

    48. Re:To ask the question: by Anonymous Coward · · Score: 0

      As a counter point to this realise that eventually some of these people will end up as PHB types possessing enough knowledge to hack together an Excel document which then becomes mission critical and breaks and you (being the tech savvy one) gets to fix it. Think hardcoded variables and spaghetti code with all the trimmings. Joy.

    49. Re:To ask the question: by Anonymous Coward · · Score: 1

      "total power"?

      Perhaps you mean "total power constrained by time, effort, documentation, infrastructure, etc."?

      The reason you're at the mercy of software vendors isn't because you don't know how to program or don't have total control, it's because there simply isn't enough time in the day to bother and/or compete.

    50. Re:To ask the question: by Anonymous Coward · · Score: 0

      The parent should be modded up. Specifically,
       

      Teaching school-age children computer programming necessarily also entails teaching them to think differently. It teaches them to break a task down into its constituent steps. It teaches them to know exactly what they are doing and to know that they know exactly what they are doing. These are life skills that are useful to very nearly anybody, even if they don't use it to control their own hardware. The ones who want to learn it will learn to think as they must, and even the ones who memorize it for the exam will have to retain some of the skills that are necessary to write a program that does nothing more than start, do an arithmetic operation, and exit. The ones who do not learn this will simply fail the class.

      is the only valid logical reason for teaching programming in school, and should be more than sufficient justification. Programming should be a full subject taught in every grade K-12.

    51. Re:To ask the question: by bored · · Score: 1

      That means a good base in all the essentials of modern society: language skills, math, science, computers, and yes, they should have some experience doing manual labor as well. At least then if they choose to enter the work force they'll know what they're getting themselves into.

      Well that is the intent, but good luck finding an electronics class, car repair, shop, or any number of other real life classes in a modern HS. Much less a proper economics, statistics, etc class. It is all reading,ritting and rithmatic. With a little foreign language, history and science thrown in. Whats left, one or two electives and a few odd classes.

      There are many things wrong with HS educations, but the push to smaller HS's (to increase graduation rates) also means that its harder to fill a AP calc class much less an AP comp-sci class. It seems to me that the only solutions are to radical to even be considered as possible alternatives with the current climate of cram-test-cram-test. You would think that all this focus on math/reading/etc would have boosted our international ranking on math, but it doesn't appear to have even done that.

      I'm going to have a daughter in this mess in a few years, and I don't really know what to do about it. A friend of mine has concluded the only solutions is to use the school as a social club, and do all the teaching himself at night and on weekends. Frankly, it seems to be working pretty well. The off the cuff teaching at the park, in the car, etc has put his daughter way ahead of her classmates. It really makes you wonder what exactly the schools are doing.

    52. Re:To ask the question: by Anonymous Coward · · Score: 0

      By your logic gym class should be an optional college course only for students who want to become professional athletes,

      It should be. Physical education/health yes, but sports have no place in public education. None whatsoever.

    53. Re:To ask the question: by Anonymous Coward · · Score: 0

      Yes, except they should be taught programming as it applies to perpetuating the MS monopoly, not game programming. Start off with teaching them how to use Microsoft(TM) Excel(TM) and basic functions (sum, avg) and move on to some Microsoft VB Script. Then move on to Microsoft Access, and some database design with SQL and Microsoft VB Script. You could then take the same skills and expand on them as needing, moving outside the office suite, making your own GUI. Just think about how much more productive the office would be if everybody understood a little basic computer programming. People could use these skills at home too.

      Yeah, that's what we really need to do. Teach our kids how to be the next generation of click 'n' drool MS office drones. Fuck you, buddy.

    54. Re:To ask the question: by bcrowell · · Score: 1

      Everyone should learn how to program, because knowing how to program gives you total power over your computer. You can only say you truly control your computer when you can use programming to make it do anything you want it to do; otherwise you are at the mercy of software vendors that seek to take that control away from you.

      This is completely unrealistic. Many people don't even know how to *use* a computer, or even how to type on a qwerty keyboard.

      It's also completely unnecessary. Programming skills have nothing to do with being at the mercy of Evil Software Vendors. When I install ubuntu on a new machine, here is the list of packages I install, all of them open source:

      fluxbox fluxconf menu feh numlockx aterm mg bluefish gedit texlive-full tipa ispell tex4ht dvipng ssed inkscape gimp imagemagick pdftk xpdf autotrace potrace gs-common netpbm xscreensaver pax rzip tnef pmount apt-file make flex bison build-essential git-core subversion sox transcode faac faad vorbis-tools alsa-utils festival bplay soundstretch lame perl-tk libterm-readkey-perl libdigest-sha1-perl libdate-calc-perl libclone-perl libterm-readline-gnu-perl md5deep libxml-simple-perl libmail-sendmail-perl libjson-perl libgtk2-perl libunicode-maputf8-perl libpar-packer-perl libyaml-syck-perl python-dev libperl-dev automake g++ gnome-devel libpng12-dev libgc-dev libgtkmm-2.4-dev libgsl0-dev libboost-dev libcurses-perl libxerces-c-dev install libgcrypt11-dev libcurl4-openssl-dev libexpat1-dev apache2 apache2.2-common libdbi-perl libdbd-sqlite3-perl dvd+rw-tools curl xclip recode atop htop ruby eruby ocaml-core emacs23-bin-common pan sqlitebrowser lilypond audacity xmix gtick madplay poc-streamer libstdc++6 yacas clisp konqueror dh-make debhelper fakeroot ltris frozen-bubble liquidwar liquidwar-server moon-lander scummvm gnupg autoconf openjdk-6-jre openjdk-6-jdk gnuplot bittorrent bittorrent-gui

      Suppose I had no programming skills -- how would that change this list? Suppose I had the programming skills of Donald Knuth -- how would that change this list? Suppose the authors of some of these programs make changes I don't like, or don't maintain the program as well as I'd like so it causes me hassles, or make changes that break backward compatibility. Wait, you don't have to suppose, because it's already happened in several cases: xpdf, perl-tk, sox, ruby, lilypond. Are you suggesting that because I have some programming skills, these problems aren't problems for me? That in the cases where they made changes I didn't like, I should just maintain my own fork? That in the cases where they did a bad job of maintenance, I should do it for them? That when they break backward compatibility, I should maintain my own fork?

    55. Re:To ask the question: by DMFNR · · Score: 0

      While I understand the view that the energy wasted on high school and college level sports could be spent much better on academic pursuits, sports are a huge income source for a lot of schools, and with out them a lot of other more worthwhile programs would disappear as well.

    56. Re:To ask the question: by SanityInAnarchy · · Score: 1

      It's all about logic and structure, That also tends to help you understand math, but it's not math that makes you able to program.

      Sure it is.

      I mean, aside from the fact that all programs are, in fact, mathematical expressions, there's the fact that mathematical thinking is exactly what programming is. I'm not talking about O(n), I'm talking about logic, recursion, sets... Maybe basic calculus seemed really unrelated, but it seems like the more math I learn, the more closely related it is to the coding I've done.

      Like for example I've rewritten some really horrid SQL, I'm sure both Microsoft and Oracle has put tons of work in optimizing microseconds off the execution time...

      Even stuff like software engineering, though. Math, particularly trying to prove interesting things in abstract spaces, trying to get this idea you have clear enough and concrete enough that you can write it in symbols, flexes all the same mental muscles as trying to write a program from scratch, or refactor it to make way for a new feature (or just because it was ugly)...

      Of course, learning math won't teach you to program, but it will make you a better programmer.

      --
      Don't thank God, thank a doctor!
    57. Re:To ask the question: by Anonymous Coward · · Score: 0

      With programming, there's an immediate effect and you're the one that made it happen. It can be exciting!

      Children love that crap.

      Personally I think the whole elementary school math stuff should be completely revamped. If they're in high school, it's too late for most people.

      It doesn't have to be C. It doesn't even have to require typing. I remember learning to program LEGO Mindstorms in 3rd grade. It definitely changed my life forever. Especially after I switch from the silly default software to robolab (super simplified based on LabVIEW thing).

      It might be something stupidly simple to any programmer, but to someone who has never done it before, it's a fantastic feeling. I've seen it multiple times, when it suddenly just clicks for them.

      Anyway, get 'em while they're young! Causality and basic logic. Give them those and they'll go far.

    58. Re:To ask the question: by SomeStupidNickName12 · · Score: 1

      Anything that teaches problem solving is incredibly valuable. Whether it is programming, studying math, fixing a car etc...

      It is the number one problem in society today, people can't problem solve. I see it every day with companies I do work, nobody can solve the problems so they pay me as an external vendor/consultant to do it for them

    59. Re:To ask the question: by IICV · · Score: 1

      I'm not sure that programming really does a better job of teaching 'problem solving' than many other things. Procedural programming, particularly at an introductory level, doesn't seem like it would do a good job

      Oh god it does. You're just speaking from the perspective of someone who already knows how to program, and probably hasn't tried to help someone else struggle through the process.

      Look, fundamentally, in order to program in a procedural language, you must be able to come up with a procedure. In order to accomplish A, you must do things B C and then D.

      Sounds simple, right? But you would be surprised at the number of people who just don't get it. I've seen people execute printf("%d", x); before x = 5, and wonder why they get zero (you've got a nice compiler, that's why).

      You would think it ought to come naturally, but to a lot of people it just doesn't. It's like to them, the order in which things happen is set in stone by some unknowable force, and they are utterly helpless to understand why. Why can't we have candy after we brush our teeth before bed? Because, that's why. There is no causal connection between the two events, it's just the immutable will of the Universe that you not do so.

      And then, when it comes time for them to create their own causal chains, when it comes time for them to put 5 into x and then print it out on the screen, they are utterly lost - they have no idea what the immutable will of the Universe is in this case, so they just guess. And then sometimes it works, hallelujah amen, and sometimes it doesn't and they'll never know why.

      So yeah, I think programming does teach an ancillary skill better than pretty much anything; it teaches you that the order in which things happen matters, but even more than that it teaches you that you can figure out the order in which things should happen. For some reason a lot of people never really seem to realize this.

      (They're the sort of people who are deathly afraid to deviate from a recipe (even if it's something as minor as using a different brand of chocolate chips), because they might somehow offend the immutable will of the Universe)

    60. Re:To ask the question: by hairyfeet · · Score: 1

      And you sir should learn how to design and build automobiles, otherwise those nasty engineers get to decide what kind of car you should drive! Oh and with all the low level "code jockey" jobs being offshored this is about as smart as teaching them to be factory workers don't ya think?

      As someone that knows BASIC (and later VB) because that was the only way to interact with a computer at the time let me say that particular "skill" has been about as useful over the years as being able to whistle through my eyelids, that is to say not really useful at all.

      Want to teach kids something useful? How about deductive reasoning 101? How about basic computer security, like what to look for to spot a phishing attempt, or how they will NOT win an iPad by punching the monkey in a flash game and then giving all their info to the nice pop up? Or why clicking on everything and anything sent by email is a bad idea?

      This was cooked up by someone who has fond memories of the late 70s/early 80s and the DIYer scene then I guarantee it, but you know what? The world has changed since then. Guys don't go around hacking their own amps from parts at the Shack anymore, Chinese amps are too cheap to bother, we don't go around hacking the computers at school anymore to have them tell the teacher they suck (although I admit that WAS fun) because you are libel to get labeled a cyberterrorist and have the cops tearing your place apart looking for a Guy Fawkes mask. Likewise teaching programming to EVERYBODY, including those that aren't going to be programmers? More than just dumb, it is a waste of the kid's time and limited resources because very few low level code monkey jobs if any will be left onshore by the time they graduate.

      Hell teach them how to change out basic parts on their cars, like shocks and fanbelts, it'll be more useful to them than teaching them how to animate a giant penis which is just about all a good 99% of them would do with this particular "skill" today, sorry but its true.

      --
      ACs don't waste your time replying, your posts are never seen by me.
    61. Re:To ask the question: by sourcerror · · Score: 1

      Well, in shop class or chemistry class children can be injured, however you can teach programming at a very early age (9-10 year olds).

    62. Re:To ask the question: by sirlark · · Score: 1

      Learning to program is not about learning a language, it's a bout learning a thought process and how to express that process through language. Like other languages, it's easier to learn when you're young. Sure the language they learn may be obsolete, but the thought process is useful forever...

    63. Re:To ask the question: by Xest · · Score: 1

      Agreed, really the goal should be to spend more money on improving Math education in the West to make it more attractive, more interesting, and just generally taught to better standards.

      I'm a programmer, and have loved and lived computing most my life, but really, taking a maths degree was the best thing I ever did. It made learning and applying computer science stuff as well as many other things easier than ever.

      I agree with the GP that those abilities are important, but I agree with your point more that the question should then be what's the best way to teach those abilities, and IMO it's math because it underlies everything- and teaches problem solving in a far more generic and more widely applicable manner.

    64. Re:To ask the question: by haxwk · · Score: 1

      Algorithmic programming, sure, but to get to that point you need to cover the basics and then, most of the time, I think you could have the same educational experience focusing on the problem and math to solve it.

      Couldn't you just teach algorithms to children with some high level language that handles most of the advanced mathematics in abstract ways that they would understand? And actually, if you've ever taken a computer science course, most teachers will show you how to break abstract, every day tasks into simple routines and how this thinking applies to computers and programming in general. You actually learn about algorithms first and then step into how these routines are resolved mathematically. You could theoretically teach children bubble sort by setting up some kind of abstract system (i.e. blocks with numbers written on them) with set constraints that would force them to algorithmically sort the blocks with the same routines a computer would use.

      This actually coincides with what you said about how games like checkers and DnD can teach kids problem solving skills because it IS a form of game. Of course forcing a kid to organize blocks "bit by bit" wouldn't go over so well; even as a programmer myself, organizing blocks doesn't sound like much fun. But there are plenty ways to spice up bland routines with satisfying visuals. Just think of how many people spend hours and hours grinding in MMOs just to fill up a percentage bar and call it "fun".

      Programming is ubiquitous enough to where there is an undeniable advantage to at least knowing about it. There's no reason why we shouldn't at least give students the opportunity to appreciate the subject. Think of the look on a kid's face when they learn that the game they were playing is actually completely beatable with a five line script.

    65. Re:To ask the question: by Cant+use+a+slash+wtf · · Score: 1

      The exact same argument could be used to say everyone should learn how to be a mechanic.

      Wait, does that count as a car analogy?

    66. Re:To ask the question: by TheRaven64 · · Score: 1

      You seem to thinking that 'math' means 'the subset of mathematics that is of no practical use to anyone'. The mathematics that programming teaches you is a subset that has a lot of practical applications beyond programming, but that doesn't mean that it isn't mathematics.

      --
      I am TheRaven on Soylent News
    67. Re:To ask the question: by TheRaven64 · · Score: 1

      For the same reason that we teach children to write, even though most of them won't become writers (actually, I did, and I've almost forgotten how to hold a pen). Being able to program now is at least as much of an essential life skill now as being able to write was a hundred years ago, probably more. How many activities these days don't involve a computer to some degree? If you understand programming, then you understand how to make the computer do the tedious bits of these activities.

      --
      I am TheRaven on Soylent News
    68. Re:To ask the question: by TheRaven64 · · Score: 1

      Damn right. Schools have no place in teaching teamwork or competition! And if they must teach these things then they definitely should make sure they don't do it in a way that might be fun!

      --
      I am TheRaven on Soylent News
    69. Re:To ask the question: by Schadrach · · Score: 1

      Why?

      Presuming we're talking about electives (and I know *I* had slots for electives during the normal school day starting in Jr High in my schools) and not core required courses, then why not? Seriously, having as broad a base of electives available as possible can only be good.

      I'm pretty sure an "average student" didn't "need" the electives I took in Jr High or high school, but I'm certainly all the more well rounded as a result.

      I took the same view to my college electives as well, with my required humanities and SS electives including a semester of world history, one of economics, and one of philosophy, plus a semester each of psychology and sociology I took as a dual credit course in high school.

    70. Re:To ask the question: by One+Monkey · · Score: 1

      I actually wish I knew a bit more about these from a practical standpoint. I know the theory but have never really messed about with even a simple one. I feel the lack. Mechanics seem like shaman to me.

      --
      www.nodicerpg.com - Some RP stuff for free, some not so for free, but still cheap.
    71. Re:To ask the question: by Schadrach · · Score: 1

      I had one course where we were given a basic spec in a formal notation, lectured some on theory, and told to hand in our project at certain milestones. The project was the only gradable thing in the class. We were writing a compiler. If that doesn't get you understanding "here's the code, find the bug" is the majority of what you will do, then nothing will. Especially when the spec itself contains a "bug" (in the form to two contradictory rules such that by the grammar provided a line could exist that both was and was not a comment -- this was included [and the rule that made it a comment was placed after the one that made it a statement] specifically to ensure that just blindly following the spec without thinking about it and questioning it would royally screw you). Also the simulated processor our compiler was to produce object code for had undocumented "features" (much like real processors have a bad habit of having -- I actually had an entire book on such features in x86 series processors, including ways to tell individual series of certain processors apart by support/lack thereof for alternate forms of certain instructions, like the fact that "POP CS" was only valid in one x86 series processor) to make things a bit more interesting/realistic.

    72. Re:To ask the question: by MechanicJay · · Score: 1

      +1 I'd love to see how you set this up.

    73. Re:To ask the question: by sg_oneill · · Score: 1

      This is about teaching kids. I learned to program as a nine year old , hacking away on a "Dick Smith Wizard" 4k computer and a Basic cartridge trying to figure out how to make games. It crash coursed me on some basic maths that put me on a flying start when we started algebra in highschool , and set me up with a life-long interest in math and computing that 25 years later earns me a pretty decent wage. That whole concept of "Can't fix your computer? Ask your kids" started with our generation, and it was ALL ABOUT making games. Believe me, I'd rather have hit a cricket ball about than learn to make excel macros, but I sure as hell was interested in making my own dream variant of space invaders.

      And I saw the dynamic again later in life as a music teacher. Sticking an unwanted instrument in a kids hand and ordering them to play scales and classical songs leads to kids who resent the instrument and never learn. Get the kid to bring in tapes of his favorite songs, teach them how to play it and the theory behind how the songs chords and melody work, and you'll have a kid whos facinated with scales and theory.

      The kids can move onto serious stuff later when the fire has been ignited in their belly. The first task is to teach them to code.

      The beauty of games too is that for all the fun involved, the kid has to learn some maths too, 2D geometry (including stuff like pythagoras' triangle equasions etc) and then right onto the meaty stuff with 3D like matrixes and stuff. Its stuff that tortures 16 year olds when presented as rote math, but you teach it in the form of game programming (Ok, this math will let you transform a spaceship in 3D, but first we gotta learn what it means and why it works) and I guarantee kids will learn it in a jiffy.

      And thats the beauty of it all. Kids learn best by playing, its actually how our species is wired, so make the boring stuff like math into a game and transform it into interesting stuff.

      --
      Excuse the Unicode crap in my posts. That's an apostrophe, and slashdot is busted.
    74. Re:To ask the question: by ElizabethGreene · · Score: 1

      I would absolutely love to see well taught programming classes available in high school. Unfortunately, that is not going to happen until the schools get out of the ever-more-desperate race to meet the no child left behind standards.

      I originally supported the NCLB ideas. I was wrong.

    75. Re:To ask the question: by vlm · · Score: 1

      A kid who's family doesn't own a computer might become fascinated by the subject after being exposed to it in school and maybe he'll actually learn a useful skill other than how to take a bong rip and shotgun a beer.

      In other words, getting a business degree, to become our bosses.

      --
      "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
    76. Re:To ask the question: by WNight · · Score: 1

      Ignoring all the "programmers" I've interviewed and/or worked with who simply cannot design a program, but instead keep throwing code at things until it seems to work, then quit...

      That's a little bit of knowledge for ya... btw, make sure your interviews contain some actual coding. Like you'd ask a cook to cook before hiring them.

      That's not where the student spends their time! They spend their time learning the arcana of whatever language is being taught, and this is enough material to completely obscure the conceptualization.

      Depends who teaches them and how they do it.

      I could show you how to program in Ruby, Scala, or LISP, (and have seen others do so in Haskel and other languages) in such a way you hardly notice the syntax.

      Not everyone's brain works like a Slashdotter's.

      Bullshit. (At least before school gets too them.) Almost everyone is capable of learning something like algebra or programming or auto mechanics or child care, etc. It just needs to be presented in a way they care about, and if they do have any learning disabilities, helping them find their own coping techniques.

      For instance, don't teach spreadsheets, wait till your child wants money (for a toy or something) and ask why and what they'd do with just a little more or a little less, etc. Once they have the idea of refining their plans they'll want something that does what a spreadsheet does and you'll just have to let them see you use it for a similar problem that you're researching.

      Most people accomplish tasks by performing a series of steps they were taught in training.

      Largely because they don't understand there's a better way and weren't taught anything complex enough to require more. If you know the material you're teaching deeply enough you can construct a problem that's easy if done right but terribly tedious if not impossible if done the wrong way. Then you explain the mental model you wish to convey and those who listen finish instantly and their struggling peers not only have a motive to improve but also evidence their classmates can do it.

    77. Re:To ask the question: by narcc · · Score: 1

      Programming should be a college-level course

      Why? I'm willing to bet that a significant portion of this sites users we're writing BASIC programs on their micros before the age of 10.

      I also recall a number of studies in the 80's introducing computer programming to younger children via Logo.

      I just don't see the need to waste nonprofessionals' time by teaching them perishable skills they will not use.

      Don't be obtuse. Programming is a skill that is entirely separate from the language you used to learn it. Those skills ALSO transfer seamlessly to non-computer areas; I can think of no better way to teach critical thinking and reasoning than through computer programming.

      It should be taught in elementary school and be part of the curriculum all the way through high-school.

    78. Re:To ask the question: by narcc · · Score: 1

      If the device had no software, it would not be able to do anything.

      Just toggle in a loader with the front console switches.

      Oh, wait...

    79. Re:To ask the question: by narcc · · Score: 1

      Teaching school-age children computer programming necessarily also entails teaching them to think differently.

      Damn Apple fanboys!

      All kidding aside, I couldn't agree with you more. You don't teach kids computer programming so that they can all go out and write computer programs. Well, you put it best:

      It teaches them to break a task down into its constituent steps. It teaches them to know exactly what they are doing and to know that they know exactly what they are doing. These are life skills that are useful to very nearly anybody, even if they don't use it to control their own hardware.

      It's all about critical thinking and reasoning. Just about every educator I know claims that they "integrate critical thinking skills" into their lessons -- but I've yet to find one who can articulate how. It's more "the right thing to say" than something that they actual do. By teaching computer programming, we have a chance to actually teach those skills.

    80. Re:To ask the question: by narcc · · Score: 1

      Brillaint! Any chance you can post your lesson plan & notes online somewhere?

    81. Re:To ask the question: by Toonol · · Score: 1

      The language will be obsolete, but so what? The language is not the important thing you learn from a programming class.

      What you learn is the concept of unambiguously breaking a process down into discrete steps. Abstracting a general behavior from a bunch of particulars. This is good for everybody to learn, even if they will never touch a computer again. It's valuable in nearly any job you're ever going to work.

      It certainly shouldn't be a university-level course; if you don't already know how to program when you get to college, I doubt you'll ever learn to be a competent programmer.

      I think those people that you talk about would have benefited greatly from a little programming course in their high-school days... even if it was an early version of BASIC that was long obsolete.

    82. Re:To ask the question: by icannotthinkofaname · · Score: 1

      Damn Apple fanboys!

      All kidding aside, I couldn't agree with you more.

      Thanks. All kidding aside, for the record, I hate Apple as much as the next Slashdotter. Linux FTW, damn Apple's tyranny, and all that.

      Seriously, anyone who's gonna pay $99 per year just to get the iDevTools deserves to have whatever they want posted to the App Store. And screw the whole "Unix for people who don't need a computer" thing.

      --
      Let q be a radix > 1. I am in ur base-q, killing 10 d00ds.
    83. Re:To ask the question: by narcc · · Score: 1

      Basic. Granted that's a God awful language to start with

      Why? It seems like a perfectly good language to start with to me.

    84. Re:To ask the question: by Toonol · · Score: 1

      And then, when it comes time for them to create their own causal chains, when it comes time for them to put 5 into x and then print it out on the screen, they are utterly lost - they have no idea what the immutable will of the Universe is in this case, so they just guess. And then sometimes it works, hallelujah amen, and sometimes it doesn't and they'll never know why.

      That's very eloquently stated.

      Maria Montessori tells the story of a woman with a young child. The child had put their dirty shoes on their bed; the mother scolded the child, put the shoes on the floor and then brushed all the dirt off the bed.

      The next day, the child took off his shoes, proudly placed them on the floor, and then went to his bed and brushed it vigorously, to get rid of the non-existent dirt.

      It's not surprising that a child learns to replicate particular behaviors, rather than learning and acting based on the reasons for those behaviors. As you grow, you should learn to examine lessons more deeply; unfortunately, that appears to be a skill that some people have a very hard time learning.

      Programming in itself isn't a necessary thing to learn; but if programming can be utilized as a tool to give people experience with these reasoning techniques, it may certainly be helpful... in the same way learning a second language can be immensely valuable, even if it is never learned... or how learning to play chess can assist your judgement.

    85. Re:To ask the question: by Toonol · · Score: 1

      Physical education/health yes, but sports have no place in public education. None whatsoever.

      I somewhat agree. Kids need to be given some sort of physical activity; this could be as simple as running circles around the playground, or could be organized into games or sports; the latter makes some sense, since most kids enjoy that.

      But the idea of having having sports teams, competing with other schools, I agree; it's ridiculous and has nothing to do with the purpose of school. It's an anachronistic holdover.

    86. Re:To ask the question: by Kjella · · Score: 1

      I mean, aside from the fact that all programs are, in fact, mathematical expressions,

      This is a bit like saying psychology comes from brains consisting of neurons, neurons obey the laws of nature and those laws are applied math so psychology is applied math.

      there's the fact that mathematical thinking is exactly what programming is. I'm not talking about O(n), I'm talking about logic, recursion, sets.

      Sure but you hardly need a degree in math to understand how to loop through all items in a list, even if that is an extremely rudimentary application of math. How to structure a program isn't a deductive logic like developing theorems from axioms in math, design and structure is more informal logic that is argued not proven. I'll admit recursion is very useful, though I doubt most understand it beyond "if I find a folder inside the current folder, browse through that in the same way" to explore a tree structure.

      Of course, learning math won't teach you to program, but it will make you a better programmer.

      Absolutely. I just contended the claim that it's applied math, at least not any of the mainstream math. Maybe if you take a degree in set theory and boolean algebra then sure, but knowing fourier transformations or complex number math won't help you program one bit unless that's what you're trying to implement. We need some of those deep theorists too, but it's hardly what you need to slap together a new insurance claim processing form.

      --
      Live today, because you never know what tomorrow brings
    87. Re:To ask the question: by manicb · · Score: 1

      Should I learn carpentry so I can build chairs and tables to my exact specifications and desire? I mean, if I don't then I cannot fully use this wood that I bought.

      You should learn some woodwork skills and have a reasonable understanding of what carpenters do. You should be able to plane a door to make room for a new carpet, and recognise when broken furniture is worth taking to a craftsman for repair and when it is firewood. These are basic life skills, and plenty of analogies can be drawn to what is considered "advanced" computer use.

    88. Re:To ask the question: by crank-a-doodle · · Score: 1

      yes but you can still google around and stuff! it is not absolutely neccessary for you. If suppose you're an arts student with absolutely no interest in combustion engines and still it is stuffed down your throat... catch my drift..

  2. Let them.. by intellitech · · Score: 1

    Let K-5 and non-math-geniuses from 6-8 bring graphing calculators to school. Parents shouldn't care, since most kids will need one for later math classes anyway. The only people that would be bothered by this would be the teachers. Me and my friends would always play BASIC and ASM games on these devices during our free time in 7th grade algrebra. Later on, I eventually started reverse engineering games like phoenix, and, the amusingly-named, "pimp wars." It was good fun, and got me interested, which is really all you need these days.

    Primary Point: Get kids interested, one way or another, and give them somebody/somewhere to direct their questions to.

    --
    vos nescitis quicquam, nec cogitatis quia expedit nobis ut unus moriatur homo pro populo et non tota gens pereat.
    1. Re:Let them.. by Anonymous Coward · · Score: 0

      And, he is in no way advocating games like "pimp wars." Those games have naughty words, and give catholic kids nightmares.

    2. Re:Let them.. by Anonymous Coward · · Score: 1

      ...and who's going to be paying for that? The kids who can afford graphing calculators aren't the ones who need help here.

      Hell, I'm a comp sci major, from a somewhat wealthy family, and I never owned a graphing calculator...nor has anybody I know. Sure, we used them in highschool...but we borrowed them from the school. Those things are _way_ overpriced, and far too expensive to expect even that even a miniscule percentage of kids would be bringing their own to school, even if it was encouraged. What the hell kind of parent is going to buy their K-5 kid a $100+ _calculator_???

    3. Re:Let them.. by im_thatoneguy · · Score: 2

      I had a friend in highschool who played "Drug wars" on his palm pilot. One day his mom was snooping on the palm pilot and found an itemized list of drugs, payments received, payments pending etc...

      Confusion and hilarity ensued.

  3. What about automechanics? by Anonymous Coward · · Score: 1

    Back 40 or 50 years ago working on cars was very popular and all school-age boys were building hot rods in their garage. There is less interest in building hot rods because it's harder to invent something in your garage which has not been done before without a team of people helping you. The same could be said with computers and programming.

    1. Re:What about automechanics? by Anonymus · · Score: 1

      That's exactly the reason I went into programming. As a developer, it's possible for me to single-handedly create something revolutionary. Not just that, but I can do it with minimal resources, anywhere in the world. I may not ever do it, but at least it's possible. If I had gone into, for example, some sort of medical research, I would need to spend years working my way up through research positions, assuming it's even possible to find the positions anyway, and I'd be greatly limited by lab equipment supplied by employers, working as a small part of a team, etc. Not that there's anything wrong with that at all. In fact, I'd say it's better, and that's how most things are accomplished. It just wasn't for me.

    2. Re:What about automechanics? by slimjim8094 · · Score: 1

      Unfortunately, and ironically, computers are too prevalent in cars to really be able to do that nowadays. I knew two kids in HS a couple years back that were building hotrods, but they were building the same hotrods you were talking about - '70s Corvettes and GTOs and things. Modern cars are really too complex to take apart and fiddle with, unfortunately.

      --
      I have developed a truly marvelous proof of this comment, which this signature is too narrow to contain.
    3. Re:What about automechanics? by russotto · · Score: 1

      Unfortunately, and ironically, computers are too prevalent in cars to really be able to do that nowadays. I knew two kids in HS a couple years back that were building hotrods, but they were building the same hotrods you were talking about - '70s Corvettes and GTOs and things. Modern cars are really too complex to take apart and fiddle with, unfortunately.

      It's not really the computers are the problem; you can get replacement engine computers that can be programmed to change the timing and fuel injection if you care to. It's that there's so much less untapped potential in modern cars. Car makers don't make cars with basically powerful engines but with crappy exhaust, strangled intake, very mild cams, etc. Nor is the casting and machining still so sloppy that hand-porting can get you massive gains (still some, just not as much).

    4. Re:What about automechanics? by bored · · Score: 1

      Modern cars are really too complex to take apart and fiddle with, unfortunately.

      Bah, total BS. You can do plenty of fiddling on a modern car before you hit the electronics. Modern hot rod kids start by replacing headers, injectors, boost valves, etc. The computers all work around that, often to some advantage. Then you start buying alternate fuel/air maps, and other computer mods. There are even open source ECU mods and even open source ECU's. A quick google search like http://www.google.com/search?q=open+source+ECU shows a few. The first hit is "RomRaider" which is a totally GUI application for tweaking the maps and doing real time data logging. You don't even need to know how to program. In fact, with a utility like that you don't really need much in the way of specialized tools to start "tuning" your car. A laptop a couple open source programs (ECUflash) and an OBDII cable and your on your way.
      Course bricking your only car might suck...

  4. How things have changed by RogueWarrior65 · · Score: 1

    It's funny that back when I was in high school in the early 80s and we were one of the few schools that had a PDP-11/44, an IMSAI 8080, and some TRS-80s, the head of the computer program got all pissy if he saw us writing game programs let alone playing games and now game software is a multi-billion dollar industry.

    1. Re:How things have changed by marcosdumay · · Score: 1

      Multi-billion dollar industry or not, faculty members still get pissy if you use their computers to play games (unless it was the assignment).

    2. Re:How things have changed by Anonymous Coward · · Score: 0

      Back then, if a software store began carrying games, you knew they had about 6mo. in business remaining. Happened every time (except for the times I didn't notice, which don't count).

    3. Re:How things have changed by Anonymous Coward · · Score: 0

      Funniest observation ever!

  5. A change of mind? by WoollyMittens · · Score: 0

    Wasn't the consensus to outsource the actual work to China and save the Americans for the difficult work of being middle manager morons and sales cretins?

  6. Catering to the neo-serfs are they ? by Ex-MislTech · · Score: 3, Insightful

    I taught myself BASIC at 13, and Assembler at 14.

    I wanted to do it, but little else so college didn't work for me,
    so I dropped out.

    Later I saw that ti would shift to countries that can pay their
    coders less, and US firms went for it a great deal and or
    brought them to the US via one of the 73 different Visas.

    So while I am glad to see them do something for those
    with this desire, it came about 3 decades late for me.

    Good Luck to all the neo-serfs under the new world order.

    --
    google "32 trillion offshore needs IRS attention"
    1. Re:Catering to the neo-serfs are they ? by Anonymous Coward · · Score: 0

      Such the optimist ... conspiracy theory much?

    2. Re:Catering to the neo-serfs are they ? by Relayman · · Score: 1

      I was going to put it as teaching this generation's coal miners but you put it better. At least you don't get black lung when you're an unemployed coder.

      --
      If I used a sig over again, would anyone notice?
    3. Re:Catering to the neo-serfs are they ? by xaoslaad · · Score: 1

      Maybe you should go finish school. Tne ability to write proper sentences is usually considered a valuable skill regardless of your profession.

    4. Re:Catering to the neo-serfs are they ? by Anonymous Coward · · Score: 0

      Not everyone is going to be a software engineer, but pretty much anyone who uses a computer (which is going to be almost everyone) will likely gain by being able to automate things or at least have a concept of what can be automated. Maybe it will just amount to knowing enough to know that a task they are doing could be automated by a Word/Excel macro. Or maybe it will mean being competent to come up with the requirements for a larger programming task.

      Also, as someone who recently got a degree in computer science, I am wondering WTF you are talking about. There are plenty of high paying jobs in the US for programmers.

    5. Re:Catering to the neo-serfs are they ? by TheThiefMaster · · Score: 1

      I have a working (graphical) snake game I wrote in QBASIC (self-taught) saved from the month I turned 13 (the code is of course horrific). School didn't teach me any programming either (I self-taught a variety of languages though), until taking a university course in computer game programming. Fast forward to the present day, and I have one shipped PC/360/PS3 game on my resumé and am a year away from adding a PS3-exclusive to that.

      I live in the same economy as you, had the same opportunities. The difference is that I didn't drop out. I followed my dream.

  7. NCLB by Black+Parrot · · Score: 1, Informative

    From what I've been told, most school districts have ditched whatever programming curriculum they once had because the standardized tests don't include it, so it's a distraction from "teach the test".

    --
    Sheesh, evil *and* a jerk. -- Jade
    1. Re:NCLB by hedwards · · Score: 1

      You get what you test. You don't get what you don't test. It's a side effect of our deciding that we're way behind the rest of the world in general without actually bothering to do any investigation.

      The other aspect of it is that as more stuff gets crammed into the curriculum, something is going to be left out and that thing is always one of the items that's not on the tests.

    2. Re:NCLB by Anonymous Coward · · Score: 0

      Wait they actually took it out? Damn didnt know that. That makes a lot more sense why there are so few getting into it. You are only going to end up with those who *REALLLLLY* want to do it.

      If it hadnt been for my programming classes at that level I would have probably never done it. I never knew it was fun until I was doing it. I would have never even considered it.

    3. Re:NCLB by the+agent+man · · Score: 1

      Yes, if programming is an isolated activity done only in the computer class then this could be the result. But if one teaches more general notions such as computational thinking in a way that they become relevant to science, math and even art then computing education becomes a literacy relevant to many aspects of education. A crazy dream, you may comment, but for instance one of the school participating in the Scalable Game Design project has become THE US National Middle school of 2011 in part because they have shifted to this new model of integrating computing into their math and science courses very successfully. It can be done!

    4. Re:NCLB by kenh · · Score: 1

      Teachers distract parents when they start talking about 'teaching to the test' - the tests were designed as assessments, indicators of a schools progress, not an exhaustive, all-inclusive inventory of the only things students need to know.

      The tests are designed to identify weaknesses in the instruction, and by resorting to rote memorization and occasional cheating, issues in our public schools get buried under by standardized test scores.

      Standardized tests are so skewed now it's amazing - kids in my district 'prepare' for them, are coddled by parents and teachers (have a big breakfast, don't assign homework, keep the school silent, tell kids to get extra sleep, etc), but the amazing thing is, none of these tests are traceable back to an individual student in any meaningful way - they aren't feedback mechanisms to gauge little Johnny's performance, they are used to keep the federal government out of failing districts/schools, and for teachers to justify ever-greater salaries. Don't believe me? Have you ever heard of anyone being contacted after the standardized tests and been told that your son or daughter has a problem with complex fractions, US History, or reading comprehension? I bet not, but I bet you know the school district's collective ranking compared with other school districts in the state...

      Teachers choose to teach to the test (or the administration directs them to, either way, same effect) - parents need to explain to teachers/administrators, we want good students, not good test takers, and if the teachers simply teach the way we (the parents of today's students) were taught 20+ years ago, these assessment tests will take care of themselves.

      --
      Ken
    5. Re:NCLB by Anonymous Coward · · Score: 0

      Not so, My high school offers a strand that looks like this
      9 Intro to Computers --- IC-3 Objectives and Exam
                                There is an advanced track for students who pretake the IC-3 with good scores
                                They spend 1 semester on completing IC-3 and one on early programming skills (LOGO, SCRATCH, and I am looking at
                                  the new Google game programming material)
      10th Grade Computer Repair and Networking Year one
      11th Grade CS-1 Concentrating on Microsoft MTA curriculum for Development Fundamentals (and use of Certiport MTA exam)
      12th Grade CS-2 JAVA AP course culminating in AP exam

      For the upcoming year our "normal" 2200 student comprehensive school jumped from 9 to 72 students enrolled for CS-1

      Running parallel to all of this is an IT curriculum of same 9th and 10th but 11 and 12 are MTA and CompTIA Networking and Security Curriculum.

      Running parallel to that is a similar Web Design Curriculum and a WEb Design Staff that runs an on-line sports site co-sponosored by iHigh.com

      This is at a school that two years ago only taught keyboarding. Where there is a will and a plan there is community support and a way.

  8. Ok... by boast · · Score: 1

    My highschool offered programming as an elective. You either took it because you were interested or you didn't. Are they going to jump straight to openGL?

  9. Java? by Anonymous Coward · · Score: 0

    What the hell is with the java tag? It's using a home rolled graphical language similar to scratch.

    1. Re:Java? by Anonymous Coward · · Score: 0

      What the hell is with the java tag? It's using a home rolled graphical language similar to scratch.

      Correction: scratch is similar to AgentSheets (which preceded it by only 10 years) not the other way around!

      Why the Java tag? AgentSheet compiles into .class files (one can look at the Java source) and one can write language plugins in Java

  10. teach relational algegra instead by Anonymous Coward · · Score: 1

    I'd be happy to see an increased emphasis on teaching algorithms and data structures. But I'd be happier if students learned relational algebra. Microsoft Access or similar would be a perfect vehicle for this, not too big, not too small, easy to relate DDL to their input and output representations (i.e. forms and reports). It's not Access or SQL per se that's important, but the relational database concepts which you must learn to use the effectively. I know a bajillion programmers, and almost none of them understand relational databases at all. So they re-invent the wheel badly, or they lean on the object serialization layer of some framework they like to figure everything out for them, and have no idea how to deal with anything the framework doesn't understand. If you know databases, but not programming, you can get real things done. If you know programming but not databases, you can create a big mess in a hurry.

    1. Re:teach relational algegra instead by the+agent+man · · Score: 1

      The objective of the project is to motivate middle school kids in computer science through game design. Have you stepped into a middle school recently? I think you would hold kid's attention for about 2 minutes with gripping stories of relational data bases.

    2. Re:teach relational algegra instead by layer3switch · · Score: 1

      I think you would hold kid's attention for about 2 minutes with gripping stories of relational data bases.

      2 minutes of rapping and dancing to the beat of popular Hit Pop or obscure R&B rhythm, stories of relational databases will be told. Inspired by song and dance of relational databases, we'll all end up with American Idol rejects, crushing their hopes and dreams, forcing them into dire poverty and teaching them the lessons of importance in education. In the end, they will produce children, which is our ultimate goal, computer scientists.

      --
      "Don't let fools fool you. They are the clever ones."
    3. Re:teach relational algegra instead by Anonymous Coward · · Score: 0

      Yes, I have been in a middle school recently. Often, in fact. I guess I must have overlooked the fact that education really means entertainment, and if it's not as fun as duke nukem, it's not worth the effort. I think your post, scoffing at the notion of, you know, heads down real work, perfectly illustrates why this country is being overrun by ignorance. Kids are perfectly capable of hard work, dedication, and perseverance in pursuit of education. It's people like you who teach them it's not worth the bother if it isn't fun. Fun is important too, but it is not part and parcel of every human endeavor, even for children. If you have kids, keep them out of my kid's classroom.

  11. DOE & Government is destroying everything. by Anonymous Coward · · Score: 0

    Seriously, both you and I had the same interests in learning BASIC and then Assembler (I was x86), but
    then when you see these condemnable educators pushing to unbalance education into these specialized tasks then it will only destroy the economy in ways that other trades and skills will disappear to more fiscally-responsible countries. Who's business is it to demand a child need to know this? What ever happened to learning reading & writing, advanced mathematics, scientific method with minor chemistry and physics knowledge, and then the student persue their interests in thier own competivive leisure of bias from their family heritage?

    It's as though government wants to run everyone's lives. It's getting verry pathetic that there are so many idiots that accept every failure in the economy as their own rather than the hard evidence that a government in mistrust is steering them into bad choices to ensure government expansion to supposedly resolve these failures.

    I studied all these comuting sciences as an EXTRA-CURRICULAR activity because I learned enough of the basic ingredients of life to persue it, while others actually payed someone to get into my field of expertise: the government gave them the credentials, and despite I gaining the greater scope of knowledge I can't get hired as readily becaus government is intending more secure it's self-preservation by managing the employment process through a tiered system of Degrees.

    All is the same with dictatorships: the drug cartels, the warlords, the monopolists, because they are intending to micro-manage everyone to be a fit example of their reign to demand of everyone devotion away from the common good but the image of their oppressors to which all are sedated from ever knowing the responsibility of their choices but to seasonally blame a foreign foe as the causes to invade and expand into those nearby countries.

  12. Whoa! by elsurexiste · · Score: 1

    Until I read this article, I had totally forgotten that a teacher taught me Logo on primary school.

    So many memories, like the time I learned to replace words from a text, first we had to write a story with certain highly-uncommon words, and then they would be replaced for their synonyms (hilarity ensued!). And the time I saw an implementation of Battleship and I thought "Gosh, I'll never do that, it's too hard..."!

    It was easy to pass (we were six/seven years old after all), but it was my first contact with my current profession. They don't teach programming nowadays, and it's a shame (I'm 24 btw). It teaches you to be organised and to think on the purpose of what you're writing.

    Thank you /. for bringing those memories back!

    --
    I rarely respond to comments. Also, don't ask for clarifications: a brain and Google are faster, believe me!
  13. Agent Sheets 3: $99 per licence per kid !?! by leftie · · Score: 2

    My dear old great-grandmother had this saying from the old country. It went something like this..
    "$99 bucks per license per kid. Go Fuck Yourself!"

    I had a cool great grandmother. Like she said, this is exact reason charter schools and privatization of public schools is nothing but legalization of theft of public property.

  14. Keep it free... by Anonymous Coward · · Score: 0

    I don't understand, why not teach them python and how to run games on google app engine? It's free to host, google would be all over giving them publicity, and if it gets big enough that the kids need to pay for their game then they're likely making money off they're game already.

    1. Re:Keep it free... by JoeCommodore · · Score: 1

      I agree, set up a nice introductory course with Python, its a pretty easy to grasp cross-platform language, that could be used by beginners and then id they wish to explore more they have the basic knowledge and the tools to do more readily at hand. Any dumbed down "education-specific language" would be a disservice if you want to foster truly skilled graduates.

      As far as the first post - I learned programming in High School, BASIC, it got me interested enough to learn more languages and practices and get better. Never made it to college and I do make a living programming.

      --
      "Enjoy what you're doing! If it becomes drudgery, you're doing it wrong!" - Jim Butterfield
    2. Re:Keep it free... by the+agent+man · · Score: 1

      python is a great programming language but to suggest to use it at the middle school level in required courses does not make a lot of sense. We are not talking about the Friday afternoon computer club here.

  15. This will turn off some portion of students by Bruce+Perens · · Score: 2

    Had I been presented with an educational program based on games, I would have hated it.

    The very first program I wrote did real work that I needed done. All programs that I've written since then have also done real work. In this, I was assisted in this by the fact that I was a communication arts major and could choose my own path in learning computer science without the interference of an instructor. I went on to work at Pixar and to be credited in their films, and to be one of the founders of the Open Source movement in software, etc.

    I've never liked games very much, and to be able to do something real with the computer made it much more exciting.

    Not everybody learns the same way.

    1. Re:This will turn off some portion of students by koreanbabykilla · · Score: 1

      agreed bruce. no one knows my name, but I enjoy solving real problems also. seems slashdot has gone to shit tho lol. the last few post i bothered to reply to have been yours.

    2. Re:This will turn off some portion of students by Anonymous Coward · · Score: 0

      It's nice to see someone else say what I was thinking.

      The "students will only be interested in programming if we relate it to something they know" idea gives short shrift to student's imaginations. And, currently at least, sets them on a career path with less-than-savory employment options.

      As you say, why invent virtual work when you can solve real problems?

    3. Re:This will turn off some portion of students by hairyfeet · · Score: 1

      Not to mention as with every other class currently taught it will quickly become "teach to the test" where kids will spill off the same rote answers and will be actually "learning" in the same way one "learns" by memorizing a list. Should make a nice chunk o' change to the ones pushing the software, $99 a license? Nice job if you can get it.

      As someone who ended up homeschooling his kids because of "teach to the test" frankly schools would be better off if they taught a more rounded educational platform with actual electives kids that were INTERESTED could take. In my area anything not able to be taught to the test? Promptly dropped.

      Frankly I'd say the DOE and trying to educate from Washington is a big part of the problem and teaching kids to memorize the problems on the test makes it so teaching them programming will be as worthless as the other "skills" taught in public schools. Hell I've had to deal with HS grads that can't even accurately count the change in their pockets, why? Teach to the test doesn't emphasize basic problem solving, it is all memorization.

      --
      ACs don't waste your time replying, your posts are never seen by me.
    4. Re:This will turn off some portion of students by Anonymous Coward · · Score: 0

      Have you ever considered that even in grade school, some curriculums allow for elective courses?

      Not interested in programming for gaming? It's more than likely that it may not be the only computer class. Go take some other more practical programming class that may be offered.

      You're also neglecting the audience. It's grade school kids. Most could care less about database sorting, or things of that nature. As far as interest goes, why not just take yet another computer class on how to use MS Office?

      When I was in grade school, the only programming related classes taught some very general stuff in BASIC or LOGO on Apple IIe computers. And more often than not, I found that covering screens with "Hello world!", doing basic math, or making "madlibs" soon lost their novelty. It would get boring, and we'd try to figure out ways to draw really simple pictures or getting the computer to beep in various (and annoying) ways. If you were particularly clever, you might even have found enough I/O stuff to mess up a floppy or make the dot-matrix printer do line-feeds or print out garbage. Kids in class knew games existed, but at the time the instructor was far from qualified to cover something like game programming and course materials inadequate for self-instruction on that topic. There was maybe one kid ahead in making more "fun" programs because he had the same kind of computer at home and likely some help from dad, an uncle, or an older brother.

      I think most kids that got into programming in the 1980's would give more credit to the Commodore 64 and Atari computers they had at home. Primarily because they had the manuals, magazines, and BBS and/or computer club printouts that explained almost everything, and the computers were easier to use for doing "fun" stuff. They had color graphics with sprites, multi-channel sound, and programming languages that allowed for shorthand when entering code. The much more expensive monochrome Apple IIe or primitive PCs most schools had then simply didn't offer anything near that kind of experience.

      Today's computers can do just about anything, so why not offer that option in school?

    5. Re:This will turn off some portion of students by Anonymous Coward · · Score: 0

      Hey now, Processing is awesome.

    6. Re:This will turn off some portion of students by Anonymous Coward · · Score: 0

      so movies are more "real" than video games ... ?

    7. Re:This will turn off some portion of students by ShakaUVM · · Score: 1

      Mm, it doesn't have to be programming per se to teach fundamental concepts. I credit LogicWorks (is that the name) on the old Apple IIe to giving me a solid foundation of how to assemble complex AND / OR / NOT gates in the correct way.

      Robowars was a great way to learn programming too, as your code was directly used to hunt and kill your competitors... taught basic code concepts, interrupts, and so forth.

    8. Re:This will turn off some portion of students by plcurechax · · Score: 1

      You did note that it is an education program for teachers, designed to give them material to teach to public school (primary / elementary and secondary school) level students, that is under 18.

      And because it is important to stress this point, this material is intended to be taught by teachers, not programmers, to any student. The goal of such a program should be basically to look behind the curtain of prepackaged applications and understand the basics, in general terms, of how computer systems (hardware and software) work. Whether they become programmers (or do other IT job) is irrelevant, the first goal of education is knowledge. It is also an opportunity for students to try to experiment, and to be creative, where students with strong mathematics, logic and analytic skills may find easier to express themselves creatively rather than in essay writing assignments in English (or other language) classes where linguistic and writing skills are more ambiguous and subjective when it comes to evaluation.

      Motivational agents for children include: social contact (& status), monetary, and entertainment. Most kids don't have much real-work that needs to be done / automated. Of course there are exceptions, but they are just that, exceptions.

    9. Re:This will turn off some portion of students by Bruce+Perens · · Score: 1

      We're not really educating from Washington. Shamefully, the "No Child Left Behind" act which is responsible for replacement of two weeks of education each year with testing which isn't returned to the student in time to do them any good, and for giving the most powerful push to schools to teach to the test, is the product of my former congressman out here in the San Francisco East Bay.

      Which brings up an important point. There is not some faceless enemy called "Washington" that does bad stuff to you from a distance. That is your own representative whom you elected.

    10. Re:This will turn off some portion of students by Bruce+Perens · · Score: 1

      Children frequently engage in constructive play, or Lego would not be so popular. My 10 year old's favorite toy, right now, is an architectural CAD system that was intended for adult use. He found this himself and demanded that I buy it! He throws off houses and landscapes, complete with 3D rendering, on a daily basis.

      If you decompose play you can break it down into various motivators: social, competitive, entertainment, and constructive, and no doubt others. Nurturing that constructive urge is one of the most important things we can do in childhood education.

    11. Re:This will turn off some portion of students by hairyfeet · · Score: 1

      Must be nice to have choices where you are Mr Perens, where i'm at the choices are "rich corporate suckup in a blue suit" or "rich corporate suckup in a slightly darker blue suit". Every D we have elected turned out to be a DINO, every R turned out to be the same as the D. Where is the choice there? Even on the local level being on the meth highway your choices are "Guy already bought by the narcos" or "guy that will be bought by the narcos 3 minutes after election" again where is the choice?

      The simple fact is that Citizens United put the final nail in the coffin that was elections Mr Perens, not that they had really been functional for several decades. With a two party system the answer is to simply buy off both sides, it ensures whomever wins follows the corporate line. We have reps leaving their post to take cushy jobs from the companies whom they gave big favorable deals, you have Obama sticking RIAA lawyers into jobs where they'll be deciding what happens to file share defendants. How's that hope and change working out for ya?

      Thinking you can solve anything from within the system, unless your name is Gates or Dell or you have your own lobbyists, is like your HS football team thinking they can win against the Broncos, with the refs paid to ignore any Denver penalties just to make sure. To quote the late Bill Hicks" I believe the puppet on the left share my beliefs, well I believe the puppet on the right has my interests at heat hey wait a minute, there is one guy working both puppets!" Sadly the man has been gone 20 years and his words are even more true today.

      --
      ACs don't waste your time replying, your posts are never seen by me.
  16. It's how I got started. by darkwing_bmf · · Score: 1

    Making up games in BASIC got me started on the path to a good career.

  17. Does anyone else find this insulting? by Anonymous Coward · · Score: 0

    I would think the youth of today would find the attitude that we have to make games to get kids interested a little narrow and insulting. Especially now with people seeing iPhone and other computer applications directly affecting them. I think a better way to approach this is to encourage students to think about problems that need to be solved, or solved better than they currently are. I think that will make them better motivated.

    I'm never really cared for gaming, I was always interested in something more connected with the physical world, I suspect I am not the only one.

    1. Re:Does anyone else find this insulting? by chrismcb · · Score: 1

      I'm never really cared for gaming, I was always interested in something more connected with the physical world, I suspect I am not the only one.

      You might not be the only one, but you are in the minority.

  18. Buzzword Alert by Anonymous Coward · · Score: 0

    Computational thinking. Prepare to be hearing that a lot. For a while. Then, not so much.

  19. Disappointed programmers by cstdenis · · Score: 1

    There will be a lot of disappointed programmers from this program when they get out into the real world and find 99% of the jobs are building programs to generate TPS reports.

    --
    1984 was not supposed to be an instruction manual.
    1. Re:Disappointed programmers by Anonymous Coward · · Score: 0

      I LIKE generating TPS reports you insensitive clod.

  20. Monads in the school by german1981 · · Score: 1

    Many times when I see Haskell or Scala examples using some techniques from category theory I end with the same conclusions: the abstractions used in category theory are very very simple if we compare them with other disciplines, but the lack of exposure to them, and the related way of thinking, makes figure out how to use them very hard. Maybe with initiatives like this, the day comes that we can manage monads with the same ease as we do with simple algebra.

  21. someone watched The Oxford Murders... by layer3switch · · Score: 1

    Kalman will be proud. This is mad, I tell you, MAD!!!

    --
    "Don't let fools fool you. They are the clever ones."
  22. Why? by Anonymous Coward · · Score: 1

    I'm a software developer, and have been for the last 12 years. It is a thankless job. Despite a graduate CS degree and an MBA from Duke, I cannot not be a programmer because the industry wants to hire people with a two week PMP bootcamp degree to run projects they know nothing about, at least in the US. The secret to advancing out of the industry when you're tired of learning some bastard's yet another new Java framework de jour, is to not have been a programmer ever. Otherwise, they'll push you deep under their thumb and never let you out.

    Had I to do it over again, I'm not sure I would have wanted the tour in the first place, but if I did, I think I'd rather be a doctor, a lawyer, chemist or farmer. But definitely not another pissed on programmer. But then, maybe I'm a little bitter and biased.

    1. Re:Why? by Anonymous Coward · · Score: 0

      You're not the only one who's bitter and biased. The Dilbert principle is very real; career-wise, competence is the first step on the road to ruin.

      But why? Why are people with honest to god skills who work hard given such short shrift in the workplace? Because sometime between the amazing accomplishments of the greatest generation (no exaggeration - look around) and ours, there was a fundamental shift in workplace organization: the idea of 'management' as it's own specialized discipline. Instead of working your way up through the ranks, being gradually promoted on account of proven accomplishments, gradually assuming supervisory responsibility over younger less experienced people coming up behind you, if you'd like to be a manager today, you have to come in sideways. It's a horrible model, fraught with nasty class distinctions (class mobility in the US has almost completely stalled). We have no end of parables about the military officer who gets in over his head in real combat, it's a common theme in movies, books, etc. But in real life, that's the way things work now. The world is being run by people who, quite literally, don't know what they are doing. It's a great way for the children of the upper class to retain their status without getting their hands dirty, so it's no wonder this philosophy is sold by colleges and universities - that's how they get their hands on Daddy Warbuck's money. We need to motivate smart people to go to trade schools. If we're going to fight a war, we must institute the draft. The rich complain all the time about "class warfare", but they are the ones keeping everyone down, and shipping working class kids off to combat. Class war? I'm all for it.

  23. Gamemaker by rubberbando · · Score: 1

    They should consider using Gamemaker instead as it's much more powerful and a lot cheaper (Free for Lite version and $40 for full version versus $120 for AgentSheets)

    --
    DEAD DEAD DEAD DELETE ME
    1. Re:Gamemaker by Anonymous Coward · · Score: 0

      AgentSheets is made by the CU professor who's heading the program.

    2. Re:Gamemaker by oheso · · Score: 1

      ... and it goes into an infinite launching loop if the school's filter is set to block games.

    3. Re:Gamemaker by Anonymous Coward · · Score: 0

      Yeah, and I am sure you say this because you have actually tried to make a game or science simulation with AgentSheets. But can middle schools students and teachers really use Gamemaker to
      - export projects as Java applets?
      - build complex games with ten thousands of objects running efficiently?
      - create games with sophisticated game AI for collaborative agents?
      - make science simulations including plotting, export to Excel, scientific visualization, ...
      - be used with all its features in the light version? AgentSheets take-home edition for students is for instance $20 and is full featured
      - help with debugging at the semantic level showing why your program does not do what you think it should be doing?

      I guess the answer to all these questions is all NO. Gamemaker is neither more powerful nor cheaper. Last time I checked game design is not in the curriculum. Computational thinking tools for schools need to be able to support game and science applications. Gamemaker is fine tool for basic games but is simply is not made for this.

    4. Re:Gamemaker by Anonymous Coward · · Score: 0

      Can middle school students and teachers really use Gamemaker to
      - export games made as Java applets to the Web?
      - build sophisticated games with ten thousands of objects to run efficiently?
      - make scientific models including plotters, export to Excel, scientific visualization?
      - implement sophisticated AI with collaborative agents?
      - visualize what the program would be doing to anticipate potential programming problems?

      I guess the answer to all of these questions is NO. Also, there is a $20 take-home student version of AgentSheets which, unlike Gamemaker light, is full featured.

      In conclusion: AgentSheets is neither less powerful nor more expensive than Gamemaker. More importantly, however, to be suitable for school use a computational thinking tool simply must support more than game design. You know, game design is not part of the regular curriculum. The fact that AgentSheets can be used to make games AND science simulations is not just a nice feature in K-12, it is essential!

  24. Ignorance by SuperKendall · · Score: 1

    "$99 bucks per license per kid. Go Fuck Yourself!"

    I wonder then what she would say at the cost of "traditional" textbooks.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  25. Significant power, then? by SanityInAnarchy · · Score: 1

    Yes, there are constraints, but there are also plenty of problems I run into on a daily basis which I can solve, much more easily and cleanly, because I am at least Unix-savvy and also a programmer.

    For example: I'm not sure I want to write my own browser -- actually, I kind of do, but who has the time? -- but userscripts and extensions mean I can hack up websites quite easily. Right now, most webcomics I've ever read, I've added keyboard shortcuts to. (Except XKCD, which already had them!)

    Or, take personal data -- suppose that, for whatever reason, someone has the email addresses of a few dozen (or hundred) people they want to send an email to, all in an Excel spreadsheet, and now they want to send a message to all of them via GMail. Will copy and paste work? It will if you save to CSV first, and if that fails (maybe someone has a comma in their name), a script to parse out the actual email addresses from that CSV is trivial.

    Here's a weird one: My parents are financial advisers, and every quarter, they get quarterly reports for all their clients in a single giant PDF. The old approach was to print, then physically mail them. Apparently, they are allowed to email these, but you don't want to email everyone's reports to everyone else. But how do you split a PDF? I found a commandline tool to do that within a few minutes of learning about this problem, and I wrote a GUI to do something similar to a mail-merge, but with different regions of the PDF sent to each person.

    And that's just the office-drone stuff.

    A little knowledge can be dangerous -- I actually kind of wish there were less programmers in the world, and not just because I want job security -- but even so, programming comes in handy quite often, and without spending inordinate amounts of time. Quite often, I think, "I wish it did that," and I can make it happen.

    --
    Don't thank God, thank a doctor!
    1. Re:Significant power, then? by sg_oneill · · Score: 1

      I've got the oposite problem, I want more programmers in the world so I can give my job to some kid and become his boss and get off this bloody codemonkey treadmill I've been on for 20 years.

      --
      Excuse the Unicode crap in my posts. That's an apostrophe, and slashdot is busted.
  26. Citation needed by oheso · · Score: 1

    So, the obvious questions. So, the obvious questions, if you're going to claim this program brings in the girls and teaches programming skills: - Control group where as much time, money and effort was put into teaching programming with other attractive goals (e.g., video making vs games)? The control mentioned in the study is apples/oranges - They're figuring out if they are teaching programming by having the teachers examine the students' work to see if computational patterns are there. And how is this superior to handing the kids a problem involving the computational pattern they're looking for and seeing if they can suss it out?

  27. Can't we just make programming more in general? by revjtanton · · Score: 1

    I love this article and what the goal of this is! Programming and developing has been an absolute passion of mine for years, and it's been my career for at least half as long. My only qualm with this is that we're still dupping kids into this. Programming can be fun no matter what you're building! The problem, in my view, isn't teaching space invaders vs. a tip calculator; the problem is that the teaching gets monotonous, too many concepts get repeated course to course, and only about half (or less) of what is taught in schools is actually useful to get a job!

    I'm not just complaining either. Together with a couple of guys I've put together a site http://wibit.net/ (as of this writing the site is down for maintenance, check http://twitter.com/wibit_usa for when we're back up, or to just check out some of the videos from now and older ones check out http://youtube.com/wibitnet :-) offering free video tutorials on how to get started in computer programming. We've done a few intro courses and C and C++ (23 hours of video my partners and I worked our asses off on) and we're doing this linearly. We're not repeating concepts, we're not monotone, we're telling jokes and making it entertaining! That's what it should be about, having fun with what you're building.

    It is awesome that schools are trying to engage kids with this, I just think that can happen by offering them an engaging curriculum and not a gimmick (not to say game programming is a gimmick, but how they're pitching it they're using it as one).

  28. What movement killed it in the first place? by tyrione · · Score: 1

    I can't believe that in the mid-80s classes in Basic, the IBM PC, Apple II and even C programming were available in high school. Today? Not a chance. The same downsizing of the traditional trades was another idiotic maneuver.

  29. We are already doing this at our high school by HW_Hack · · Score: 1

    Our tech teacher designed this type of approach 3yrs ago and its a popular class. Using Gamemaker software gets kids into the class who might not go for straight up programming. The path is: Game Design 1, Game Design 2, then Java. At that point students can continue on to advanced Java projects that they define themselves. The other neat thing we do is in the Game Design 2 class there is is 1 large project - students form into teams of 3 and then they are matched to 1 or 2 Art students. They learn to work as a team with the art students doing sprite and background design.

    You grouchy old timers need to remember that back in the day '70s-'80s computers were still an uncommon and exotic thing. And I can recall being thrilled to pound out BASIC or Pascal or C programs. These days kids are surrounded by computers (and flashy programs) from birth. So naturally I don't think they would be drawn to a pure code environment immediately, but after a couple of terms of learning programing basics creating games --- they can see the possibilities.

    --
    Its not the years, its the mileage .....
  30. Why not have more project classes? by drolli · · Score: 1

    I am a strong fan of teaching creative things like programming in a project based way. It does not matter if they write a VB script which simplifies their lifes, a small web-spider which searches trough the local school web page or program a small game, whatever they like. Teachers just just make sure its doable and assist if help is needed.

    1. Re:Why not have more project classes? by Anonymous Coward · · Score: 0

      There's the catch. Most teachers don't know how to program and don't care to take the time to learn either. They are too busy trying to keep the state happy with statistical results that don't really mean much.

  31. Real work by sourcerror · · Score: 1

    Will, to do real work they have to know the problem domain. And to be honest, writing games is more fun than writing a prime number seeking program.
    Also, one man's "real work" is another's useless fluff.

    P.S.:
    Since when does "a communication arts major" do real work?

  32. Re:Agent Sheets 3: $99 per licence per kid !?! by kenh · · Score: 1

    Charter school typically cost less than 'traditional' schools, so I'm not sure how her "$99" saying relates...

    Charter schools do one thing most public schools do not - they put the children first - they are non-union. Don't think that makes a difference? Did student performance increase or decrease after tenure was introduced in your district? Given the choice between an 'out of control principal' firing teachers without cause (the teacher's union favorite justification for tenure) or a couple hundred teachers that are not accountable for their students performance (which is what I contend tenure does), I'll choose the out of control principal every time.

    Every time.

    --
    Ken
  33. LOGO in the classroom by damitr · · Score: 1

    Seymour Papert describes his attempts and the results in introducing LOGO in schools in Mindstorms: Children, Computers and Powerful Ideas. Another book The Children's Machine he describes how and how not to use computers. Finally one of his students Idit Harel presented her thesis work on precisely this topic: How children learn when they have some programming task to do in Children Designers. For all those who want the efficacy of such methods there are loads of references in all three books.

  34. The problem is the teachers by Murdoch5 · · Score: 1

    With out a doubt the problem is the lack of education present in the teachers. In grade 8 I outpaced my teachers at least 10 to 1 in computer knowledge, probably 20 to 1 in fact. When we had a project to design a game for science class I used C and programmed a TUI based game. Before even starting I asked 3 different ways if the C code would work on the computer and if I had a compiler, after being told yes 3 times I went ahead and 2 weeks laster brought my project in and surprise I couldn't compile or run it.

    My teacher then looked at me and said "How do you expect me mark this, it's code" , I told her "Well being I'm a student and your the teacher and you should know more then me I don't know". Needless to say she was pissed at me. About one week later the other grade 8 teacher asked me if it was possible to save an image from the Internet to her computer. They also had never heard of Linux and didn't know how a simple network worked. They knew the cable had to be plugged in but then a magical address appeared.

    The reason so many kids weren't taking programming is because the teacher that are / were bringing up kids in the school have the level of intelligence of most preschool students. They READ the textbook to you, because they don't know the information. They READ the bible to you because they don't know the content, they COPY tests from a teachers manual and they MARK based on a defined set of instructions. The modern teacher is no more advanced then a punch card and a tape server.

    What we really need is qualified teachers in the school system. Programming should be moved to elementary school, now it could be there now, I don't know to be fair. At least start with something like BASIC in grade 6 and then very very slowly introduce simple C by grade 8, no harm done if the students don't like it they can move on. For the students that are interested they now can carry it forward, after all they teach Shakespeare in elementary school and how is that any more valuable?