Slashdot Mirror


Learning to Code with a Boardgame

markmcb writes "While some of us cling tight to our memories of Apple-filled classrooms playing The Oregon Trail and driving our Turtle around in Logo, children today have many other ways to learn about the inner-working of computers and the code that drives them. Wired.com is running an interesting article about a boardgame in which players must use simple logic similar to that used in programming to get their skier down the mountain. From the article: 'Using basic math, players have to figure out which paths are open to them and then decide the fastest way to the finish line. The trick, however, is learning which paths are open to you using only programmer jargon like 'if (X==1)' then you can take the green path or 'while (X4) you can take the orange path,' where X is the roll of the die.'"

204 comments

  1. Yeah.... by CorruptMayor · · Score: 1, Flamebait

    Tell me again why they should learn the inner workings of the computer.

    1. Re:Yeah.... by DrMrLordX · · Score: 0, Redundant

      IN SOVIET RUSSIA, computers learn the inner workings of YOU!

      Violenty.

      Can you think of any better reason than that?

    2. Re:Yeah.... by utnow · · Score: 1

      1. Logic is an important and often overlooked part of growing as a human being. It dosen't have to be programming logic, but it's not a bad thing to know.

      2. Programming is a skill-set akin to knowing the scientific method. Once you understand 1 or 2 languages, you understand the process and it becomes easy to expand your ability in the field. We teach kids the basics of drawing, the basics of arithmatic, the basics of grammer, reading, the sciences, so why not logic/programming?

  2. Bad Design by jmlsteele · · Score: 3, Funny

    I was told to never use a goto...

    1. Re:Bad Design by TheRealMindChild · · Score: 2, Funny

      grep the linux kernel... you may wet yourself.

      --

      "When life gives you lemons, don't make lemonade. Make life take the lemons back!" -- Cave Johnson
    2. Re:Bad Design by Kainaw · · Score: 1

      I was told to never use a goto...

      Are you sure that wasn't a "gosub"? Goto is rather useful in conjunction with conditional statements.

      --
      The previous comment is purposely vague and generalized, but all of the facts are completely true.
    3. Re:Bad Design by PalmerEldritch42 · · Score: 2, Insightful
      The gosub command is a wonderful thing that more BASIC programmers should have used. It allows one to develop a subroutine that any other part of the program can access. It was the foundation for how I learned OOP. Goto statements were seen as hackish attempts at redirection, too often resulting in Spaghetti Code that is all but meaningless to anyone else who ever had to look at the code.

      While there are uses for goto satements (I made a choose your own adventure-like story using only goto), gosub is a far more elegant solution to most of your redirection needs.

      --
      Ceci n'est pas une sig.

      :wq!

    4. Re:Bad Design by Anonymous Coward · · Score: 0

      Not in assembly!

    5. Re:Bad Design by Anonymous Coward · · Score: 0, Insightful

      Good programmers NEVER use goto, great programmers do.

    6. Re:Bad Design by GeneralHorel · · Score: 2, Funny

      out of fear or excitment

      --
      Slashdot sigs contain more useful information than the articals
    7. Re:Bad Design by Anonymous Coward · · Score: 0

      Knuth, Donald (1974) Structured Programming with Goto Statements, Computing Surveys 6(4):261-301

    8. Re:Bad Design by merreborn · · Score: 1

      gosub... was the foundation for how I learned OOP

      That's not Object Oriented programming, that's Procedural Programming. Still a step above the sort of stuff BASIC programmers tend to churn out though.

    9. Re:Bad Design by TheRaven64 · · Score: 4, Interesting
      Those who don't get taught GOSUB have to invent it themselves. I wasn't taught about GOSUB when I first learned to program, so I ended up writing my own. Every time you called GOTO, you wrote your line number into an array and then incremented a variable. When you returned, you copied that line number into a variable, wrote a return value over it, decremented the stack counter and jumped back. Due to the limitations of the language (and, perhaps, my understanding of the language aged 7) you could only store one integer (the return value) on the `stack', and it could only be a maximum of 255 calls deep, but it was a stack. Like early computer designs which stored the return values in the base of the function (which I didn't learn about until 11 years later), it was not capable of recursion.

      Some years later, I implemented a pseudo- virtual memory system using a very primitive analogue of mmap on the Psion Series 3. This allowed for arbitrary-length strings - something not possible in the built-in BASIC-like OPL, which used PASCAL-style strings.

      My somewhat rambling point? Sometimes it can be better to learn to program in limited settings. If you don't have the tools you need for writing good code, but do have a Turing-complete language, then you end up inventing the tools yourself - and then you understand them much better than anyone who learned simply by being told that they exist.

      --
      I am TheRaven on Soylent News
    10. Re:Bad Design by geekoid · · Score: 1

      GOSUB is NOT the same thing as GOTO.

      --
      The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
    11. Re:Bad Design by Anonymous Coward · · Score: 0

      I completely agree with "teaching yourself". I began on a TI-85 calculator making games that would guess your number between 1 and 100.
      After frustrated with the complexity of more interesting games I independently thought up object orientated programming. Using a naming system to indicate program/function specific variables and global variables along with over 16 independent programs I called from the main function, I was able to create a simplified version of Final Fantasy without any previous learning or reading.

      This also reminds me of a fact I read some time back that Eisenhower recruited only self taught engineers during the war. His reasoning was that people that are self taught can see ahead of the the current knowledge while school taught engineers could only see what was currently possible.

    12. Re:Bad Design by Anonymous Coward · · Score: 0

      If you were able to comprehend text, you would have noticed that the parent never claimed it was.

    13. Re:Bad Design by Anonymous Coward · · Score: 1, Informative
      Yeah, no kidding. The parent poster didn't say they were. He's saying that he implemented GOSUB _using_ GOTO by using a global variable that allowed the subroutine to return to the place from which it was called. In other words:
      10 i=30
      20 GOTO 100
      30 REM Welcome back from the subroutine
      ---
      60 i=80
      70 GOTO 100
      80 REM Welcome back from calling it again
       
      100 REM Welcome to the subroutine...
      110 ...do stuff...
      120 GOTO i
      -t.
    14. Re:Bad Design by networkBoy · · Score: 1

      Yes, I think the parent post has a grasp of that fact quite clearly :P
      -nB

      --
      whois gawk date unzip strip find touch finger mount join nice man top fsck grep eject more yes exit umount sleep dump
    15. Re:Bad Design by guitaristx · · Score: 1

      Ya know that's great and all...unless you do nested subroutine calls.

      --
      I pity the foo that isn't metasyntactic
    16. Re:Bad Design by quietlysubversive · · Score: 1

      oh man i snorted beer up my nose reading that - why post it anonymously???

      that was some funny shit

      --
      ----(o)----
    17. Re:Bad Design by DugzDC · · Score: 1

      brilliant. Although you lose marks for not coming up with the name Final Fantasy first. I invented that when I was 4.

    18. Re:Bad Design by diverscuba023 · · Score: 1

      Go To Statement Considered Harmful Edsger W. Dijkstra -- Well you had to refer to a dinasour. I just chose an exstinct one to quote.

    19. Re:Bad Design by seanadams.com · · Score: 1

      Goto's fine, but you have to admit... "goto jump" - that's f**ked up!

    20. Re:Bad Design by Procyon101 · · Score: 1
      Geez... ever heard of "exersize for the reader"?
      10 dim s%(1000)
      20 func1%=1000
      30 func2%=2000
      40 c%=0
      50 c%=c%+1:s%(c%)=60:goto func1%
      60 end
      1000 print "Function 1"
      1010 c%=c%+1:s%(c%)=1020:goto func2%
      1020 c%=c%-1:goto s%(c%+1)
      2000 print "Function 2"
      2010 c%=c%-1:goto s%(c%+1)
    21. Re:Bad Design by mibus · · Score: 1

      Ya know that's great and all...unless you do nested subroutine calls.

      Which is why the original poster used a stack. The parent to your post merely offered a simpler example.

      From the OP:
      Every time you called GOTO, you wrote your line number into an array and then incremented a variable. When you returned, you copied that line number into a variable, wrote a return value over it, decremented the stack counter and jumped back.

    22. Re:Bad Design by elronxenu · · Score: 3, Interesting
      No they won't. You're proposing that people with no formal training and no reference material will independently redevelop recognised programming techniques.

      The largest number of people will invent nothing new; they'll just program within the limitations of what they were taught.

      A smaller number of people will invent something new, but it will be some kind of kludge. They'll use it everywhere they can. It will be inefficient or inelegant, but they won't notice that.

      A very small number of people will invent something new which works well, is efficient and elegant.

      My opinion is that if you teach 100 people how to program in BASIC without any mention of GOSUB, then have them solve problems by writing programs, and after a while you check what techniques they use, you will find that 90% of those people are writing spaghetti code with no discernable structure (or maybe only WHILE loops), 8% have implemented the idea of the subroutine by supplying a return address in a fixed location (so recursion is not possible) and the remaining 2% have implemented their own stack and use it to simulate proper recursive subroutines.

      There has been much more bad design in the history of computer science than good design. I don't see why the situation we see in the large should not apply to individuals too. Just look at language design. Some recognised (nay, famous) programming languages are awful. You think the people who designed those languages weren't smart?

      Just look at Niklaus Wirth - and the botch he made of Pascal's string handling, data structures and control structures. This was a guy who studied and taught computer science.

      Take a look at COBOL, if you can stand to. Clearly botched in a number of areas, at least in the 1985 revision which is when I last had to look at it. In areas such as conditional handling, data structures, dynamic memory allocation. COBOL had one good idea, namely statically defining the allowable contents of various data areas, and that's about it.

      I can only argue that students should be taught best practices from day one, on the basis that they will most likely never invent those best practices for themselves (98% chance) and could develop bad habits as a result of their stunted education (90% chance).

      Case in point - a schoolfriend of mine. He liked to program but he didn't study programming. He came to me once so proud of his invention of a sorting function in BASIC. I checked it out and it was a Bubblesort. I don't recall whether I had the heart to inform him that the bubblesort is possibly the slowest recognised sort algorithm.

      Teaching programming to kids is a different kettle of fish. Depending on the age of the kids, introducing subroutines and stacks and recursive data structures may be well beyond their capacity to understand. So for kids, start simple: top to bottom execution, arithmetic, strings, conditionals, while loops. When they're ready for it start to introduce subroutines, data structures, recursion, pre- and post-conditions, invariants, objects, interfaces, inheritance, polymorphism.

    23. Re:Bad Design by Anonymous Coward · · Score: 0

      Geez... ever heard of "exercise" for the speller?

    24. Re:Bad Design by ynohoo · · Score: 1

      and what is OOP (Object Oriented Programming) but OPP (Obfuscated Procedural Programming)?

      bah humbug!

    25. Re:Bad Design by Anonymous Coward · · Score: 0

      /* Hey.  Btw, you can do recursion with an array.... This was fun! Shows recursion and only one function call to printf! Lamenes filter is making me write a larger comment.  I presume my datatype of int will overflow before i reach the fib(100). I dont have the time to check it. Anyhow, thanks for the inspiration. Hey.  Btw, you can do recursion with an array.... This was fun! Shows recursion and only one function call to printf! Lamenes. */

      include <stdio.h>

      int stack[100000];
      int SP = 0;

      #define push(x) stack[SP++] = x
      #define pop()   stack[--SP]

      #define fibcall(n,returnLine)           push(0);                \
                                              push(returnLine);       \
                                              push(n);                \
                                              goto fibfunc;

      #define fibback(result)                 result = pop();

      int main (int argc, char ** argv)
      {
              int fibfunc_temp;
              int answer = 0;
              int i;

              for (i=0; i < 100; i++)
              {
                      fibcall(i,0);
      LINE0:          fibback(answer);
                      printf("fib(%d) = %d\n",i,answer);
              }
              return;

      // Fibonnaci Function
      fibfunc:
              if (stack[SP-1] <= 1) // if n <= 1
              {
                      // fib(1) = 1, fib(0) = 0
                      stack[SP-3] = 1;
                      goto returnFromFib;
              }

              // Call fib(n-1)
              fibfunc_temp = stack[SP-1];
              fibcall(fibfunc_temp-1,1);
      LINE1:  fibback(fibfunc_temp);

              // Save Results
              push(fibfunc_temp);

              // Call fib(n-2)
              fibfunc_temp = stack[SP-2];
              fibcall(fibfunc_temp-2,2);
      LINE2:  fibback(fibfunc_temp);

              // Add saved fib(n-1)
              stack[SP-4]= fibfunc_temp + stack[SP-1];
              // Pop Saved result
              pop();

      returnFromFib:
              // Pop n
              pop();

              // Jump There
              switch(pop())
              {
                      case 0: goto LINE0; break;
                      case 1: goto LINE1; break;
                      case 2: goto LINE2; break;
              }

              // Never Get Here
              while(1);
      }

    26. Re:Bad Design by nite_warrior · · Score: 1

      No, it was not to use goto on C, for gosub, I was told not to use basic at all

    27. Re:Bad Design by Anonymous Coward · · Score: 0

      I agree with people needing to be taught best practices if they are your average programmer.

      I think the truly great ones will have figured out whatever you're going to teach them before you get a chance.

      I taught myself every concept they taught in college up to my sophomore year.
      (Rolla-Missouri, one of the best public colleges for engineering)

      The way I taught myself all the concepts was through my almost obsessive compulsion to do things perfect when programming. As I'm sure every great programmer has. I'd often jump ahead in class to the best solution before the professor had time to explain to the class how and why it was the best way. I'm not tooting my own horn, just trying to emphasize that devotion and passion will outstrip any force fed education. You develop the concepts yourself so you fully understand them as opposed to reading them and getting a weak grasp of them afterwards. It's just a different mind set, you would understand if you've been there.
      (Note: I did quit computer science and switch to finance after I had 40k in residual commissions from working as an insurance agent part time, after that much money coming in regardless of me working, I didn't see myself becoming a programmer, so I can't speak of advanced programming, just the basics you mentioned)

    28. Re:Bad Design by Anonymous Coward · · Score: 0

      come back when you implement tail recursion.

  3. Robo Rally by Speare · · Score: 4, Informative

    Also try Robo Rally. Of course, this deals with how to program a computer with a VERY limited instruction set, and with damaged hardware. :)

    --
    [ .sig file not found ]
    1. Re:Robo Rally by ArsonSmith · · Score: 2, Insightful

      It also teachs you about the aggressive tendancies of other programmers as well as the simple fact that other programmers just sometimes get in your way.

      --
      Paying taxes to buy civilization is like paying a hooker to buy love.
    2. Re:Robo Rally by coolGuyZak · · Score: 1
      After looking at the rules & play for each game, Robo Rally definitely looks like the more interesting of the two. Something about the other game feels just a bit to static for me... sort of like combining Sorry with arithmetic.

      Now, if Robo Rally only had branches...

    3. Re:Robo Rally by Yazeran · · Score: 2, Interesting

      Yep.. :-)

      Personally i think that Robo Rally is best with a group ov nerds and a crate of beer, but seriously, I can see that it could actually be used for educational purpose for kids, as there is a degree of exitement in the game (will i get to xxx without getting more shot up so i can repair?).
          At the same time educate something about the strict logical rules of programming (that a computer will do *precicely* what you programmed it to do without any consideration about the surroundings or change in the conditions the programmer did not anticipate) in a fun way (as learning it the hard way in front of a real computer can be quite fustrating as we all know...).

      Yours Yazeran

      Plan: to go to Mars one day with a hammer

    4. Re:Robo Rally by jscharla · · Score: 3, Informative

      With the Armed and Dangerous expansion there are a couple of upgrades that let you do limited run-time branching.

      My vote goes with Robo-Rally too. A great game. Total mayhem.

      --
      Save the whales... Collect the whole set.
    5. Re:Robo Rally by FurryFeet · · Score: 1

      RoboRally is a great game for teaching kids the basics of programming. But, in my experience, it's not a very good geek game. I used to play it with a bunch of computer nerds (my friends) and we NEVER made a mistake in programming (because they're only 5 very simple instructions)... and that tended to make the game boring.

  4. engineering application by millahtime · · Score: 4, Insightful

    This could have good implications on future engineers. Where I read that the US is falling behind, this could help teach the logic engineers, especially electrical and computer engineers, need to use regularly.

    1. Re:engineering application by Anonymous Coward · · Score: 1, Insightful
      This could have good implications on future engineers

      I doubt it. The last thing we need is yet more engineers (in computing or elsewhere) who aren't really interested and don't really get it. The article says:

      Learning how to become a computer programmer has never been easy or fun for most people

      Then don't bother. Seriously. Find something you enjoy doing. You'll have a better life. Don't study programming just because you think you might make some money (which is looking increasingly less likely anyway.)

    2. Re:engineering application by Anonymous Coward · · Score: 0

      First, your comment doesn't make any sense, grammatically, semantically or otherwise. Second, the moderators are obviously on crack.

    3. Re:engineering application by blancolioni · · Score: 1

      Is there an option on Slashdot that will stop the display of comments submitted within, say, five minutes of the time the article was posted?

      Because the parent is a classic example of the speed-posting malaise that infects Slashdot. It was posted very quickly after the article (I'm guessing by somebody who is intimately familiar with F5), and makes some vague, content-free statement about something that really has little to do with the original artcle, hoping that moderators will mistake imprecision for insight.

      Karma isn't real, ladies and gentlemen. Let it go.

  5. Why oh why?!! by Anonymous Coward · · Score: 0, Troll

    is the convention to use x++ when it is well known that in most languages ++x is faster? Yeah, I know that the compiler will choose the optimal one for the situation, but why leave things up to chance? left hand operators first!

    1. Re:Why oh why?!! by aePrime · · Score: 1

      Yeah, I know that the compiler will choose the optimal one for the situation

      Not on user-defined types where the operators are overloaded. Why? Because it doesn't know what you're doing.

    2. Re:Why oh why?!! by Wildclaw · · Score: 2, Insightful

      Your argument violates the prinicipal of not doing premature optimization. The choice between ++x and x++ should depend on readability.

      If you are using it as a standalone statement the obvious choice is x++ in most object oriented languages since it follows the convention of writing the object first and the action afterwards.

      If it is not standalone the different variants have different meanings so there is no need to choose because you are forced to use the correct one or the code won't work.

    3. Re:Why oh why?!! by Anonymous Coward · · Score: 0

      Assuming x=4, the test

      if (x++ < 5) { ... }

      produces much different result than

      if (++x < 5) { ... }.

      The first will be true, while the second will be false. The first will increment the value of x after the test, while the second will increment the value of x before the test.

    4. Re:Why oh why?!! by Anonymous Coward · · Score: 0

      Why is everyone biting this troll?

      C is a *right-hand* operator language. x+=2 does x=x+2, not 2=2+x.

    5. Re:Why oh why?!! by Anonymous Coward · · Score: 0
      You're probably thinking of situations like C++ overloads where there's a difference between
      foo& foo::operator ++ () { ... }
      foo foo::operator ++ (int) { ... }
      In the latter case, the compiler has to instantiate and return a temporary object. This can be quite expensive, but it's typically only a problem if you're doing it in a loop. (See sibling note about premature optimization.)

      However, when you use the post++ operator on an intrinsic type, the compiler only has to store the return value in a register before performing the increment/store. Of course if the temporary register is not used, an optimizing compiler will eliminate it completely.

      Also, a similar reduction is possible for C++ if the type is defined in the same translation unit and there are no side effects required by additional code required to manage construction of the temporary object; however, I'm not aware of any compilers that actually check that carefully. (Beware: many compilers, including at least some versions of gcc and visual studio, will actually eliminate constructors with intended side effects! This can really rain on your parade if you're trying to automatic reference counting.)
    6. Re:Why oh why?!! by Chris+Burke · · Score: 1

      This can be quite expensive, but it's typically only a problem if you're doing it in a loop. (See sibling note about premature optimization.) ...
      Of course if the temporary register is not used, an optimizing compiler will eliminate it completely.

      I like my non-optimized debug builds to not suck as much possible. While all your users may only care about the highly optimized release build, as a developer I spend most of my time running debug builds and every 1% extra to get to the point of interest affects the turnaround time on bug fixes.

      The previous comment on premature optimization applies, but I consider using ++x instead of x++ to be a no-brainer for a standalone statement, in particular its most common usage, which happens to be where it matters most, which is incrementing a loop iterator.

      Speaking of C++, this applies even moreso with loop iterators.

      --

      The enemies of Democracy are
    7. Re:Why oh why?!! by Anonymous Coward · · Score: 0
      GP here.

      > I like my non-optimized debug builds to not suck as much possible.

      Do you... Gentoo? <rimshot/>

      > every 1% extra to get to the point of interest affects the turnaround time on bug fixes

      As a former unix-based OS developer and current compiler developer, I'm going to have to call BS here. There's nothing you can possibly be doing that matters that much that you have to type ++i so your debug builds won't suck. Sure you may think it helps, and that's fine, but don't tell other people they have to do so.

      I'll admit that I also type ++i out of ancient habit, even though I know full well that it's not necessary 99.9% of the time. The compiler I work on actually transforms native type i++'s into ++i's in the parser stage if expression's return value is ignored, and it looks like GCC does the same thing:

      $ cat a.c
      int
      foo (int lim)
      {
          int i, x = 0;
          for (i = 0; i < lim; ++i)
              x += bar (i);
          return x;
      }

      $ diff a.c b.c
      5c5
      < for (i = 0; i < lim; ++i)
      ---
      > for (i = 0; i < lim; i++)

      $ gcc -S a.c b.c

      $ diff a.s b.s
      1c1
      < .file "a.c"
      ---
      > .file "b.c"

      So in conclusion, how about them apples?
    8. Re:Why oh why?!! by ufnoise · · Score: 1
      Your argument violates the prinicipal of not doing premature optimization. The choice between ++x and x++ should depend on readability.


      It is one thing if x is an integer. But if it is an object, the ++x is typically faster.


      In C++:
      ++x typically means increment and return the value
      x++ typically means create copy, increment, return copy


      This can potentially be an expensive operation and the compiler may not be able to optimize out the copy operation for anything but the simplest datatypes.


      I don't see this as premature optimization, and I am clearly stating that by using ++x that I don't need the temporary value.

    9. Re:Why oh why?!! by Procyon101 · · Score: 1

      X++; is premature pessimization AND is less readable.

      X++; reads: "create a temporary X and return it. Increment the original X. I shall destroy the temporary.

      ++X; reads: "increment X. Return it".

      ++X will almost never produce weird ref-counting side effects, etc that I can run into with X++. There's a whole lot less going on and alot less to think about. Any programmer that thinks X++ is MORE readable than ++X cannot be serious. They are so close in representation that it's simply a toss-up in readability of form. Readability of functionality there is no question that ++X is cleaner and clearer... and non-trivially faster for anything other than primitives.

    10. Re:Why oh why?!! by Chris+Burke · · Score: 1

      I'm going to have to call BS here. There's nothing you can possibly be doing that matters that much that you have to type ++i so your debug builds won't suck.

      It's not BS. It's not a binary suck vs not suck, it's about small improvements like I said. If you are using complex iterators, like my environment does, with lots of debug-only validation and value checking, then creating temporaries is wasteful.

      The rule about avoiding premature optimization is because you shouldn't be spending effort when you don't need to be. 0% extra effort for 1% speedup is just fine by those standards.

      The compiler I work on actually transforms native type i++'s into ++i's in the parser stage if expression's return value is ignored, and it looks like GCC does the same thing:

      I didn't know that. That is good.

      --

      The enemies of Democracy are
  6. If X == or = the number from the dice... by Anonymous Coward · · Score: 0

    I'd like a 20D +4 bonus please.

  7. Learn some HTML first by Anonymous Coward · · Score: 0

    < must be escaped with <

  8. Computer games for learning algorithms? by Anonymous Coward · · Score: 0

    Is there any computer game for learning algorithms?

    Everything I know is from games or movies.

    1. Re:Computer games for learning algorithms? by billimad · · Score: 1

      One of my first computer games (for the ZX Spectrum). You had to fill in breaks in the code using letters/symbols released around the screen whilst avoiding and fighting 'bugs' that would steal your code. Also on the demo tape for the ZX Spectrum were Monti Carlo and Foxes and Rabbits programs.

  9. Goto? by Conspiracy_Of_Doves · · Score: 0, Redundant

    This game is supposed to teach kids about programming and they are talking about Goto?

  10. Gravity helps by timeToy · · Score: 1

    A skier down the mountain: { Full_Speed() } While !Crashed

    1. Re:Gravity helps by Anonymous Coward · · Score: 0

      while (1) {
          go_that_way(really_fast);
          if (something_gets_in_your_way()) {
              turn();
          }
      }

    2. Re:Gravity helps by Anonymous Coward · · Score: 0

      I was not expecting a Better Off Dead reference. Nice.

    3. Re:Gravity helps by qray · · Score: 1

      No you need something like: while (Peek_Future() != crash) { Full_Speed(); }

      Presumably your Full_Speed call would generate an exception if Crashed was true. And with some skiers, Crashed could very well be true before you get to call Full_Speed ;-).
      --
      oxtro modcop froxtu recktro

  11. Actual squares from the game by Radres · · Score: 5, Funny

    "Job outsourced to India! Go directly to trade school, do not buy a house, do not get laid."

    "High school reunion time! The same guy who kicked your ass every day in high school and barely passed wood shop laughs at you because he makes more than you as a plumber while you wasted 4 years at college. Go back 3 spaces."

    1. Re:Actual squares from the game by Anonymous Coward · · Score: 1, Interesting

      "makes more than you as a plumber "

      This happened to me in real life. The plumbers and carpenters make 50% more and they get paid overtime. Which of course nobody in IT gets.

    2. Re:Actual squares from the game by sgt+scrub · · Score: 2, Funny

      well, at least the "not getting laid" part didn't change.

      --
      Having to work for a living is the root of all evil.
    3. Re:Actual squares from the game by korbin_dallas · · Score: 2, Funny

      Stop and read Slashdot. Skip a turn and write a reply to a topic.

      Boss needs estimates NOW! Skip a turn and write the boss some time estimates.

      Sidetrack! Your company moves your office so a VP could get a bonus this quarter. Skip a turn.

      Design Review! Skip a turn.

      Code Review! Skip a turn.

      Weekly Meeting! Skip a turn.

      Damn, no wonder I don't get any code written...

      --
      They Live, We Sleep
    4. Re:Actual squares from the game by Anonymous Coward · · Score: 0

      I know a guy that dropped out of his college engineering degree and went into plumbing. He boasted about the hours and pay until he found himself elbow deep in shit.

      Meanwhile, I know I could make more money as a manager at a video store than as a programmer. In my area, I'd be really lucky to find $40k as a programmer. The jobs all say they pay around $50k+, but the offers are around $30k and you negotiate to $40k. That's if you're lucky. These are senior positions, with a degree from an excellent school, and plenty of experience.

      Salary.com and others like that may claim that average wages - in my area - are $60k, but I have yet to see a single job paying it. Factor in overtime, as parent says, and you just can't compare.

    5. Re:Actual squares from the game by Anonymous Coward · · Score: 0

      This happened to me in real life. The plumbers and carpenters make 50% more and they get paid overtime. Which of course nobody in IT gets.

      One word: "unions"

    6. Re:Actual squares from the game by HateBreeder · · Score: 1

      Actualy, A union seems like a pretty good idea...

      I wonder why there aren't any IT worker unions.

      Perhaps because of the "personal contract" thing?
      And maybe since the average benifits and pay are much better than the average non-IT job would offer?

      Or perhaps all these were true 5-10 years ago, but the bubble has since exploded... And so we *do* need a union.

      Or do we?

      --
      Sigs are for the weak.
    7. Re:Actual squares from the game by borawjm · · Score: 1

      I think alot of that has to do with the fact that plumbers charge per-hour (the same applies to carpenters and electricians). So it's simply a matter of building a good client base.

      Theoretically, if you ran your own personal business, and could consitently fill in 50-60hrs per week, you'd probably make a good living.

      or.... you could do as my friend does, and work for a large company (which he gets paid by the hour) and then do side jobs on the weekend/weeknights. Again, he's built up a good reputation and client base over the years and can fill in those spots for side work.

      They might make more than programmers, but they have to put in a lot of hours and build a good client base and reputation. That, topped with the fact that you'll be doing hard physical labor until you turn 65, and have little to no social life because of the amount of hours per week you'll need to put in, doesn't make it as appealing.

    8. Re:Actual squares from the game by Rick+and+Roll · · Score: 1
      That's what happens when you're an average programmer.

      ...Which is why being average is something I'm trying to avoid.

    9. Re:Actual squares from the game by arzynik · · Score: 1

      i worked tech suport and got double time for working double shifts, then 2.5x for working on a holiday double shifts. but i got laid off twice....now i do web hosting and development...and make jack

    10. Re:Actual squares from the game by Markvs · · Score: 1

      Because those of us that are acutally *good* at what we do would be scared shitless if our compensation was dictated by the lowest common denomenator.

      Would you really want a unionized IT shop? Consider: your routers are now being worked on by some guy with 20 years seniority (say, on Notes or IBM mainframes) that doesn't know what an event horizon is.

      Go sit in on a teacher's union meeting sometime.

      --
      46. The Hobo smiles, his eyes glaze over, and he burps. "Beware the man who has lived longer than the Wasteland."
    11. Re:Actual squares from the game by talmage · · Score: 1

      "Kid who used to pick on you became CFO of a major telecommunications company then went to jail for fraud. Advance your token to GO. Collect $200."

  12. Why not build a robot?? by technoextreme · · Score: 4, Informative

    There are fifty differnt robot kits floating about. They are much more entertaining and probably can help people program just as much as a boring board game.

    --
    Ooo man the floppy drive is broken. No wait. The computer is just upside down.
    1. Re:Why not build a robot?? by Surt · · Score: 2, Funny

      Board games don't have to be boring. I made a boardgame of the new show 'Prison Break'. It comes with a metal shiv for each player, and only the winner walks away. Tell me that's boring!

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    2. Re:Why not build a robot?? by Chyeld · · Score: 1

      Did you include the "Get a pointless tattoo to remember stuff a man with amnesia would have trouble forgetting?" square?

      ALLEN WRENCH!

    3. Re:Why not build a robot?? by lawpoop · · Score: 2, Insightful
      Board games (and probably games in general) appeal to people who are interested in competing with others. Robotics kits appeal to loners, and certainly don't lend themselves to a group effort or competition. Sure, you can have robot battles *after* you or a team has built a robot, but at that point you are making a game out of the robot-building.

      We need both types of projects to teach all kinds of kids logic.

      --
      Computers are useless. They can only give you answers.
      -- Pablo Picasso
    4. Re:Why not build a robot?? by Surt · · Score: 1

      I guess I probably would have, but actually, like most people, I skipped actually watching prison break, and went straight into making fun of it.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
  13. From c-jump.com by Stanistani · · Score: 2, Informative

    *Of course this omits thre pretty pictures*

    c-jump: Ski & Snowboard Race

    Discover fundamentals of computer programming by playing a board game!
    c-jump helps children to learn basics of programming languages, such as C, C++ and Java.

    Players:
    2 to 4 players
    Ages:
    11+
    Object Of The Game:
    First player to move all skiers past the FINISH line is the winner!
    Equipment:
    One game board, one die, and sets of colored pawns representing skiers and snowboarders for each player.

    Great and unique learning game for kids! It teaches the child basic commands of a programming language, such as "if", "else", "switch", and introduces variable "x" concept.

    The child calculates number of steps in the move, including addition, subtraction, division, and multiplication of small numbers. The game helps to develop understanding of a complete computer program, formed by logical sequences of commands.

    This game eliminates intimidation of many kids and their parents, bored by the mention of "computer programming", often associated with visions of geeky guys glued to their computers. c-jump reveals simple programming terms in a cool way!

    By moving around the board , entering loops, branching under conditional and switch statements, the players gain physical experience of a complete program. Understanding of the internal action of a computer is essential to understanding what software is. Static program causes dynamic process in the computer. By playing the game, players see this process as physical and spacial motion.

    c-jump facts:
    This game is not only about teaching and learning: it's fun and entertainment for the whole family!
    Skiing and snowboarding is a perfect programming analogy.
    c-jump game is ideal for home school education.
    The game is based on the code of a real computer program!

    Proceedings of our business support Common Text Transformation Library, an open source programming project on the internet. Please feel free to visit and download!

    US Patent 6,135,451
    © 1997-2005 Igor Kholodov

  14. Rules. by coolGuyZak · · Score: 3, Informative

    Here are the rules, in case people want to check the game out further.

  15. Anyone ever play Hacker? by Conspiracy_Of_Doves · · Score: 1

    http://www.fairplaygames.com/gamedisplay.asp?gamei d=797

    I played it once. Not too bad from what I can remember. The box art actually includes a can of Jolt and real 80's hacker references like "Legion of Doom"

    1. Re:Anyone ever play Hacker? by ericski · · Score: 1

      I played it. Still have it.

  16. while (X4)?? by Russ+Nelson · · Score: 1
    Shouldn't that be
    while (X <> 4)
    more likely?
    --
    Don't piss off The Angry Economist
    1. Re:while (X4)?? by Anonymous Coward · · Score: 0

      Seems like you use VB too much :). X4 evaluates to true if x does not equal 0. Helpful hint: while on slashdot NEVER post ANYTHING using VB unless you feel like getting lynched ;)

    2. Re:while (X4)?? by fbartho · · Score: 1

      they lost a < symbol from the article text... its not <> in C anyways... its !=

      --
      Gravity Sucks
    3. Re:while (X4)?? by Dachannien · · Score: 1
      Or perhaps:
      while (X &lt;&gt; 4)
  17. SkiFree! by sonixtwo · · Score: 5, Funny

    Maybe some kid will figure out how to finally get past that damn monster!!

    1. Re:SkiFree! by Anonymous Coward · · Score: 0

      Hahah! yes! I love skifree! I actually did get past the monster a few times, the course wraps back to the beginning. He never gives up though, even though the energy he expends in pursuit may be greater than the energy regained from feeding on your remains. Kinda like the RIAA...

  18. This really is only dimly connected with programs by UserGoogol · · Score: 3, Insightful

    This is really more of a math game than a programming game per se. Yes, it teaches the concept of conditional branching, but that's not especially new to the world of board games. Also, "x" isn't really a variable, but instead represents the number you rolled, which is different from how programming actually works. (Which is potentially confusing, because c-jump otherwise uses a fairly C-like syntax, with == instead of = and everything.)

    Not to say that this isn't a potentially educational game, but this is really more a way to practice doing simple arithematic and logic instead of anything specific to programming itself. (Although arithematic and logic is certainly worth learning.) It would probably lose absolutely nothing in playability or educational value if they removed all C stuff from it and just made it into a silly little math game.

    --
    "Never attribute to malice that which can be adequately explained by stupidity." -- Hanlon's Razor
  19. Correction by Gyorg_Lavode · · Score: 1
    Correction:
    The quote is
    "while (X[less than]4) you can take the orange path,"

    Which I'm sure we can all agree makes slightly more sense.

    --
    I do security
  20. Teach crap syntax, more like by fuzzy12345 · · Score: 1
    I think this game sends a strong message that programming involves the rote application of crap syntax to simple problems. What kind of programmers are created by teaching that the "basics of programming" consists of memorizing a weird syntax created by fools who didn't see the obvious confusion between = and ==, made arbitrary distinctions between 'statements' and 'expressions' and who ended up trapping their victims in a miasma of non-transformable, non-intuitive syntax which is difficult for A COMPUTER to parse, never mind mere mortals.

    Choose Lisp! You have nothing to lose but your shackles and +++ATH CENSORED

    --

    Everybody's a libertarian 'till their neighbour's becomes a crack house.
  21. Re:Infinite loop. by technoextreme · · Score: 1

    Dam it. I keep on rolling 3. Ill never get down the mountain.

    --
    Ooo man the floppy drive is broken. No wait. The computer is just upside down.
  22. I liked the concept by leighklotz · · Score: 3, Informative


    One of my favorite early computer toys was the CARDIAC, the Bell Labs "Cardboard Aid to Computation," and I was hoping that this board game might re-create some of that excitement for today's kids. I liked the concept, but was a little dismayed by the attention to syntax. I'm more of the "Syntactic sugar leads to cancer of the semicolon" school of thought.

    I worked on the Logo implementations for the Apple ][ at the MIT Logo lab, and at Terrapin did the Commodore 64 (and other ill-fated Commodore computers), Macintosh. (I also various implementations and translations for Japan, Spain, France, and Germany.)

  23. Great! by manifestcommunisto · · Score: 1

    All we need is more computer programmers... As if we don't have enough yet.

    1. Re:Great! by kkek · · Score: 1, Insightful

      "All we need is more computer programmers... As if we don't have enough yet."

      No, what we really need is more good computer programmers.

  24. You insensitive clod!! by Anonymous Coward · · Score: 0

    Apple-filled classrooms??

    We had one damn TRS-80 Model I for the entire school!

  25. Learning to Program by mysqlrocks · · Score: 2, Insightful

    Learning how to become a computer programmer has never been easy or fun for most people. Some would even call it boring.

    This first line hints at an important point the article missed. Some of us actually liked learning to program. I remember learning BASIC on my Apple IIC when I was 12 years old. If you don't have the hacker mentality - the feeling that you want to figure things out - then you're going to have a hard time learning to program. I don't know, maybe this hacker mentality can be learned.
  26. Solitaire Encryption Algorithm by Danta · · Score: 2, Interesting

    If you find this interesting you might be interested in Bruce Schneier's Solitaire Encryption Algorithm, a real encryption algorithm using a deck of cards.

  27. Looks boring by LordNimon · · Score: 5, Insightful
    I tried reading the rules, but they're hard to understand just by reading the web page (and yes, I'm a programmer). From what I gather, there are no real decisions that the player makes. That is, you roll the dice and your move is based solely on that dice roll and whatever square you happen to be on.

    What would be cooler is if while playing the game, you had to build a "program" of sorts, and you can't win the game until your program produces a specific output. You could then compete against other players for resources needed to finish your program. This would allow you multiple ways to win based mostly on your ability to understand programming concepts.

    I see this game as a cool idea, but it's really just a first step.

    --
    And the men who hold high places must be the ones who start
    To mold a new reality... closer to the heart
    1. Re:Looks boring by heauxmeaux · · Score: 0


      It is.

      --
      Beat 'Em and Eat 'Em
    2. Re:Looks boring by Anonymous Coward · · Score: 0

      That's the whole problem with this "game". There is no game. Once you understand the syntax, it just a lot of dice rolling. The while loops look especially fun, "oh, I failed to roll the right number again, let me go around the loop yet again."

  28. Cling Tight? by hackwrench · · Score: 1

    What? Afraid you might lose them?

  29. Yeah, they're like exceptions in C... by mekkab · · Score: 2, Insightful

    I just wrote code today that had a bunch of gotos in it.

    pass in a string pointer, and if your return code was -1 log the string.

    If you use Exceptions in Java or Ada under the covers they are just jumps.

    --
    In the future, I would want to not be isolated from my friends in the Space Station.
    1. Re:Yeah, they're like exceptions in C... by mrpotato · · Score: 1

      Exceptions are not just jumps: they unwind the stack, too.

      --

      cheers
    2. Re:Yeah, they're like exceptions in C... by Procyon101 · · Score: 1

      All branches in code are "just jumps". All branches in code are just goto in another form. Goto isn't inherently evil... it simply is too general and therefore allows you to do both "good" and "evil" branching practices. All the well accepted "good" branching practices have their own names, so therefore goto is in almost all cases bad if it is covering up for a branch structure that cannot be performed by it's simpler brethren (while, do...while, for, if...then...else, switch, throw...catch, break, continue, throw, virtual, and function_call...return), therefore the concept that goto is evil, because you are very likely using a poor practice when resorting to it. I have never run into a branch structure that does not fit into one of the standard branching instructions. I've THOUGHT I did before, but after reflection I always found a better way to structure the loop.

      As for your example, I don't get it: // This would be clearer if I threw in a bunch of goto's
      if(-1 == f(s)) log(s);

      or are you doing the old cleanup at the bottom of the function madness instead of a couple guard classes and logging in the catch like your supposed to?

    3. Re:Yeah, they're like exceptions in C... by Ihlosi · · Score: 1
      All branches in code are "just jumps".

      ... sort of. They all boil down to some sort of jump/branch instruction in assembly.



      That is, unless your target architecture supports weirdo things like zero-overhead-looping or conditional execution. TI DSPs, anyone ?

    4. Re:Yeah, they're like exceptions in C... by mekkab · · Score: 1

      Clean up at the bottom and return. Yes, there are two return statements, the one right above the labeled "error_handling_section", and the one within the error_handling_section (which always returns -1).

      Guard "Classes", what are these guard "CLASSES" in C? What is this "Catching" in C? Do tell me more, I'm very interested!

      Now as for your more general assesment, you are absolutely correct. however it would be ignorant of me to say "All would-be programmers should learn assembly!" While they should, many won't. So in effect, what is the value for teaching a goto in a board game? Well, when they get to programming java ( a likely candidate for a first programming language) its analgous to having an exception raised and "jumping" down to the catch block.

      While thats not absolutely 'correct', its still a plausible reason for inclusion in a game.

      --
      In the future, I would want to not be isolated from my friends in the Space Station.
    5. Re:Yeah, they're like exceptions in C... by mekkab · · Score: 1

      Yes, that's their true value to the debugger. However I think the concept of a "stack" is a little beyond the aims of this board game. Its also beyond most entry level programmers; witness the difficulty they have with recursion.

      --
      In the future, I would want to not be isolated from my friends in the Space Station.
    6. Re:Yeah, they're like exceptions in C... by Procyon101 · · Score: 1

      :) I assumed C++. If your programming in C, then the "handle errors at the bottom" style is acceptable because you don't have classes and try...catch. I see *ALOT* of C++ written that way though, and it's a big no-no because destructors are a much cleaner and less error prone mechanism to make sure things get cleaned up properly and in the right order.

      I would still question teaching goto in an introductory game. Even though goto is semantically simple, it's and extremely advanced concept and rarely ever used. I'd rather give them "for", "if..then..else" and a "gosub" type construct and let them use the basics to figure things out.

      I'm introducing my 11 year old daughter to the concepts because she is very interested and I just threw scheme at her via the book "the little schemer" and she is having a wonderful time learning. They don't even give her "for" so she has to recur with function calls. With such a limited set to work with I think she may become better at functional deconstruction than I am because she is learning to use the stack exclusively rather than using branching as a crutch like I always have.

  30. Re:This really is only dimly connected with progra by Red+Flayer · · Score: 1

    "(Although arithematic and logic is certainly worth learning.) " (emphasis mine)

    Yes, but grammar and syntax are certainly worth learning too :)

    --
    "Trolls they were, but filled with the evil will of their master: a fell race..." -- J.R.R. Tolkien on Olog-hai
  31. oregon trail by Anonymous Coward · · Score: 0

    any body click on the link to oregon trail, read the summary and suddenly have flashbacks about sitting in computer class in elementary school? i thought math munchers was number munchers? maybe im wrong

  32. Robot Odyssey by willy_me · · Score: 3, Interesting

    This was a great little Apple IIe style game that I enjoyed in elementary school. Looking back, I now see that it taught basic electronics and logic. It was lots of fun at the time. More info can be found here.

    1. Re:Robot Odyssey by moofrank · · Score: 2, Interesting

      Actually, this is how I learned logic fundamentals. The game itself teaches the basics of digital design including the core gates, AND, OR, flip-flops, as well as timing and delay issues. The game is pretty hard considering the intended audience, with some of the final puzzles requiring having three robots zipping around a room, sending signals to each other to keep their moves in sync. Best educational game ever.

    2. Re:Robot Odyssey by Anonymous Coward · · Score: 1, Interesting

      Robot Odyssey was a GREAT game and so educational! And even before I played Robot Odyssey, I played Rocky's Boots. That one was kind of like a MUCH simpler version of R.O. much more focused on basic logic (AND-gates, etc.) than construction, and more younger-kid-oriented.

      It would be great if somebody updated these games into a modern form for kids today. It's hard to keep a modern kid's attention on a 4 color "HGR" screen.

  33. From the site by kevmo · · Score: 1

    "Skiing and snowboarding is a perfect programming analogy."

    It's a nifty little game, but that statement seems a little out there. I think the only thing that really links the two is that they both advance forward in time. He could have used any analogy: canoing down a river, walking to class, really anything that involves movement in some direction through time.

  34. Already been done by dmccarty · · Score: 0, Redundant
    players must use simple logic similar to that used in programming to get their skier down the mountain.

    Hey, didn't Microsoft already come out with this?

    --
    Have fun: Join D.N.A. (National Dyslexics Association)
  35. Why not both? by khasim · · Score: 1

    In certain script situations, I use goto for the main loop which is comprised of a series of gosubs.

    The main trick is writing the gosubs so that they execute cleanly and return the state of the sub-routine when they return to the main loop.

  36. Never use a goto? by hackwrench · · Score: 1

    Why not? It might be fun!

  37. Re:Inner workings of a computer by wed128 · · Score: 0, Redundant

    First off, the summary (didn't RTFA) never said they were forced to play. Second of all, it's a hell of a lot more usefull than some of the crap i learned in grammer school.

  38. fsck the game by 0110011001110101 · · Score: 1
    I want to know more about Oregon Trail!!!

    I had forgotten all about it until this article mentioned it.. and now I need to know, can I still get a copy of that game somewhere?

    --
    Don't anthropomorphize computers: they hate that.
    1. Re:fsck the game by edbosanquet · · Score: 1

      I dont know if you can get a copy but I still play it on my Macontosh (the orgional)

    2. Re:fsck the game by sonixtwo · · Score: 1
    3. Re:fsck the game by 0110011001110101 · · Score: 1

      you sir.. are a godsend.

      --
      Don't anthropomorphize computers: they hate that.
  39. Bah. Back in my day... by Otto · · Score: 2, Informative

    We used LOGO on an Apple IIe and we liked it!

    That little turtle moving all over the scren to make what were essentially spirograph pictures? Back then that was state of the art shit, boy.

    Made learning programming reasonably simple too, since you learned to think in terms of the algorithim. Also taught trig, since you had to deal with angles all the freakin time. But it worked, by gum! :D

    --
    - Give a man a fire and he's warm for a day, but set him on fire and he's warm for the rest of his life.
  40. It's been done before: PLATO IV by sakusha · · Score: 3, Interesting

    I remember seeing a similar theme a long LONG time ago, back when I was a little kid about 12 years old, when I wheedled access to the local university PLATO IV terminal.

    The scenario was a little oval track with a train that went around and around, the computer randomly generated 3 numbers, and you would type in an algebraic expression to get the number of spaces you would move. You could go for the longest distance, or you could try to hit special squares, like bonus multiplers, or you could try to land on the computer opponent's train which would send him backwards. I was a pretty young kid back then, but I do recall it really made me think hard about algebra, and it was a lot of fun.

    PLATO IV had another educational game I really liked, I think it was MoonWars or something like that. You could play live against online opponents too. You had a screen with a random placement of circles (representing craters, I guess). Then you and your opponent were placed on the playing field. You played in alternating turns, you could either shoot a laser at your opponent, or move. The laser would bounce off the sides of the screen, only stopping when it hit the opponent or a crater. Sometimes if you had a clear field, you could use angles really close to perpendicular or horizontal, yielding crazy shots that went back and forth dozens of times. But mostly you just tried to bank shots off the sides, trying to home in to the opponent until they chickened out and moved. The educational content was pretty good, obviously you learned that angle of incidence = angle of reflection, but it also allowed you to input your shot's angle in algebraic notation, in degrees or radians. I immediately realized it was a lot faster to do algebraic notations in radians.

    PLATO IV really was a groundbreaking platform for educational games, someone ought to revive some of their old classics. I made a couple of feeble attempts to write a MoonWars clone but I never got anywhere.

  41. Try not using "goto"... by chphilli · · Score: 1

    ...in an assembly language program.

    --
    Please ignore any obvious problems in this post.
    1. Re:Try not using "goto"... by Usquebaugh · · Score: 1

      JMP & CAB are OK but GOTO is an invalid opcode

    2. Re:Try not using "goto"... by Anonymous Coward · · Score: 0

      Just use a call and pop the return address off the stack. No "goto" required.

    3. Re:Try not using "goto"... by Anonymous Coward · · Score: 0

      try looping, whore.

  42. Skifree? by digital-madman · · Score: 1

    Isn't this a kinda ripoff of Skifree... or is that a twisted repressed childhood memoryu of mine?

    --
    A bullet sounds the same in every language. So stick a fucking sock in it...
  43. Games that teach computer logic by g_adams27 · · Score: 4, Informative
    For learning the basics of AND, OR, XOR and NOT logic, along with building basic circuits, you just can't do any better than Robot Odyssey. This is probably the greatest educational game I ever played as a young teenager. I trace my interest in studying, and then making a career out of computer science largely back to this game.

    For slightly younger people, there's Rocky's Boots made by the same people (The Learning Company). It teaches a lot of the same things, but in an easier (and cuter) style.

    All you need is an Apple II emulator like AppleWin and you're all set!

    1. Re:Games that teach computer logic by Jim+Hall · · Score: 3, Interesting

      You may also be interested in GNU Robots. I wrote this several years ago, but stopped working on it in 2000 (it was complete, though.) The GNU Savannah site still lists me as project owner, but zeenix now does the development. He last checked in changes 2 weeks ago, so looks like it's still active.

      I wrote GNU Robots because I had fond memories of the old Mac game, Chipwits. In Chipwits, you construct a "program" for a simple robot by setting down "tiles" or "chips" in a grid, where each "chip" contained a single action (check the space ahead of you, pick up an object, turn, move forward, etc.) There were T/F "chips" to make checks. Each "chip" was wired to the chips around it. This was a gentle introduction to the concepts of computer programming. I was already a programmer of sorts, but I found the game fascinating.

      GNU Robots is a much simpler version of that, but (in theory) should be extensible to something like Chipwits. A robot program is written in Scheme, where you have functions available to make the robot turn, move, etc. You might be able to construct a programmer's GUI to set up a "tile" for each action, where each "tile" can be represented by Scheme code. And the wired connections to each "tile" can be represented by tail-recursion. I lacked the GUI programming knowledge to create this at the time, which is why I left it as a simple Scheme program. (If anyone out there is interested in doing this, many people will thank you for it.)

      FYI: the Chipwits home page shows it as "coming soon" since 1999. So there's no hope in a return of the original.

    2. Re:Games that teach computer logic by dmd · · Score: 1

      You don't even need an emulator! http://www.droidquest.com/

    3. Re:Games that teach computer logic by psocccer · · Score: 1

      I loved Robot Odyssey and Rocky's Boots. I had it on the coco2 though and not on the Apple. However I recently found a java "remake" of Robot Odyssey online and it's been fun to replay it again without wrestling with an emulator:

      It's called Droid Quest, download it today an relive your childhood :p

    4. Re:Games that teach computer logic by Lord+Kano · · Score: 1

      Robot Odyssey and Rocky's Boots taught me about logic way back in 1984 when I was in 4th grade.

      I and a good friend used to play that game for hours in school. He later went on to get a scholarship to CMU and is pulling in all kinds of green doing the grown up version of what we did 21 years ago.

      LK

      --
      "Hi. This is my friend, Jack Shit, and you don't know him." - Lord Kano
    5. Re:Games that teach computer logic by runderwo · · Score: 1
      Heh. Glad to see a mention of Rocky's Boots. I grew up with that program. My name is mentioned in the Underdogs blurb.

      I seemed to be the only one in the world with a PC copy. When I emailed Sarinee at first, she insisted that it did not exist for the PC. I made a copy with my venerable Central Point Option Board and sent it to Demonlord for cracking. The crack turned out to be simple.

      I was glad to provide this apparently-rare program, because it was the primary facilitator of my being able to grasp digital logic. Absolutely invaluable. And fun to 'boot'.

  44. example scenario by ShentarZ31 · · Score: 1

    if (currentSpace == Boardwalk) { cuss; if (bankRoll > 2500) { transferMoney(2000); else cuss; accuseOfCheating(); hitBanker(); throwBoardOnFloor(); neverPlayAgain(); printf("Monopoly sucks!!"); } }

  45. Unix Network Programming by bsd4me · · Score: 1

    My copy is at home, but I believe Stevens' Unix Network Programming has an example with either listen() or accept() where using a goto is the only way to guarantee proper results.

    --

    (S(SKK)(SKK))(S(SKK)(SKK))

    1. Re:Unix Network Programming by Anonymous Coward · · Score: 0

      I'd love to see that...

  46. Oregon Trail? by Anonymous Coward · · Score: 1, Funny
  47. oregon trail was da bomb!!!! by jshaped · · Score: 1

    Oregon Trail was one of my first exposures to a computer.
    It was back in elementary school, probably 2nd grade.
    We were using the good old Apple IIe's.
    We had to carefully insert the big 5 1/4 floppy, close the door, and turn on the computer.
    It was sooo powerful.

    I loved that game.
    The best part was when you went hunting,
    you would spin around and shoot pellets at bears and rabbits.
    The 2nd best part was when you crossed a stream.
    80% of the time when crossing a stream some member of your group would come down with malaria or some weird disease and die.
    And you had to be careful of crossing some streams, they might be too deep and your wagon could float away.

    That was the best game ever.
    They should bring it back in 3D form... maybe as a MMORPG

  48. Re:This really is only dimly connected with progra by Red+Flayer · · Score: 1

    "Not to say that this isn't a potentially educational game, but this is really more a way to practice doing simple arithematic and logic instead of anything specific to programming itself."

    Except, of course, that arithmetic and logic are the foundations of programming. Everything else is bells and whistles, since at their core, computers are a set of binary states.

    Understanding of complex logic is not common at all. My days are consistently made more frustrating by the inability of my coworkers to understand a simple conditional action. I'm not even talking about programming syntax, I'm talking about real-life. If the expense is not approved, get the approval; if it is approved, proceed to step 2. Then again, I'm an accountant, so at least the arithmetic is pretty good.

    Anything at all that helps people learn basic and complex logic is good.

    I still think the best way to teach a kid logic is to sit him/her in front of a computer to program in Basic. Give them some sample games, they'll take it from there. Make them load programs from a tape cassette, and they'll learn about efficiency in writing code.

    --
    "Trolls they were, but filled with the evil will of their master: a fell race..." -- J.R.R. Tolkien on Olog-hai
  49. Ahh, memories of the TRS-80 by Not-a-Neg · · Score: 1

    Was anyone else's first thought after reading the newspost, of that game for the TRS-80 where you had to answer math questions to get the skier down the hill? Oh, how I miss those ASCII slopes!

    --
    -==- Buy a Mac and leave me alone!
  50. Re:Biocomputing by Anonymous Coward · · Score: 0
    Oh, ha ha ha! Drugs and booze! That's so funny and cool and far out and wild and right on!

    But seriously, get out of the 1970's, boring person.

  51. Also in GCompris by xarma · · Score: 1

    We have this feature in GCompris but focused towards the youger kid. There is no loops, just sequencial order of commands. http://gcompris.net/article.php3?id_article=5999 I believe we need to teach kids it can be powerful to type in commands for the computer to execute. Do you believe it can help them understand computers?

  52. Fun Game - ACTUAL PROGRAMMING by Jack9 · · Score: 3, Informative

    Changed a bit since it was being beta tested in 1996 and even more difficult getting 3 other programmer kids to play...

    http://www.sierramadregames.com/smg/robotanks.html

    --

    Often wrong but never in doubt.
    I am Jack9.
    Everyone knows me.
    1. Re:Fun Game - ACTUAL PROGRAMMING by Jack9 · · Score: 1

      er 1992, memory of the 90's kinda hazy.

      --

      Often wrong but never in doubt.
      I am Jack9.
      Everyone knows me.
    2. Re:Fun Game - ACTUAL PROGRAMMING by LordNimon · · Score: 1

      Thanks - I just bought a copy.

      --
      And the men who hold high places must be the ones who start
      To mold a new reality... closer to the heart
  53. They're reissuing it [O frabjous day!] by Dr.+Photo · · Score: 3, Informative

    I thought of (and googled for) Robo Rally too when I saw the article, and it appears that they've reissued the game, which had been most lamentably out of print for 4 or 5 years.

    Still costs around 50 bucks, but IMO definitely worth it.

    http://www.wizards.com/roborally/

    1. Re:They're reissuing it [O frabjous day!] by usrusr · · Score: 1

      hope the reissue does not suck as much as the german "amigo" version...

      "someone got a spare move 3 for me?"

      since i found out that wizards stopped making the original game (before i could get my hands on armed & dangerous, cruel cruel world) i live in constant fear that something could happen to my twonky, or one of the cards

      --
      [i have an opinion and i am not afraid to use it]
    2. Re:They're reissuing it [O frabjous day!] by GospelHead821 · · Score: 2, Informative

      I purchased the reissue and I am very satisfied with my purchase. It's a smaller set of boards and it doesn't include many of the more complicated board elements (radioactive goo, etc.) but I think that serves to streamline the game. The rules are better defined than I remember them being in the original (although, being an Avalon Hill game, you still have to interpret sometimes.) I think that there's a good distribution of cards and a very nice selection of boards. The option cards a a trifle dry, but some of the more "exciting" options were terribly hard to understand. I give the game high marks -- probably 8.5/10 overall.

      --
      Virtue finds and chooses the mean.
      Aristotle, Ethica Nichomachea
    3. Re:They're reissuing it [O frabjous day!] by SteevR · · Score: 1

      Ummm Roborally isn't an Avalon Hill game. It was designed by Richard Garfield, the creator of Magic: The Gathering. It was published in '94 by Wizards of the Coast. The recent reissue has been published under the Avalon Hill label by Hasbro.

      It would be more legally accurate to say that Hasbro has reissued a Hasbro game. Too bad TSR (thus SSI) and everybody belongs to the giant now, too.

      --
      Performing sanity checks on your own beliefs is vital in avoiding poisoned koolaid.
  54. Re:Biocomputing by Doc+Ruby · · Score: 0, Offtopic

    Yeah, I can remember the 1970s, back when people still took drugs and drank alcohol, never having any fun. So boring. Not like now, when virgins can post anonymous drivel to Slashdot. You'd make a terrible philosopher anyway, if anyone still had the patience to think before they spoke.

    --

    --
    make install -not war

  55. Mindrover by p_conrad · · Score: 2, Interesting

    This looks really basic, and why skiing?

    If you really want a kid to dive into programming, I'd think Mindrover is a better choice. It's got programming, simulated physics, simulated electronics and competition that doesn't involve a roll of the dice.

    I don't see how the c-Jump game would ever teach the trial and error aspects of coding. In Mindrover, you code better to win, and get to see a lot of hilarious faliures as you learn.

  56. Better Off Dead by ellem · · Score: 2, Funny

    $go (that way eq really_fast) ;

      if $something (%gets_in_way) {
         $turn ;
      } else {
         die print "You have crashed!" ;

    --
    This .sig is fake but accurate.
    1. Re:Better Off Dead by Reverend528 · · Score: 1

      Where's my $2?

  57. you forget by geekoid · · Score: 1

    that crashing is far more likly while skiing.

    And you have to watch out for trees...sneaky sneaky trees.

    --
    The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
  58. Algoritmo by pamar · · Score: 1

    A fairly obscure Italian boardgame from 1994.

    Check more about it here: http://www.boardgamegeek.com/game/7580

  59. Paradigm Shift Underway by viewtouch · · Score: 2, Insightful

    What's happening is that we are yet again changing the way we think. When we developed spoken languages it changed the way we think. When we developed written languages it changed the way we think. When we developed mathematical, chemical, financial and engineering languages it changed the way we think. Now we're developing graphical languages and that will again change the way we think, not to mention the way we communicate, work and create. This is really what the article hints at and this is why it's tremendously significant. When a person uses a graphical language instead of a text language it's an entirely different process, approach and result.

  60. This goes back to the PDP-11 or earlier by Urusai · · Score: 2, Interesting

    Stacks were done with something like:
        POP x = *(p++)
        PUSH *(--p) = x
    since stacks grew downward. With this method, p == 0 means empty stack, which is nice.

    The only reason ++x might be faster than x++ is that no "temp" register is needed to store the unincremented original value. The two forms are NOT semantically equivalent, unless you are ignoring the return value. Any half-smart compiler would not allocate a temp register for an unused value.

    And that's all, folks.

  61. Re:Inner workings of a computer by hackwrench · · Score: 1

    But none of this has anything to do with whether the summary said they were forced to play. This is about whether an indeterminate "they" "should" learn about the internal workings about computers. You could have countered his "Tell me again why they should learn the inner workings of the computer." with the reason "Because they want to" but you didn't, instead responding with a negative "should", so I countered your "should" with a reason.

  62. enemas... by binarybum · · Score: 1

    are cheaper, and probably more fun than this.

    --
    ôó
  63. You don't like the grease from bacon. I boiled it. by freeweed · · Score: 1

    So you crash and die if something DOES NOT get in your way? :)

    --
    Endless arguments over trivial contradictions in books written by ignorant savages to explain thunder in the dark.
  64. How about a board game for development TEAMS? by Anonymous Coward · · Score: 0

    I'll even help make the cards:

    - You released your game prematurely and gamers avoided it because it was buggy. You lose $1000.

    - You've passed "Go". You get $200 in PayPal donations.

    - EA bought your company. Go back 5 spaces.

    - Your lead developer left you and went back to school. Pick a card from the "Hire" deck.

    - You met your deadline 2 days in advance. Roll again!

    - You failed to hire any artists from your IRC chat room. Lose a turn.

  65. Solved in 1985 by Flunitrazepam · · Score: 1

    "Go that way, really fast. If something gets in your way, turn."

    --
    1) Your analysis is based on bad assumptions so your result is way off. 2) You're a sick bastard for fucking a horse.
  66. Chipwits by Anonymous Coward · · Score: 0

    When I was a kid, I learned a lot about performing complex conditional logic playing ChipWits. Truly a masterpiece, and really should be reincarnated. Anyone?

    http://www.richardsnotes.org/archives/2005/03/29/c hipwits/

  67. Ouch by dexter+riley · · Score: 1
    if (player.name() == "Sonny Bono")
    System.exit(0);
  68. Rocky's Boots by jafiwam · · Score: 2, Informative

    There was a game way back when on the Atari2600 called "Rocky's Boots" that presented sorting problems of objects on a conveyor belt in various factory situations.

    The player took mechanizms like "not" and "or" and characteristics "round" or "filled" to make logic that would operate to sort the things.

    It was a great game. I have not seen anything quite like it since.

  69. Shut up and Hire Me, you bastard! by Anonymous Coward · · Score: 0

    Once upon a time job security for plumbers and carpenters wasn't so good. Now a lot of those skills are lumped under the term "contractor" which doesn't require a "client base." You can get lots of flexibility, the labor isn't that hard (although injuries can be pretty bad) And I never had a social life, and don't have a family to spend time on. Don't now try and take my bitterness and anger away from me. Its all I have left!

  70. Let's change c-jump! by Spy+der+Mann · · Score: 1

    How about using tiles like in Spy vs. Spy?

    Have one big program and different courses of action (like if's / while's).
    The tiles can have programming sentences or evaluations, and you could add or change sentences in ANY execution line. (yours or your opponent's).
    Who knows, you might add some conditional loops or something!

    The first one to do N iterations wins :)

  71. Don't forget ZZT by eieken · · Score: 2, Interesting

    It is a great little adventure game I played when I was a kid that helped me learn programming concepts. You can design your own levels and program little objects to do whatever you say. It was kinda like programmable Rogue. You could use the ZZT programming language to make the little objects do all kinds of neat stuff, very fun to play too. See it here

    --
    Meet new people, and kill them.
  72. Looks like you'll lose by lullabud · · Score: 1

    I'm kicking ass with the goto command:

    GOTO FinishLine

  73. A good way to learn to code... by exp(pi*sqrt(163)) · · Score: 1

    ...is to crack games. Nowadays all the games I have bought are on duplicatable CDs. But in the old days we learned a lot by trying to crack games. And unlike actually playing games, when you crack a game you feel like you really are pitting your wits against someone who was being devious because their job depended on it, not because it's some artificial contrived scenario concocted by a 'game designer'. Because it's more fun than actually playing you can feel highly motivated to actually learn about what you are doing and try to understand someone else's code from the ground up. I'd put money on the people who learn to code from cracking games ending up much better than people who learn from playing games.

    --
    Doesn't it make you feel good to know that our freedoms are protected by politicans, lawyers and journalists.
  74. Not a Game by Matimus · · Score: 1

    This doesn't look like much of a game to me. It is more like an exercise with a random element. It is 'chutes and ladders', which also is not really a game. The players never have to make a decision. 'Chutes and Ladders' is fun when you are 6, but not 11. I think the kids are going to figure out that the outcome is basicly random, and they have been tricked into doing math. Why the HELL did it take this guy 6 years to come up with this game anyway. A real programming game would allow players to invent their own syntax. Heck, a game like Drakon teaches better programming skills, even though it has nothing to do with programming.

    --
    GENERATION 25: The first time you see this, copy it into your sig on any forum and add 1 to the generation. Social exper
  75. Re:Sounds like real life by technoextreme · · Score: 1
    Personally i think that Robo Rally is best with a group ov nerds and a crate of beer, but seriously, I can see that it could actually be used for educational purpose for kids, as there is a degree of exitement in the game (will i get to xxx without getting more shot up so i can repair?). At the same time educate something about the strict logical rules of programming (that a computer will do *precicely* what you programmed it to do without any consideration about the surroundings or change in the conditions the programmer did not anticipate) in a fun way (as learning it the hard way in front of a real computer can be quite fustrating as we all know...).
    Heheh.. This brings back found memories of my robotics club where we would program a robot and all it would do is do a 360 straight into a wall.
    --
    Ooo man the floppy drive is broken. No wait. The computer is just upside down.
  76. Re:This really is only dimly connected with progra by UserGoogol · · Score: 1

    You're right of course. I was gonna say that myself, but I had to get off the computer to get somewhere, so I ended up just saying it was "certainly worth learning."

    This definitely develops skills which are useful for programming. But the skills are also useful for a lot of other things. Focusing on the programming aspect of things seems like a cheesy way to market this as a "programming game," which it really isn't. Nothing resembling actual computer programming is done in this. It's a math game, and all the programming aspects do is help give the game better PR. After all, if he had marketed this as a math game, he sure as hell wouldn't be in Wired right now.

    And I'm a college student who has recently signed myself up with a math major, so I'm certainly not against kids learning math.

    --
    "Never attribute to malice that which can be adequately explained by stupidity." -- Hanlon's Razor
  77. I did the same... by Anonymous Coward · · Score: 0

    I did the same thing, but with a calculator form of BASIC.

    You have no idea what a revelation it was to me to finally learn about real loops, subroutines and *gasp* arrays!

    And just so everyone else knows, it had *nothing* but if (blah) goto wherever for control of execution, so I had to be inventive to be able to solve my programming problems (e.g. to make games so I could slack off in class :)

  78. Educatin' Enjuneerz by TiggertheMad · · Score: 1

    I have often wondered if my generation (gen x) will be the last that has code monkeys that truly understand computers.

    We grew up with computers, learning assembly, BASIC, and then OOP as they languages were evolving. Now, I see 'programming' books that only show how to code using GUI drag-and-drop components, and scripting languages. While that sort of thing is great for producing applications with low dev time, what does it do to the next generation of coders?

    There are people running around that 'Code' html using WYSIWYG applications, and they wouldn't know the difference between a SPAN tag and pointer if it bit them on the ass.

    --

    HA! I just wasted some of your bandwidth with a frivolous sig!
    1. Re:Educatin' Enjuneerz by millahtime · · Score: 1

      There is still hope out there. Electrical Engineers at some colleges (mine anyway) still learn to program in assembly and actually make applications work that way. This seems to have become more of an electrical engineer thing that a computer science thing.

  79. The Rules by ReadParse · · Score: 1

    "OK, kids... let's go over the rules! Let's see here. It says that we start on Start. Well heck, that's easy enough, isn't it, kids? OK, we're gonna ski down a mountain. I can almost feel the cold air now, can't you?"

    "OK, everybody on Start and ready to go. OK, let's see here. Now the directions say Keyword int creates integer variable x."

    "Hey, kids? KIDS?!?!? Are you coming back?'

  80. Re:Biocomputing by Anonymous Coward · · Score: 0

    I'm sorry. That was a really assinine thing for me to say. I was just having a bad day, and I apologize.
    --AnonymousCoward

  81. This is a _really_ bad game... by Dr.+Faustroll · · Score: 1

    ...and an even worse educational tool.

    If you look at the actual game, you will find that it is simply a version of "Chutes and Ladders" with programming language terminology grafted onto it. There are no strategic choices involved, and no aspects of the game that require that kids do any programming whatsoever. It also incorporates sample code gems such as:

    x/x means "x divided by x". A number divided by itself equals one. Therefore, the player always gets to move one space from this location.

    Wonderful - let's teach kids how to write really bad code.

    I feel very sorry for any parent that spends $21.95 for this piece of junk. Scott Aldie's remark in the Wired article is right on the mark - this game is nothing more than a gimmick, and not a fun one.

    By contrast, if you would like kids to learn programming, and have fun while doing it, take a look at Alice (http://www.alice.org/). Not to mention that you get to save the $21.95 for a game your kids will actually enjoy...

  82. Patently awful by Esoteric+Moniker · · Score: 1

    As if the game (if it can be called such having absolutely no actual gameplay) wasn't bad enough, the inventor applied for and received a patent on it. I have a diatribe on the rediculousness of this http://www.koontzfamily.org/david/blog/?p=214/here .

    --

    man RTFM
    No manual entry for RTFM.
  83. As youg as 11... come on! by Arthur+B. · · Score: 1

    I was programming small graphical games at 9 with GWBasic!
    If they want to prepare to a first programming experience, they should target a 5-7 yold audience, with something maybe easier.

    --
    \u262D = \u5350
  84. That takes me back!!!!!! by yodajdm · · Score: 1

    This is only somewhat related but YEARS AGO I played a game on a CoCo II called (Robot Oddsey, i think). Inside the robot you could wire circuits to navigate a maze using standard gates (not, and, or, etc.) It even supported some more advanced logic (flip flops mostly). Isn't learning fun?? Does anyone else remember this game?? BTW if anyone has an emulator for it I would love to let my daughter play it. (Don't feel like digging out the CoCo and ROM)!!!!

  85. Saddest Kid at Christmas by Anonymous Coward · · Score: 0

    I can just picture the look of disbelief on some poor child's face.

  86. resurrected PLATO by BACbKA · · Score: 1

    if you're missing PLATO, you might be interested in cyber1.org. They have a history section there, and also a free (as in beer) client to access PLATO via the internet, with a big collection of original software. See also our own /. user Baldrson :-)

    --

    VKh

    1. Re:resurrected PLATO by sakusha · · Score: 1

      Holy crap, that is the greatest thing EVER. You have absolutely made my day, maybe my decade. I cannot thank you enough. This is my ultimate retrocomputing experience, PLATO IV was the first serious computer system I ever used.

  87. Robot Wars on Apple II by MadMorf · · Score: 1

    I learned a lot about programming back in the '80s by playing Robot Wars on the Apple II.

    You programmed virtual robots in a Basic-like language to go into the arena and do combat with other robots...

    I even wrote my own version of the game for the Atari ST and the PC...Neither of which never left my home machine......

  88. Re:Actual squares from the game - Reply by Markvs · · Score: 1

    Sorry, I mistyped. That's SPLIT horizon.

    --
    46. The Hobo smiles, his eyes glaze over, and he burps. "Beware the man who has lived longer than the Wasteland."
  89. Here's an older one from 1977 - ubergeeks only by filenabber · · Score: 1

    That's nothing - check out this computer/programming board game from 1977 - Computer Rage.

    --
    Are you a Candy Addict?
  90. What is the easiest language to learn by Sylven_1969 · · Score: 1

    What is the easiest language to learn for a complete beginner. I've been working with computers for over 20 years but the one thing I've never gotten into is writing code. I am extremely busy so I have little time for learning unfortunately. What I'm really looking for is an online tutorial that I can use to learn a very basic language.

    --
    Jay Dale "If you're not living on the edge then you're taking up too much space!"
  91. Re:Biocomputing by Anonymous Coward · · Score: 0

    You remain a dickless morass of non sequiturs, Doc. Just end it already. Take the pills.

  92. correction: by Anonymous+Cowpat · · Score: 1

    The board game turns players into slashdot editors who must create dupes in the quickest way possible

    --
    FGD 135
  93. Re:Biocomputing by Anonymous Coward · · Score: 0

    Mods have no sense of humor. That was funny. And I am not Doc.

  94. Re:Biocomputing by Doc+Ruby · · Score: 1

    Anonymous Limbaugh Coward, I will be happy to pry the pills from your cold, dead fingers. Since you're not smart enough to understand my posts, you obviously can't read the bottle label. I will happily enjoy just bits of what finally does you in.

    --

    --
    make install -not war