Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Education Programming Robotics IT Technology

A High School Programming Curriculum For All Students? 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!"
This discussion has been archived. No new comments can be posted.

A High School Programming Curriculum For All Students?

Comments Filter:
  • My experience... (Score:1, Insightful)

    by Smidge207 ( 1278042 ) on Tuesday March 10, 2009 @10:14AM (#27134125) Journal

    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=

  • by Anonymous Coward on Tuesday March 10, 2009 @10:19AM (#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.

  • by v1 ( 525388 ) on Tuesday March 10, 2009 @10:24AM (#27134281) Homepage Journal

    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.

  • by SUB7IME ( 604466 ) on Tuesday March 10, 2009 @10:24AM (#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.

  • by BrotherBeal ( 1100283 ) on Tuesday March 10, 2009 @10:27AM (#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.
  • by Anonymous Coward on Tuesday March 10, 2009 @10:50AM (#27134641)

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

  • by jgtg32a ( 1173373 ) on Tuesday March 10, 2009 @10:55AM (#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.
  • by Samschnooks ( 1415697 ) on Tuesday March 10, 2009 @11:10AM (#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:JavaScript? (Score:3, Insightful)

    by grumbel ( 592662 ) <grumbel+slashdot@gmail.com> on Tuesday March 10, 2009 @11:11AM (#27134953) Homepage

    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.

  • This is stupid (Score:4, Insightful)

    by Reality Master 101 ( 179095 ) <RealityMaster101@gmail. c o m> on Tuesday March 10, 2009 @11:13AM (#27134983) Homepage Journal

    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:JavaScript? (Score:2, Insightful)

    by techprophet ( 1281752 ) <emallson@AUDENarchlinux.us minus poet> on Tuesday March 10, 2009 @11:32AM (#27135297) Journal

    +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)

  • by tverbeek ( 457094 ) on Tuesday March 10, 2009 @11:48AM (#27135621) Homepage
    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. :)
  • by DragonWriter ( 970822 ) on Tuesday March 10, 2009 @12:58PM (#27136765)

    While they use Scheme instead of Python, which you seem to have settled on, the TeachScheme! [wikipedia.org] effort and the book How to Design Programs [wikipedia.org] are aimed pretty much at the kind of thing you are trying to do: HtDP is designed for universal programming education (aimed at either high school students or lower division liberal arts students in college), and TeachScheme! is directly aimed at teaching in High School.

    (Linked Wikipedia pages because it seems like both websites -- and the main PLT website -- are down at the moment; the website links are on the wiki pages and I'd recommend going to those when they are up.)

  • by Austerity Empowers ( 669817 ) on Tuesday March 10, 2009 @01:55PM (#27137743)

    You are probably the intended audience for the "general programming class". This is the crowd that wants to solve a really big problem, and doesn't want to get bogged in the details. Someone is going to write the compiler for you, write the functions which do something you need, etc. You just want to integrate packages, think big and are happy to hack and slash bugs as they crop up. I suspect that most people who use computers to accomplish a task, want to know simple ways of automating mundane tasks, etc. Programming as taught in school doesn't do this for you, because it's not programming, it's "computer science", the class title "Intro to programming" is what misleads. This is in my mind what the poster really wants to do.

    I agree that #2 is how all applied math/science classes should be taught period. But #1 is the same as "shortcut for hard problems". For "general programming", this is acceptable. For professionals and for those interested in computer science, it's absolutely not. And this is the source of your frustration.

    For those of us into the science of it, this represents the core of our art. Strings are just a simple instantiation of the abstract concept we deal with. Strings are easy to print, observe and debug...but they're just a metaphor. After 20 years of reading them, we can spot problems and patterns very quickly, so they're convenient.

    As for using languages that simplify your problems for you, this poses issues to professionals for many reasons. First, because depending on your line of work, using an interpreted language and in fact using anything other than straight C/C++ may be problematic at best, forbidden or impossible at worst. Second, because in the real world, you still end up having to do a lot of string processing even if you're doing something relatively invisible like device driver development. Third, when it is possible and desireable to use specialized languages, you often need or want to understand them more fundamentally than by surfing the web for documentation. At some point you can learn perl, python, ruby, javascript, etc. in mere days because you know the fundamental elements of the language, you can scan a manual for syntax and the few differentiating factors and quickly apply them. In a sense, you have been taught how to think about them. Fourth, and most important, because the skills, algorithms and implementations you use in doing that string shmooing are essental to pretty much everything else, which is why your curriculum was taught that way.

    So maybe you didn't like your programming class because it wasn't what you were looking for. You took the course because you thought you needed something but computer science wasn't it. You needed a tool, not understanding. High school does seem like the most appropriate place to teach people how to use tools. That's what I think the curriculum for a "general programming class" should be.

  • by denarii ( 1174883 ) on Tuesday March 10, 2009 @03:52PM (#27139715)

    Since when? I graduated HS in '04 and they were definitely teaching to the lowest common denominator at the time. Good ole NCLB. I wish they were teaching to the highest common denominator. It's better that the kids who are actually going to go on to higher education get a good foundation in high school than to set the bar low so that those who are just going back to the farm/McDonalds don't fail at anything.

    I was a classic underachiever, none of the curriculum from elementary school onward was challenging enough and I never took school seriously because it was so dull. I got by with a C average by acing all the tests as I tended to skip school constantly and not bother with homework.

    I really regret it now. Obviously, it's not just the school system's fault. I should have taken it more seriously, but I was a bored teenager. If the curriculum and been more engaging and challenging, I might have looked up from my books for more than correcting my teachers.

Two can Live as Cheaply as One for Half as Long. -- Howard Kandel

Working...