Slashdot Mirror


A High School Programming Curriculum For All Students?

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!"

2 of 214 comments (clear)

  1. not quite problem solving by v1 · · Score: 4, Insightful

    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.

    --
    I work for the Department of Redundancy Department.
  2. I helped my dad do this by Fished · · Score: 4, Interesting

    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.

    --
    "He who would learn astronomy, and other recondite arts, let him go elsewhere. " -- John Calvin, commenting on Genesis 1