Beta

Slashdot: News for Nerds

×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

A High School Programming Curriculum For All Students?

timothy posted more than 5 years ago | from the combat-pay-for-teachers dept.

Education 214

jonboydev writes "I know there have been many postings on what kids should begin programming with, but I have a little different perspective: I am a software developer looking to help my brother, who is a high school teacher, develop a programming curriculum. The catch is that it is a class for all students to take, not just those interested in programming, and therefore will focus heavily on teaching problem solving. This class would follow after a class using Lego MindStorms, and we are planning on using Python. I'm sure many of you would agree that everyone can benefit from learning to program and any help would be greatly appreciated!"

cancel ×

214 comments

Good luck with that (1, Interesting)

munrom (853142) | more than 5 years ago | (#27134019)

You're going to have a mandatory programming class? Christ it's hard enough teaching the kids to save Office 2007 files as 2003 and you expect them to comprehend programming? It'd be like trying to force everyone to do physics, a complete waste of time.

Whoa there... (2, Interesting)

KingSkippus (799657) | more than 5 years ago | (#27134165)

The catch is that it is a class for all students to take, not just those interested in programming...

I read this as, "It is a programming class available and accessible to everyone, not just geeky programming students; it is 'programming for normal people.'" Not, "All students must take this class."

Could be wrong, though. Maybe the submitter can clarify...

Re:Whoa there... (1)

Jurily (900488) | more than 5 years ago | (#27134263)

I read this as, "It is a programming class available and accessible to everyone, not just geeky programming students; it is 'programming for normal people.'" Not, "All students must take this class."

That wouldn't be a catch.

Who the hell banned non-interested people in the first place? And why?

Re:Good luck with that (2, Insightful)

Anonymous Coward | more than 5 years ago | (#27134189)

But i have heard of a lot of people that after programming for the first time loved it so much, they changed their future career plan.

Re:Good luck with that (2, Insightful)

BrotherBeal (1100283) | more than 5 years ago | (#27134337)

I concur - the same happened to me. Of course, programming had the sizable advantage that a Latin degree isn't worth nearly what it was 1,000 years ago.

Re:Good luck with that (3, Insightful)

jgtg32a (1173373) | more than 5 years ago | (#27134713)

It didn't work like that for me. In high school I was very happy to take a programming class using C, technically C++ but we never got to objects, but when I got there it quickly started to suck.

Our teacher was a bastard, all of our assignments were text processing, using functions that we had to write our selves. I could do it but it sucked and wasn't fun so I basically swore off programming for the next two years of high-school.

In college we had to take a programming class which I wasn't overly happy about. The language we used was Perl, and there was a good amount of text processing in that class also but it didn't suck for two reasons.

1. We used a language that was appropriate for the type of assignments.
2. The class was well ordered, we had an end goal, we were given a project at the beginning of class and every assignment was designed to help us complete the project.

Re:Good luck with that (1)

dkleinsc (563838) | more than 5 years ago | (#27134229)

The better approach would be to make programming a part of, say, the pre-calculus course, or maybe make Algebra II a prerequisite. If you do that, you end up with students who have a good background in math and logic (in theory at least) and are ready for a bit of applied discrete math.

That said, I've taught the basics to bright and motivated 12-year-olds.

Re:Good luck with that (1)

SatanicPuppy (611928) | more than 5 years ago | (#27134623)

I missed the logic part of Algebra II. Maybe you meant Geometry?

Having actually majored in Logic and Comp Sci at different times, I can safely say that the 2 paltry logic-ish courses, and three proof-free math classes most compsci students have to take are no substitute for a hard-ass class in deductive proofs.

Since logic and reasoning are hardly ever taught at the high school level, it might be better to just have an "applied logic" class with a programming element. Make 'em program in Prolog, and do first order (non-modal) logic problems.

That would be a cool class.

Re:Good luck with that (1)

MongolJohn (942570) | more than 5 years ago | (#27134247)

Welcome to Modern Bureaucracy-Driven Education. We now try to teach to the highest common denominator. I have to teach Algebra 2, including matrices and determinants, polynomials, logarithmic and rational functions, series, etc. (i.e. college-prep curriculum) to kids who don't plan on going to college, and never plan on leaving the farm. To more directly address the problem at hand, Guido van Robot is a fun, engaging, interesting intro to programming. And it is written in Python.

Re:Good luck with that (1)

N3Roaster (888781) | more than 5 years ago | (#27134387)

Really? I had a (completely useless) mandatory programming class in the 7th grade (it was in BASIC on an Apple //e and I had already been offered programming jobs at that point [not that they could have hired me, but they didn't know how old I was]) which if memory serves, all in the class managed to pass. I also managed to teach most of my 4th grade class basic HyperTalk (on an Apple IIgs) when weather made outdoor recess unappealing. The problem here isn't that the students won't get it (assuming the class is kept accessible and the teacher is engaging). The problem here is that high school is pretty late to start doing this. By that time, students interested in this will have already learned the material of the class (if the class is mostly kept to basic concepts and problem solving) or students who have not previously been exposed to programming will get lost pretty quickly (if students who have already figured out the basics are going to stay engaged). My advice would be to keep things basic so that those who haven't been exposed to programming can still get some value out of the class while being flexible enough to let students who can demonstrate that they don't need that develop more advanced skills (perhaps separate them off, toss them a reference manual, and give them a moderately challenging project to do instead).

How about Alice? (3, Informative)

KingSkippus (799657) | more than 5 years ago | (#27134023)

Disclaimer: I haven't actually tried this, so this isn't an endorsement, but...

Have you considered taking a look at Alice [alice.org] ? It's the free system worked on by the late Randy Pausch to teach programming without jumping straight into coding. From the site:

Alice is a freely available teaching tool designed to be a student's first exposure to object-oriented programming. It allows students to learn fundamental programming concepts in the context of creating animated movies and simple video games...By manipulating the objects in their virtual world, students gain experience with all the programming constructs typically taught in an introductory programming course.

Re:How about Alice? (3, Informative)

BigMike1020 (943654) | more than 5 years ago | (#27134443)

My father teaches a college course using Alice. It's sort of a programming for non-computer-science majors class. I've sat down with him a couple of times and played with the program. I suspect that for someone who doesn't have any programming experience Alice is really fun (creating movies, making things move onscreen), but for someone with any experience its all just a hassle. Too many mouse clicks and drags are needed to get simple things done, and sometimes the natural-language style of the program isn't as natural-language as you want it to be.
But if it's a free program it can't hurt to try it out yourself.

Re:How about Alice? (1)

fermion (181285) | more than 5 years ago | (#27134907)

I have used Alice in an informal setting with about 2 dozen adolescents. It does teach some basic programming concepts like loops and conditionals. It is OO based, so students get into the habit It is very engaging. Average students will use it with minimal prodding. The two books that I use, Learning To Program with Alice and An Introduction to Programming Using Alice are very good. A motivated student can go through the book and learn a great deal about programming concepts.

The Alice tutorials introduce the program to the point where the student can start some initial concepts.

I think Alice has some applicability in the world of visual based programming where the level of abstraction is not as great as in traditional code based programming. For instance, Alice will likely not teach a student to truly abstract a concept into variables or how to swap values. It might teach high level architecture concepts, but probably not actual program design. It is probably the closest we have to programming for everyone, simply because it does not require the abstraction that makes coding so difficult for so many people.

JavaScript? (1, Interesting)

mgkimsal2 (200677) | more than 5 years ago | (#27134033)

I'm a bit biased, but JavaScript might be something worth teaching in addition to Python. It's in everyone's browser already, so no need to download anything. Can more or less work well on server-side or client-side (I'm not a SSJS guru, so I don't know if there's any major gotchas). It has a moderately simple syntax, and whitespace isn't as important as in Python.

Re:JavaScript? (1)

pmarini (989354) | more than 5 years ago | (#27134525)

It's probably better to learn with tighter rules first that can be relaxed later... otherwise you'll never convince someone that a camelBump may not fit in a NeedleHole (case sensitivity) or that you need to type a semicolon at the end of each line when a BASIC dialect was your best friend...

Re:JavaScript? (2, Insightful)

grumbel (592662) | more than 5 years ago | (#27134953)

If the job is to teach programming to people who don't care about it, I'd probably start with plain HTML and CSS. Thats of course not exactly real programming, since not Turing complete and all, but it teaches you the basics of how a computer works, that data and presentation are seperate and all those very basic things.

Understanding those basics about how a computer works is much more helpful in the long run then something very abstract like sorting a list, since it applies to almost all daily computer use.

Moving on to Javascript later on would of course always be an option. However one thing i really like about Python is its interactive interpreter, which allows you to get started in no time and gives you clear cut error messages, with Javascripts always a little obscure what exactly went wrong.

Re:JavaScript? (2, Insightful)

techprophet (1281752) | more than 5 years ago | (#27135297)

+1
I totally agree. I do both JS and python programming.

python for server side, JS for client side, and python errors are much more human-readable/understandable IMHO.

And the interactive interpreter is a godsend for fiddling with a messed up class function (ie temporarily redefine it)

Re:JavaScript? (1)

msuarezalvarez (667058) | more than 5 years ago | (#27135473)

HTML and CSS do not teach you *anything* about how a computer works. At all.

Re:JavaScript? (1)

grumbel (592662) | more than 5 years ago | (#27135627)

They don't teach you the low level details about bits and bytes, they do however teach you the whole thing about structured data, which pretty much what any program today uses in one form or another.

Re:JavaScript? (2, Informative)

msuarezalvarez (667058) | more than 5 years ago | (#27135853)

There is absolutely no need to teach about bits and bytes: they are only incidental in actual programming. Programming is reasoning about actions, evaluation and transformation. HTML and CSS simply do not help with that.

Re:JavaScript? (1)

grumbel (592662) | more than 5 years ago | (#27136005)

Programming is reasoning about actions, evaluation and transformation.

Programming is in large part the manipulation of structured data and HTML/CSS can help quite a bit to get the 'structured data' part understood, add Javascript or Python when you want to go into the manipulation part of it. My point is simply that learning how to sort a lists has zero application in everyday life, understanding how pretty webpages you see on the screen are represented as structured data on the other side is quite a important thing, because thats how pretty much all software works and because thats a thing most non-computer people do not understand.

Of course when the students already get those basics right, feel free to move on to hard CS teachings or do some fun project with Python and Pygame or whatever.

Re:JavaScript? (2, Interesting)

mackil (668039) | more than 5 years ago | (#27135403)

I'm actually teaching a high school class on the basics of programming using Javascript for that same reason. I chose that language because their network is so tied down with restrictions, we never would've gotten the network admin to allow us to install a compiler, let alone an IDE.

My experience... (3, Insightful)

Smidge207 (1278042) | more than 5 years ago | (#27134125)

Graphics is what got me interested in programming. I remember my high school Pascal classes. Unfortunately they were pretty boring. We did do some simple EGA graphics at one point but that was really the only interesting thing we did in class, though I did end up learning the fundamentals.

Thing was, to do anything cool you had to do all this VGA initialization stuff that was forever out of our reach at that level. Not to mention the computers were pretty obsolete even at that point.

I know there's a lot of (mostly unreasonable) hate around here for Flash, but I'd say get them into Actionscript3. It's really easy to do graphics in without having to setup windows and rendering contexts or getting to know huge APIs. It will introduce them to object oriented programming, but won't involve pointers or memory management or any of the more esoteric aspects of something like C++. Another thing is they can easily share whatever they produce with most anyone else who has a browser. If they are at all into social networking online (all that myspace bullshit) they can make some pretty interesting stuff for their friends' pages. Using Actionscript could also lead they to branching out into other web technologies, something probably more important in today's world than ever. It also has a similar syntax to Java or C++ if they want to go in that direction. And as far as help and tutorials, there's really one of the richest communities around Flash, being a technology that was practically born in the middle of the blogging phenomenon.

The best thing about Actionscript is how quickly you can put something visual together and how little setup it requires. Graphics is definitely the way to go, and nothing in programming has a more immediate "wow" factor than throwing something pretty up on the screen.

=Smidge=

I love Python, but... (1)

mongoose(!no) (719125) | more than 5 years ago | (#27134187)

If you're teaching them programming, and they might not all use it, maybe you should think about using MS Excel. It seems everyone uses Excel in some form, but the people who can really get into the nitty-gritty of it can do some really useful stuff. Excel is on just about every computer these days, or some similar spreadsheet, and while it's not a traditional programming language, it does require the use of logic to figure out how to set up a series of cells with different commands to give you the answer you want.

Python on the other hand, is much more traditional, and might be a bit more straightforward to teach, but I still think more students would find useful skills they can use everyday in Excel rather than in Python. If they were all going towards engineering or comp-sci, Python would be good, but for the future business people in your class, knowing how to use Excel, and use it very efficiently is a huge plus in the "real world".

Re:I love Python, but... (1)

techprophet (1281752) | more than 5 years ago | (#27135373)

Excel is NOT programming. Excel is a spreadsheet program. You probably mean using Formulas and VBA.

Formulas are just Algebra-style equations, and VBA is hellspawn that will only work on MS Office software (certain VBA scripts are not even workable between versions of Office)

Re:I love Python, but... (1)

papna (1242200) | more than 5 years ago | (#27136383)

The class is about problem solving, not problem creating.

Seriously though, spreadsheet programs make it too easy to start punching crap in, and makes it too easy to write something that you haven't thought through. If you realise there's a better way later, it's hard to refactor compared to a traditional programming language.

Python seems like a good enough idea to me (if the teacher is proficient). It is high-level enough to focus on the problem solving element, you don't typically go through a separate compilation and execution procedure, and can even run the interactive interpreter and play with stuff. There are libraries so that students can do all sorts of things they can imagine, and especially enthusiastic students can do *really* cool stuff.

OP, if the teacher has few requirements on the course, break it down into several-week projects that solve different kinds of problems using the same language. Do some screenscraping with BeautifulSoup. Do something mathy at their level with math, numpy, or sympy. Do something cool with PyGame. The key part is the same in all of these--breaking down a problem into its various essential chunks.

anyone can benefit from learning anything (0)

Anonymous Coward | more than 5 years ago | (#27134197)

Why force this crap down peoples throats? This is what must have happened a few hundred years ago when people thought I would benefit from learning British Literature.
I'm a programmer, and I'd never use this crap outside of...programming?

Re:anyone can benefit from learning anything (1)

cromar (1103585) | more than 5 years ago | (#27134627)

If it weren't important to me to lead an enriching life, I could agree with your sentiment here. Unfortunately it is important to me; I loved my British Lit. classes. If they didn't make me a better programmer, they certainly made my life better and more interesting.

Labs (1)

swimin (828756) | more than 5 years ago | (#27134213)

I would create a list of labs, and spend significant time on each one. On Monday introduce the problem of the lab, and maybe one new programming concept that can be used to help solve it. Then from Tuesday to Thursday give students time in class to work on it, and help students that are confused, finished students should help the ones who are really far behind. Collect the programs at the beginning of class on friday, and go over the example of a correct program, answering questions along the way.

I think you'd find the best success with a program like this spending as much hands on time as possible.

Mindstorm (1)

internerdj (1319281) | more than 5 years ago | (#27134215)

(All my hatred of Labview aside.) Don't the latest Mindstorms come with some hobbled version of NI Labview or did that fall through? It is both circuit-esq and programming-esq. It is also easier to understand to laymen because it is a gui, not text. I have colleagues that use Labview and VB for the sole reason their customer demands they be able to understand all the code they are paying for without formal training in CS.

Please don't. (3, Funny)

Jurily (900488) | more than 5 years ago | (#27134223)

The catch is that it is a class for all students to take, not just those interested in programming

What the fuck is wrong with the educational system again? Teach those who are interested. Or those who have any chance of not being a retard at it.

Teacher 1: "Hey, I heard that computer-thingie makes people smart."
Teacher 2: "Okay, let's force it on every little prick we have here! That'll teach 'em to touch one ever again!"

Christ. What's next? Quantum physics in ancient Sumer dumbed down so everyone can pass?

Re:Please don't. (1)

Em Emalb (452530) | more than 5 years ago | (#27134687)

It's a damned shame that you were modded troll. The troll moderation is NOT for modding down something you disagree with people.

That said, your actual post is a little harsh dude.

I second the parent! (3, Insightful)

Samschnooks (1415697) | more than 5 years ago | (#27134951)

It's a damned shame that you were modded troll. The troll moderation is NOT for modding down something you disagree with people.

That said, your actual post is a little harsh dude.

This BS of making kids take shit so that they'll be "well rounded" is horse shit.

ALL of the greats in the World; Past Present and Future, were NOT well rounded! They specialized in ONE thing and did it extremely well. Trying to be "well rounded" is a path to mediocrity - which explains much of our state today.

I wish I could find the article, but it stated that it was in the 1970s that some Ivy League admission director pulled out of her ass that incoming students should be "well rounded". Of course, when an Ivy League school does something, all the others follow like stupid sheep.

Re:I second the parent! (1)

not already in use (972294) | more than 5 years ago | (#27135377)

You must first be exposed to something before you can specialize in it. Our schools do just that, give a well rounded exposure so that students can discover what interests them.

Re:I second the parent! (2, Insightful)

tverbeek (457094) | more than 5 years ago | (#27135621)

When I was in school, the last subject I wanted to study was Philosophy. BORING! Then I found myself in a Philosophy class with a great teacher, and it became one of my favorite subjects. I even minored in it in college. Granted, I stuck with Comp Sci as my major, because I'd already grown fond of eating every day and sleeping indoors every night, but if there were a way to make a living as a professional Philosopher, this story would have had a Very Good Point to it. :)

Ever heard of a Renaissance man? (1)

langelgjm (860756) | more than 5 years ago | (#27136027)

ALL of the greats in the World; Past Present and Future, were NOT well rounded! They specialized in ONE thing and did it extremely well. Trying to be "well rounded" is a path to mediocrity - which explains much of our state today.

Heh, apparently the ONE thing you decided to do well wasn't history. Ever heard of a Renaissance man? [wikipedia.org]

Re:Please don't. (1)

cromar (1103585) | more than 5 years ago | (#27134777)

This idea that there is no call for well rounded education makes us, Americans as a whole, dumber. It would be better for us as a whole if high schoolers were exposed to subjects such as quantum physics or ancient history.

Re:Please don't. (0)

Anonymous Coward | more than 5 years ago | (#27134877)

Although I don't agree with the previous harsh comments, I do agree with not forcing students into something they aren't interested in. I'm a programmer by trade and had some exposure in high school to C++ and Java and I was good at it. Programming in general takes a certain level of logic and math, things not everyone is good at.

I always found it was unfair to force a kid into something and when they found out they weren't good at it say, "Oh, I guess you're stupid. Oh well, you can always try again next year if you want to graduate.". However, I can't think of a better way to motivate a kid into at least trying.

One of the Schools I went to required you to have a music course to graduate, fine and dandy I like music, but I'm tone deaf and have no sense of timing so I can't sing or play an instrument. I put effort into the course, but ended up with a D because I sucked. I'm glad I moved to another school before I had to graduate because a C was required. I had straight A's in everything else. My older sister on the other hand excelled in the music course, but ended up not doing so well in the programming stuff. Now I'm a programmer and she's a cop... and I often wonder what went wrong.

Re:Please don't. (1)

tverbeek (457094) | more than 5 years ago | (#27135239)

"Teach those who are interested."

And what about those who'd rather go home and play Wii? Don't teach them anything?

Re:Please don't. (1)

not already in use (972294) | more than 5 years ago | (#27135269)

Aww, a trendy dissenter. How cute. All the righteous indignation in the world won't make your points relevant.

Guess what? Our educational system offers advanced placement classes for students who are so inclined to take them. No one is being forced to take a dumbed down class. Fortunately for those folks who are not as enlightened or smart as you, a dumbed down class might offer a more cushy introduction to a topic that can be a bit intimidating to a lot of people.

There is no reason a introductory programming course shouldn't be a mandatory part of a curriculum. Giving more students exposure to it would certainly not be a negative thing. Go take your nerd rage elsewhere.

Re:Please don't. (1)

Reality Master 101 (179095) | more than 5 years ago | (#27136079)

There is no reason a introductory programming course shouldn't be a mandatory part of a curriculum. Giving more students exposure to it would certainly not be a negative thing. Go take your nerd rage elsewhere.

No reason, other than there is a finite amount of time. Teaching someone programming takes away from something else, such as history, math and science. Programming is a trade skill, like learning to arrange flowers. But most people would say that there are more important things to learn than arranging flowers.

Re:Please don't. (0)

Anonymous Coward | more than 5 years ago | (#27135485)

Now try to calm down, and show us on this doll where the educational system touched you.

BASIC or Pascal (1)

Shard013 (530636) | more than 5 years ago | (#27134237)

Personally I would recommend teaching BASIC or Pascal to high school students. Both of them were more or less designed for teaching or beginners.

Students that are not interested in computers can at least make little songs using beeps in BASIC in a few minutes with a little teaching but hopefully can continue learning more about programming or computers.

Re:BASIC or Pascal (1)

Jurily (900488) | more than 5 years ago | (#27134313)

Students that are not interested in computers will just follow the instructions in class, somehow manage to pass the test and get on with their lives.

Re:BASIC or Pascal (0)

Anonymous Coward | more than 5 years ago | (#27134675)

Students that are not interested in computers will just follow the instructions in class, somehow manage to pass the test and get on with their lives.

And if this is possible, students who ARE interested will be bored out of their minds.

Re:BASIC or Pascal (2, Informative)

Bruiser80 (1179083) | more than 5 years ago | (#27134441)

I took a programming class in highschool. They used ThinkPascal on some old Macs. I was always upset how limited the program was - very limited graphical options. I could line trace, that was about it.

That being said, the interface was very intuitive. Commands automatically were bolded and there were a lot of mandatory line breaks and tabbing which made it easy to figure out how deep into your loops you were.

I don't code for a living. I write long equations in excel once in a while, but that's about it.

The language isn't as important as the interface. Something with a pretty interface and intuitive commands is what's needed.

not quite problem solving (4, Insightful)

v1 (525388) | more than 5 years ago | (#27134281)

Programming more importantly is problem analysis, figuring out how to use the tools and information you have to build towards a solution.

In most of my programming projects, there are myriad different ways to approach the problem, and the time taken to compare them I find to be the most important part of any programming project.

Recent example: I just got done coding a utilization graph for a server. In bash. Obviously bash is not the ideal language but was required so a lot of thought had to go into how to approach the problem.

After some consideration, I determined the way the utilization information was gathered and stored was the most important thing, because bash isn't particularly speedy and having to mow through 100,000 long log file isn't going to be pretty. So the main focus of the problem turned from one of "how do I display a graph in bash?" to "how do I record the information in a way that bash can quickly process it?" This requires understanding the limits of the tools you are provided with, more than understanding the actual problem. Only after you have this can you move toward a good solution to the problem. No matter how clever of an idea you have, or how "perfect" of a solution you come up with, picking the correct path to that solution is often just as important as the results.

Most of the time when I am going to code something, I spend a good hunk of time just sitting and thinking about it, considering how things are going to progress if I try different approaches. Only after I'm satisfied I have a good "plan of attack", do I actually start working on a solution. My solutions aren't always optimal, but they're usually pretty close, and save me a LOT of valuable time which would otherwise be wasted in having to either make fundamental changes to the foundation late in the game, (every programmer's nightmare) or dealing with extremely topheavy already-written code that isn't producing results in the way that I need them and has to either be data-converted or be clumsily coped with as-is. (every maintainer's nightmare)

I suppose you could sum it up by saying, "teach them problem analysis before you teach them problem solving.

Re:not quite problem solving (1)

msuarezalvarez (667058) | more than 5 years ago | (#27135547)

Who came up with the requirement of using bash to do anything?

How about some Java? (2, Insightful)

SUB7IME (604466) | more than 5 years ago | (#27134289)

I helped create a Java curriculum for a group of programming-naive high school students. I don't regularly use Java, but it behaves similarly to other languages (good for me and for them). There are plenty of tutorials out there that they can explore in their extracurricular time. Also, there are many sites and fora dedicated to java, allowing my students to get plugged into the broader community of programmers.

Programming or not? (0, Troll)

Spazmania (174582) | more than 5 years ago | (#27134311)

Step 1: Decide whether or not you intend to teach computer programming or programming advocacy.

Script hacking and web programming are great fun. They'll tend to draw in folks who have the interest and talent to develop computer software. But they will teach you very little about actual computer science... you'll have the modern equivalent of fogeys who proclaim their programming expertise in Excel and Dbase.

Step 2: If you picked advocacy, you're on the right track with Python and Mindstorms. You'll make it possible for your students to assess whether they have the knack for computer programming in a manner which is highly engaging.

Step 3: If you picked programming, select either pascal or java. They are the best-of-breed languages for illustrating correct functional and object oriented programming technique respectively. They're not particularly flashy and much of the course will involve teaching students what -not- to do, but students who are genuinely interested in computer programming will find that you haven't wasted their time with mere toys.

Re:Programming or not? (0)

Anonymous Coward | more than 5 years ago | (#27134745)

If you picked programming, select either pascal or java. They are the best-of-breed languages for illustrating correct functional and object oriented programming technique respectively

Pascal is an imperative language, not a functional one. Examples of functional languages would be LISP, Scheme, and ML.

However, I do remember Turbo Pascal 7 being pretty awesome when I learned it. It also allowed me to learn the concepts of object-oriented programming (I think that's the "Turbo" part), and I really appreciated the built-in assembler, which I used to write fast graphics routines. I have no idea how well that version would work in a modern computing environment.

Um... why? (1)

davidwr (791652) | more than 5 years ago | (#27134321)

Teaching general problem-solving is great, but this is probably not the way to go about it.

1) Different people learn differently, and anything resembling a traditional programming class will set up a large part of the student body to fail or at the very least get a C and leave frustrated.
2) Skills like problem-solving should be integrated across the curriculum and spread over the entire 13 years of K-12 education.

If you are going to do it, I would recommend keeping it simple enough that almost everyone who tries passes, and have advanced students take a different class such as a full-fledged programming class or a time-compressed version of this class.

I recommend rethinking this. Ask yourself "how can we make sure that by the time they graduate high school, all of our students learn problem-solving in a way that they will enjoy, that will leave them feeling something other than frustrated or exhausted, and (optionally) how can we give each of them a taste of programming." The answer you come up with should guide your curriculum.

Don't forget to make allowances for the mentally retarded and others with cognitive limitations, and don't forget to find alternative ways to teach the same skills for those who can learn what you are trying to teach, but whose brains work differently than most students.

Truth about Problem Solving (1)

Khaloroma (1381853) | more than 5 years ago | (#27134391)

First off, let me say that I come from an Engineering background, so my programming repertoire
is not as advanced as a comp sci is. That being said:

In my honest opinion the best way to teach problem solving is with something simple. Basic is a very good way to do this as it is very intuitive, but doesn't have all the shortcuts of other languages.

Some of the greatest problem solving ideas are designing well known games such as Monopoly. Obviously more advanced, but you can relate functions/subroutines, implement graphics (if you have the time), counters, and many other things.

The absolute most important concept is that you must teach, obviously, problem solving and NOT syntax. I would greatly discourage languages like C++ that, while powerful, take entirely too much time to teach the syntax when you can teach problem solving just as easily through Basic.

Logo (0)

Anonymous Coward | more than 5 years ago | (#27134393)

Logo

Why Python? (0, Troll)

xtracto (837672) | more than 5 years ago | (#27134403)

Am I the only one who finds Python cumbersome? When I program in Python I feel as if the language is trying to stay in my way, it is somehow as if I have to fight against its whims.

I would recommend Starlogo TNG [mit.edu] to teach programming. It really helps people visualize the building blocks that constitute a program. And, given its 3D graphical nature, it attracts high school students (who play Halo or Doom after school [yeah, I am antiquated, I was going to say "play a nintendo" but that would be antiquated even for me]).

Re:Why Python? (0)

Anonymous Coward | more than 5 years ago | (#27134547)

Am I the only one who finds Python cumbersome? When I program in Python I feel as if the language is trying to stay in my way, it is somehow as if I have to fight against its whims.

Yes, you're the only person that hates having to indent their code correctly~

Re:Why Python? (1)

Deltaspectre (796409) | more than 5 years ago | (#27134573)

You must be the only one :)
Python predicts my every whim... Perhaps the problem is you're trying to be too clever. In that case, assembly is just right for you

Re:Why Python? (0)

Anonymous Coward | more than 5 years ago | (#27134681)

No. Python is a very nice language, but the mandatory indentation that causes compile errors is annoying.

Re:Why Python? (1)

grumbel (592662) | more than 5 years ago | (#27136101)

Am I the only one who finds Python cumbersome?

Cumbersome? Nope, but definitively brittle. Especially when refactoring and copying code from one indention level to the next its just way to easy to mess things up and ending up with program that is broken in very non-obvious ways, automatic variable declaration and such make the problem even worse.

Check out Scratch (1, Informative)

Anonymous Coward | more than 5 years ago | (#27134433)

Take a look at Scratch http://scratch.mit.edu/

It uses graphical blocks to create a stack of instructions. I have been amazed how easy it has been for middle school student to pick up on programming logic using this program.

You need to get everyone interested.. (0)

Anonymous Coward | more than 5 years ago | (#27134439)

I would look for something really quick and easy to get a basic game type system up and running. Looking at the current software out there, I would actually suggest VB. The code is pretty straight forward, and the GUI design interface is basic cut and paste images. Have the class come up with an idea, divide people into groups and everyone works on a part of the project. This should teach them about problem solving, and real life team management. Some kids might be better at drawing the interface, other might be better at back end coding work, but that's real life. In the end you'll have a game or something that they can share and feel some kind of ownership of as well.

Everyone can benefit from learning to program? (0)

Anonymous Coward | more than 5 years ago | (#27134563)

How do you figure?

In the sense that everyone can benefit from learning calculus if they decide to pursue an advanced degree in science?

Programming is less applicable than your higher level maths. Compared even to trig, something I believe all HS students are required to take, it is far less useful; and many people will never even use that. I can't program any aspect of my car, house, or lawn. Programming aptitude is only useful in your professional career is VBA scripting in Office can increase your productivity, or you are a programmer or in IT. For the latter cases you're most likely going to want a CS degree anyway, which will include programming courses.

Everyone can benefit from being fluent in Greek, in very specific applications, it doesn't mean everyone needs it; or should be made to learn it.

I helped my dad do this (4, Interesting)

Fished (574624) | more than 5 years ago | (#27134575)

My dad is a High School Physics/AP Math teacher who taught programming this year. I encouraged him NOT to use C++ (his original plan) and to use Python instead, and to use Python Programming: An Introduction to Computer Science as the text. He has been absolutely delighted both with Python and with the choice of text. Now, it has to be said that this doesn't really address your case, since all of his students are pretty much AP materials (and it's a private school, etc.) However, I would encourage you to take a really close look at that text.

Re:I helped my dad do this (1, Interesting)

Anonymous Coward | more than 5 years ago | (#27135107)

I learned Python with "How to think like a computer scientist". I swear by that book. I could do very little coding (a little cut and paste here and there) before and now I build useful apps for my work related text manipulation tasks from scratch. This was all independent learning with what little time I had over the course of 3 months. So I imagine that a full time student learning in a classroom could easily succeed with this curriculum.

You died of dysentery. (2, Funny)

gandhi_2 (1108023) | more than 5 years ago | (#27134601)

A good final project would be an Oregon TrailBot. A scripted user-agent that can buy oxen and die of starvation in pursuit of expansionism.

have alternatives (0)

Anonymous Coward | more than 5 years ago | (#27134611)

I am not a teacher but I am a software expert with age 10/12 children.

It is going to be hard to sell the kids a one-size-fits-all approach. Some of them will already be software experts, some will be wired for maths, others for artistic design, others for sound. Some will learn by instruction, others by doing.

I would therefore tentatively suggest projects of 4 to 5 kids each using Blender. Blender is, of course, the GPL 3D modeler. It is capable of great visuals, raytracing, fluid simulation, animation and sound.

However it is also capable, via its Python binding to perform calculation, imprint rules on the model, connect to the internet and databases and so on.

I think there is something for everyone. The artistically minded kids get to create some cool models and textures. The kids who like to "look under the hood" can get their hands dirty with some programming - potentially very cool/complex programming if they want. The scope of the work can grow to accommodate whatever they want whether in the visuals, maths, networking or what-have-you.

Because they will be working in small teams, they will need to rely on each others skills and understand basic project management methodologies about scoping, prioritisation and so on. There would be plenty of help online to those that need it - promoting research skills.

At the end the work could be showcased and a prize offered. It might help if a method could be worked out so each kids gets something out of it that could be shown to a university admissions officer later.

Example ideas: Dinosaurs (modeling, animation, movement, AI). Something there for everyone!

I hope thats helpful. Good luck.

Eh... (0)

Anonymous Coward | more than 5 years ago | (#27134637)

*unfortunatly alot of this information would depend on your geographical location and what age group*

To answer the question off the bat, I would personally recommend (depending on platform) basic for PCs, or future basic (mac)....or HTML.

Especially if this is getting forced down every kid's throat. These are realativly simple languages where they can get a feel for what real programming is like. They are also something that kids would be able to play with on their own PCs if they have them. Anything more advanced and your getting into a more advanced math, logic, and general PC knowledge. Realistically, programming isn't worth jack to most students. Just guessing here, but your more than likely looking at maybe 1-2 students per 20-30 that might even go near that field in their futures.

The most optimal way to organize high school programming in my opinion is 2 classes. For example, start out the junior year with something like Basic. Then if they like it, and "want" to take it, offer them a more advanced language their senior year, something like visual, C++, java, or python. That would be my recommendation.

god, no! think of the children! (1, Insightful)

Anonymous Coward | more than 5 years ago | (#27134641)

the ones that have gotten programming in
hs and college are less prepared as professional
programmers than those with no formal training.

Python is a right choice but obligation is not! (0)

Anonymous Coward | more than 5 years ago | (#27134645)

I am a complete advocate of python being the "programming teacher" language as it is by nature cleansed of lots of demotiviers of learning, in other words has quite a simple syntax.

on the other hand, this will mostly result lots of students most of whose just lack the analytical talent to be gradually prejudiced against programming at all.

this reasoning could be based on the reaction to some obligatory programming courses for non-cs graduate students. they mostly end up just hating the concept.

instead, you could form a hobby group or such, to support those who actually like it or just inclined to give a try about it.

No (1)

Em Emalb (452530) | more than 5 years ago | (#27134653)

No. Don't do it. Programming should still be an elective, not a required course for all students to take.

A computer course that touches on programming and can be a gateway to a programming course should be the route you take. That way the students get the skills they'll need (not everyone has a computer at home, even in this age) for college/job/whathaveyou but they're not forced to take a class they may not want to.

When I was in school, the only "programming" course that was available was Pascal. And it almost ruined computers for me as I honestly have 0 interest in programming.

All that said, I do realize there are a lot of courses out there that kids are required to take that they have no interest in. However, a lot of those courses have legitimate "real-world" reasons, and programming isn't necessarily a "real world" reason for taking a course.

Use the text "How to Design Programs" (1)

stevebyan (806118) | more than 5 years ago | (#27134765)

Use the textbook "How to design programs" by Matthias Felleisen, Robert Bruce Findler, Matthew Flatt and Shriram Krishnamurthi., It's available free on the web or hardcopy from MIT press. Unfortunately the HtDP web-site [htdp.org] seems to be down today. Check out the wikipedia entry [wikipedia.org] . It's been used in high schools. They have a summer seminar for teachers, too.

Scratch from MIT (1)

veenstr (844227) | more than 5 years ago | (#27134835)

There are a million opinions on this subject. But actually programming by all students be it basic, java, javascript, html, c, flash, etc...is going to be a rough class for 90 percent of the students. And this might not be because they are not capable. It might just be socially more important to NOT excel at computer programming.

When I was a youth my father taught basic on Apple II's to all students in their 7th and 8th grade school. This was a 4 week class for everyone in the school. And it was generally disliked by most.

And programming in basic on an Apple II was much simpler than today and the heavy frameworks we deal with.

This brings me to Scratch from MIT. I downloaded this when it was released a few years back. It was fine. I build similar products in my real life so I am always interested to see what others are doing. This is free. It is visual. Teaches constructs of event programming. Deals with basic logic. All things that are good to help kids understand. The community seems to have grown a lot since then.

Explore and give it a try. http://scratch.mit.edu/ [mit.edu]

Processing (2, Informative)

krilli (303497) | more than 5 years ago | (#27134869)

http://processing.org/ [processing.org]

Clean, quick, cross-platform, can do pretty wild things right out of the box.

Make it fun, get them hooked.

This idea is great idea (not) (0)

Anonymous Coward | more than 5 years ago | (#27134939)

So are we going to teach Auto mechanics, plumbing, cosmetology, and all the other trades available at a vocational school too? Forget english, math, and reading, who needs those skills anyway. Absolutely absurd idea.

My 2 cents (0)

Anonymous Coward | more than 5 years ago | (#27134965)

When i was in high school i was required to take a C++ course and i learned alot. I am an engineering grad student and the only thing i have ever programmed in for school or a job is C or C++. I cant attest to the advantage or disadvantage over other languages, but id say C++ is the language students are most likely to see again and its pretty simple once you have the basic steps down.

This is stupid (3, Insightful)

Reality Master 101 (179095) | more than 5 years ago | (#27134983)

Not everyone is interested in programming, or any sort of engineering. Get over it. Forcing every kid to take programming (and "forcing" is the right word) is like forcing every kid to learn how to build an engine for their car (and NOT something useful, like changing the oil).

With all the cutbacks in arts and general sciences that take a broad approach to education, why are you wasting their precious school time and especially-precious-now school money on such a specific skill?

It's like someone who is passionate about embroidery insisting that every kid should learn embroidery for their own good ("Think about the problem solving skills they'll learn by figuring out what stitches they need to get to the pattern they want!") Whatever general skills they learn in this class, they can learn better by studying a more general subject.

Re:This is stupid (1)

geekoid (135745) | more than 5 years ago | (#27135575)

I would argue that more kids would benefit from learning how to a build an engine becasue they wiklll all deal with cars, and that level of knowledge helps prevent them from being ripped off; where as programming has nothing to do with repairing or buying a computer. Computers are thriogh away appliances to most people.

Now if I could buy a car for 1000 bucks and use it for 3-5 years. Then learning anything outside the operation of the vehicle would be a waste of time.

Re:This is stupid (1)

msuarezalvarez (667058) | more than 5 years ago | (#27135639)

Actually, "Not everyone is interested in $X" is a true statement for all values of X. Are you proposing not to teach kids anything?

Re:This is stupid (1)

Reality Master 101 (179095) | more than 5 years ago | (#27135977)

Actually, "Not everyone is interested in $X" is a true statement for all values of X. Are you proposing not to teach kids anything?

No, as I said in my post, I'm advocating teach *broad* knowledge. Math, science, art, history, etc. Programming is a specific trade skill, utterly and completely useless to anyone who won't be doing it for a living. There are an infinite number of trade skills we can teach kids. How about how to change chemicals in a pool? That's a skill that's actually more useful than programming.

If kids had an infinite amount of time to learn, then it makes sense to teach them every random skill. Since we don't have an infinite amount of time, we need to devote it to broad learning, and allow people to learn specific skills based on their own interest.

RURPLE (0)

Anonymous Coward | more than 5 years ago | (#27134991)

What you are looking for is RURPLE!

is like turtle, but using Python

http://rur-ple.sourceforge.net/en/rur.htm

mandatory Lego sales (1)

ryen (684684) | more than 5 years ago | (#27135003)

I'm sure the board of ed will love the cost of a Lego Mindstorms set for every student in the school.
Also, if you need Legos to teach programming then you're doing something wrong.

smallTalk (1)

doug (926) | more than 5 years ago | (#27135109)

While I don't personally care for smallTalk, it has a simple enough syntax and was designed as a teaching language.

More important than language, you'll want to keep the kids engaged. Basically they'll need some results quickly, and printing strings to the tty isn't likely to count for much. That is one of the strengths of GUI programming, poping up windows, playing with colors, and stuff like are likely to keep the kids paying attention long enough to learn something.

- doug

Have lots of projects and labs (1)

psychicsword (1036852) | more than 5 years ago | (#27135133)

I took a half year Intro to Computer Science class as a senior in high school. The class was actually paired with a half year of Principles of Engineering. The thing I loved about these classes it that they were very broad based. We did just about everything in a very basic form. I am a second year CS Major and I am still seeing stuff I learned in the class. We were able to get so much because we used Python but we started with C-- then moved to C then we learned python. Originally the course had used java but you need to know more to be able to have a good project at the end of the course. If I were to make a CS class for High School students I would do a similar thing as what I took. Concentrate on keeping things simple and make most of the point(like 50%) are for projects and labs. About 20% for small tests(only have 1 or 2), 10% for homework and the 20% for a final project. Our project was programming a poker game using a provided graphic library. We also got more than a week in class to work on it in groups of two. I would do something like this because it will give you enough time to do everything at a basic level but at the same time it will allow the students to get something at the end of the course that they can see and looks cool. We only had 1 test in the class and 1 quiz but each week we had a lab which we worked on mostly in class. My teacher would give a hand out the first class each week and would lecture off of it. After the lecture class we would then work on a small project that used what we learned. I don't know if this class would be good for the general person to take or if there would be a lot of support for it from the students but in my school(around 800 students) there was 1 CS class which had a about 5 people who actually wanted to take it and about 20 who were just filling a science requirement. The 20 students who took it and weren't interested in CS as much as I was did struggle and had a hard time but because of the Lab/Project based structure it allowed them to ask for help. I must say this, had the class been a full year of CS there wouldn't have been enough students to fill the class so I would make sure there would be some interest in the class before fully building the curriculum.

How to Design Programs (1)

damg (906401) | more than 5 years ago | (#27135167)

Have a look at the book How to Design Programs [htdp.org] , which was written with a pedagogical focus and is a great way to teach the fundamentals of programming and problem solving. It uses an excellent free programming environment [drscheme.org] which should make it easy for students to get started.

In Soviet Amerika... (2, Informative)

n6kuy (172098) | more than 5 years ago | (#27135341)

...public school programs YOU!

Well... (0)

Anonymous Coward | more than 5 years ago | (#27135347)

I'm actually in a high school programming course right now.
We're only touching base on Java.
Python would definetly be more entertaining though.

My experience with languages (0)

Anonymous Coward | more than 5 years ago | (#27135369)

I learned Visual Basic at a class in highschool, it was a horrid experience, and I had trouble getting the grasp of it, which was just as well, since it gives you a (in my opinion) distorted view of programming. Before that I learned (just a little) C, which was OK, but it's troublesome when it comes to setting up programming enviroments and compiling.

In the university I had a course on Java, which was obligatory for all that took scientific courses. I think 10% (or more) of the people that took the subject failed. I also had some problems understanding certain aspects of it, even though I had some experience programming by that point. Moral is; don't introduce someone to programming through a 100% oo-language.

I've never really liked Pythons syntax as it differs to much from other programming languages, and prefer Perl and PHP as scripting-languages. Though it is said that Python is supposed to be a simpler language, I think that Python's importance of whitespaces might distort newcomers' view of how programming/"interpretation of code" works.

Lately, wondering about what would be the best newbie language, I've been a bit fascinated by the second generation BASIC-languages [wikipedia.org] . I've never tried it, but it seems to have a really simple syntax and the functionality neccessary for making an introduction to how programming works. Although I don't think it would fill out a whole semester, only the first weeks/months.

Learning styles, disabilities, levels? (1)

meridoc (134765) | more than 5 years ago | (#27135415)

As a high school teacher, I appreciate the opportunity you're trying to offer: not many schools have computer programming classes, so that's pretty neat.

If your school is going to require this class, be very careful to think about different learning styles and learning disabilities. Programming goes well for very linear, sequential thinkers. It may not go well for abstract free-spirits. How about kids with dyslexia, dyscalculia, and/or dysgraphia? Will you have different levels of programming for different students' abilities? How about the kids who have already done some programming? How about your non-native-English speakers?

Additionally, think about what you want kids to get out of this class. Will they use it in other classes (sure, ideally they will, but look at the other teachers at your school and be realistic)? Do the kids need a typing/word processing/spreadsheet class more than programming?

Maybe this should be expanded (1)

JumpDrive (1437895) | more than 5 years ago | (#27135423)

How about a reading, writing, science, mathematics, history, geography curriculum for all high schools.

SImple (1)

geekoid (135745) | more than 5 years ago | (#27135513)

" I'm sure many of you would agree that everyone can benefit from learning to program and any help would be greatly appreciated!"

No actually, that's not true. Your letting your bias make decsions for you.

If you have a class for kids interested in programming, there are three goals.

1) Concepts. You just need a language that teaches the concepts that will be used in programming. The Lego IDE works well, as does Java. Once you ahve concepts, every language becomes syntax.

2) A language. You want something where they are writing the objects that is widely distributed and can be used on anything. I recommend Jave. Cheap to set up, Usable on a lot of platforms and devices.

3) Architecture. How to put a system together and create a system that has flexibility. This needs to be taught in a language where th students can code the connection easily and cheaply. I recommend Java.

Stay away from script languages because they don't really do much long term wise. IF you can write in a language like Java, C++, you can write in Python. That is not true the other way around.

A couple of nitpicks (0)

Anonymous Coward | more than 5 years ago | (#27136361)

"Once you ahve concepts, every language becomes syntax."

Not really. The reason we have multiple languages is so we can do things differently. Try writing a quick bubble sort in Postscript. Postscript is stack based. All the ways you usually do things (like defining variables for instance) don't work in Postscript. Admittedly, Postscript is an extreme example but it does demonstrate the general principle. (Yes, Postscript is a programming language.)

The trouble with thinking that the only difference between languages is syntax is that you end up trying to force your existing concepts onto a language that isn't suited for them. You lose the advantages of the language or worse, you make the language work very inefficiently.

"Stay away from script languages because they don't really do much long term wise."

Actually, Python is very extensible. There are lots of very large programs written in Python.

The main advantage of Python for teaching programming is that, like Basic, it is easy to learn to program simple programs. Like Basic, Python's syntax is simple. Unlike Basic, Python will take you just about anywhere you need to go, short of device drivers of course ;-)

The trouble with C, Java and C++ is they have a bunch of cruft that tends to confuse beginners. They aren't good teaching languages at all.

Make the little twerps (1)

n6kuy (172098) | more than 5 years ago | (#27135525)

learn INTERCAL.

Literacy redefined (1)

Pirulo (621010) | more than 5 years ago | (#27135553)

I profoundly agree with teaching programming in high school as a mandatory subject.

More and more I (a developer) have to interact with other other professionals at management level that don't have a clue about what software can do.

I consider them somehow illiterate. I don't expect an executive to program, but at least to have an understanding of OOP theory. In a modern world literacy has to be re-defined, and surely besides reading one should know at least the basics of programming.

My Two Cents (1)

champion.p (1462707) | more than 5 years ago | (#27135587)

My opinions may be a little unorthodox, but here goes.

The catch is that it is a class for all students to take, not just those interested in programming, and therefore will focus heavily on teaching problem solving.

I think this is the most important part of what you are asking. I'd guess that when you ask most people this question, they'll think of the best way to teach computer science, or the best way to teach computer architecture, which will undoubtedly lead to thoughts of "No! Not that language!" and the like.

To teach problem solving using computers, you need to go from a top-down level, which rules out C or assembly. You also need to teach an interpreted language, not a compiled one -- if you want a quick-and-dirty solution to a problem you face, how many times do you pull out Java (or C++ -- I'm not anti-either)? I agree with your choice of Python for this reason. You need something closer to shell scripting, but not to the point of bash; it's not high-level enough and your students will be bogged down with syntax instead of learning programming constructs and problem-solving techniques.

It sounds like you are not trying to teach computer programming, at least not in the way either computer scientists or computer engineers think of it. Computer scientists need algorithmic analysis; computer engineers need architecture and low-level interaction. I understand that this is a cliched oversimplification, and to be really good at either, you need to understand both sides. But if you're not training these kids to be either one of those professionals, your goal is "Problem Solving Using Computers", which happens to require a knowledge of "Computer Programming". They need to know loops, decisions, and variable manipulation; the deeper you delve into computer science and architecture, the better for them, but don't lose sight of what you want them to be able to do on their own after the end of the term. If they walk out of your class thinking "I'll never use this", either they aren't the students who should be in the class, or you aren't teaching towards that goal.

Useful concepts to teach (0)

Anonymous Coward | more than 5 years ago | (#27135597)

My first was c but I guess most kids won't like fiddling about with pointers and memory logic like I did. Python or Java is probably a good idea. Easy to use and useful languages too. I think the most important things are to teach correct coding techniques and an understanding of what is happening behind the scenes as these can be applied to other programming languages that the kids may learn in the future

Smalltalk (0)

Anonymous Coward | more than 5 years ago | (#27135691)

Smalltalk, although dated, is probably still one of the easiest languages to comprehend in terms that a non-programmer would understand. It's simple syntax and 'everything is an object' mentality make it a perfect starting point to launch into other OOP languages as well as a user-friendly language for problem solving. Try this... write a method in SmallTalk that queries it's virtual machine and finds the average method length of the methods provided in the API. Last I checked, that number was a little over 6 1/2 lines per method... that's what I call power and usability in a nutshell.

High School CS Requirement (1)

drchoffnes (1256396) | more than 5 years ago | (#27135993)

This is slightly OT, but your brother might find it helpful to check out what these guys are doing: http://people.ucls.uchicago.edu/~bfranke/csreq/index.html [uchicago.edu] There is a movement toward making CS a graduation requirement for high school, something tells me a few of your here would agree with this.

squeak.org (2, Informative)

sydbarrett74 (74307) | more than 5 years ago | (#27136059)

Take a look at Squeak -- it's targeted at younger children (elementary and junior-high) but versatile enough that high schoolers can probably get something out of it as well.

Python, Robots, and Games (0)

Anonymous Coward | more than 5 years ago | (#27136173)

You should check out:

http://wiki.roboteducation.org/

They have robots (non-lego), art, music, and games.

Teach concepts not implementations! (1)

Usquebaugh (230216) | more than 5 years ago | (#27136301)

Should have used Logo/Scheme/Lisp. You'll spend more time teaching syntax rather than programming/logic.

Take a look at

CompuSci without Computers [csunplugged.org]

How To Design Programs [wikipedia.org]

Load More Comments
Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Create a Slashdot Account

Loading...