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."
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.
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.
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.
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.
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?
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"
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
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?
What the hell is with the java tag? It's using a home rolled graphical language similar to scratch.
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.
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.
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!
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.
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.
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.
Bruce Perens.
Making up games in BASIC got me started on the path to a good career.
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.
Computational thinking. Prepare to be hearing that a lot. For a while. Then, not so much.
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.
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.
Kalman will be proud. This is mad, I tell you, MAD!!!
"Don't let fools fool you. They are the clever ones."
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.
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
"$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
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!
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?
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).
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.
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
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.
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?
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
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.
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?