Slashdot Mirror


A Modern Day '101 Basic Computer Games'?

pcraven asks: "Back when I learned how to program, I found a book called 101 Basic Computer Games by David H. Ahl. This book had a lot of simple programs that I could type into the Apple //e. It made programming interesting. I'm not sure I would have started a career in programming without it. Today I haven't found any recent equivalent to this book. I want a bunch of sample computer games that students can program that they will find fun and interesting. Something that a CompSci 101 graduate could type in and run. Does anyone know of a book or web site like this?"

9 of 69 comments (clear)

  1. Children's programming books have also vanished.. by mystran · · Score: 4, Interesting
    ..as far as I can tell. When I was a kid, there was a lot of books of BASIC programming for kids in the local libs and bookstores and stuff.. (ok, you had to search the bookstores pretty carefully but..)

    Nowadays, it seems that there are almost no "fun" programming books, that don't try to go to nasty details, but simply give you something to play with.

    It might partially be that modern operating systems don't provide such easy environments to start programming as the BASIC interpreters used to be in every imaginable computer, and modern operating systems are somewhat more complicated to deal with.

    Another possibility is that expectations of wannabe programmers are so much higher, that the only option is to write the book to look professional. No idea. I've wondered your question and mine for quite some time now, and don't see a reason. Could write an easy programming book for some of the scripting languages ofcourse, maybe something with simple text-adventures or something..

    There are really really simple books ofcourse, but those usually give you simple constructs, and no example code to play with. One nice thing was when I found an old LISP book from the local library, from about the era you describe. Even if it was this kind of "what LISP is about book" it had source code for meta-circular stuff and all. (Have to add that SICP ofcourse does have that too, but SICP is not at all that simple book for a kid to read, but instead more of academic book.)

    Anyone any ideas? Is it just that programming languages today are so hard that the people who used to write those nice books with example programs and all have lost their clue about programming?

    --
    Software should be free as in speech, but if we also get some free beer, all the better.
  2. Are games that easy? by abrotman · · Score: 2, Interesting

    when i was a kid we learned apple pogo or whatever it was called and did small programs in basic. Is there any language that is even really comprable today? My console was 320x200 or something lke that .. Now .. its 1024x768. And honestly I dont think any kid is going to be that excited by drawing a box when they have games like half-life to blow up GL-creatures.

    That said, look at libsdl.org and some of the toolkits that go with it .. perhaps pygame

  3. Online version? by KDan · · Score: 3, Interesting

    Why not just use the online version that you posted? Just ask your students to program this in Pascal and they will most likely learn a hell of a lot in the process. You could even ask them to write two versions, one in Pascal and one in C or Java, and to make use of each language's strengths in each case, and get them to write some sort of essay describing what they learnt about programming techniques in both cases.

    Very educational...

    Daniel

    --
    Carpe Diem
  4. Several reasons why these books are disappearing.. by Hollinger · · Score: 4, Interesting

    I can think of several reasons why these books are becoming less common.

    1. Machines are much more complicated than they used to be. DirectX isn't the same thing as messing with BASIC on an Apple IIe or QBASIC in MS-DOS (both of which I did).

    2. Expectations are higher. Much Higher. Everyone likes to think he or she doesn't need that 4-line "Hello World" program. You don't. What you need is the surrounding pages of discussion, tips, and tricks that tell you how to set up your compiler and the other "little" things that can be a huge barrier.

    3. It's harder to get excited about a neat program you wrote that runs in a command console when you can see all sorts of flashy things going on elsewhere...

    You know, literally as I typed that last phrase, it occured to me that we (as established programmers) might be looking at this the wrong way. Why not teach a budding "programmer" flash?
    You'll learn the same concepts, won't you? It's visual, so you get immediate feedback, and it's also what every idiot with a computer seems to be churning out anyway on the WWW. Obviously a person won't learn how to write a linked list, or the exact syntax of C, but he or she will learn how to break apart a problem, and start thinking about it in the right manner. By the way, I do mean an interactive flash movie, like a "space invaders"-type game or beyond.

    What other sorts of graphical programming packages are there, aside from Flash and Director that are accessible?

  5. Narrow your search terms, please. by Prior+Restraint · · Score: 5, Interesting

    Let's see...

    I found a book called 101 Basic Computer Games by David H. Ahl.

    And then you say you're looking for...

    Something that a CompSci 101 graduate could type in and run.

    I still have my copy of 101 Basic Computer Games which I went out and bought with allowance money when I was twelve. The only game in there which might have been a bit over-the-top for someone that young was Star Trek (for sheer length), but I was already a Trekkie by then, so I typed every last line of code in so I could play it.

    I guess my question is, Are you looking for something on the level of 101 Basic Computer Games, or are you looking for something appropriate for college students?

    As an aside...

    Those of you who are saying that typing in the game doesn't teach you anything, I'd like to offer myself as a counter-example. After I played 2-3 games of Star Trek, the very next thing I did was to go into the code and add a "self-destruct" option to the library computer. I made sure it asked you for all three of the codes, too.

    Then, I decided that wasn't good enough. I played with nested for loops and the locate statement to display a 30-second countdown in (approximately) real-time. I made use of my rather limited understanding of graphics to try and show the Enterprise exploding when the counter reached zero (very crude, but it got the idea across). Then, I wanted to let the player change his/her mind, so I learned how to use inkey$ so the player could abort the countdown (at 5 seconds, though, it was too late (Oh, and you needed to know the abort code)).

    I still keep Star Trek on my hard drive, although currently it's written in Java. Every time I want to learn a new language, I use Star Trek as a measuring rod: if I can successfully re-implement it in the target language, it means I've got all the fundamentals down. Next up: Python.

  6. Try Lego Mindstorms by Anonymous Coward · · Score: 2, Interesting

    It's extremely difficult to live up to your own expectations, when you try to program your ordinary pc - Professional programs have simply gotten to advanced.
    Try to program something different instead, I suggest Lego Mindstorms. You can find several fun programming books to help you eg. "Core LEGO MINDSTORMS Programming: Unleash the Power of the Java Platform", "Lego Mindstorms Interfacing" and "Creative Projects with LEGO Mindstorms".
    It's the ideal combination - You get to play with lego and build cool robots, and you practice your programming skills at the same time

  7. Squeak and the state of computing by RevAaron · · Score: 4, Interesting

    The biggest reason you don't see these kind of books these days is because of the languages being used to teachcomputer science and even just plain programming. Even BASIC has evolved into something for grown ups, something people geting paid use to write apps- VisualBasic, REALBasic, and other similar tools.

    Which isn't to say that old-school BASICs don't exist anymore, they do. They are plentiful and free. There is no reason that a kid today, or in 10 or 20 years from now couldn't pick up one of those books, start typing and have a good time learning. There are BASIC implementaitons natively for Mac OS, Windows or Linux that emulate classic BASICs like AppleSoft's or Microsoft's GWBASIC/BASICA. There is also the opton of emulating an Apple ][, Commodore, etc.

    But perhaps you want something flashier, something more modern.

    One system I'd reccomend is Squeak Smalltalk. Unfortunately, one of the things Squeak really lacks is documentation, especially in book-form. This has a lot to do with the way most folks learn Smalltalk (by doing, rather than reading) as well as aspects of the community and other factors. If you download Squeak (see here) and run it, there are a bunch of demos there to be played with, as well as some tutorials. They make for a great start for someone with a little (or even no) programming experience or formal computer science knowledge.

    One of the neat features for Squeak (that you get when you download the version with all the libraries) is an implementation of Alice, which is a scriptable 3D environment for world-building and games. A lot of fun to move that bunny around, especially if you're a kid who likes to see a direct correlation between what you type and what goes on on the screen.

    In addition to this, Squeak also comes with a scripting environment called eToys. It

    For an example of how to use the Squeak eToys scripting system to make a more traditional application, see this Rolodex tutorial. or, for something a little more fun, check this out. introducing yourself to Squeak makes for a great starting point for experienced folks and newbies alike. Of course, there is also tutle graphics, which even I've used in more "grown up" applications, for modelling dynamic system.

    Best yet- Squeak is totally Free. It is free down to its core, the system being open in a way that C, C++ and Java have no analogous structure. Smalltalk has been open since the beginning in almost every way you can think of. Even commercial implemtations, you still have the power to see pretty much all of the source, and changing if you so desire. In addition to being open source and free, Squeak Smalltalk runs on more than 20 platforms, including Linux, Mac OS X & Classic, Windows and pretty much every Unix one could imagine. Unlike what people sometimes experience with Java, it truly is write-once, run-everywhere, with your entire app being encapsulated in just two files- the virtual machine and the image. Even if your target platform doesn't have a VM installed already, it's just a matter having it zipped up in your installer or archive- just one extra file, often less than even a MB.

    I meant to say a little, but that is a lot to chew in one mouthful!

    --

    Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
  8. Re:Children's programming books have also vanished by Anonymous Coward · · Score: 1, Interesting

    Even back in the day, "101 BASIC Computer Games" got boring pretty fast.

    I typed in STARTREK.BAS into my TRS-80 Model I, but soon afterward I found a superior version that had Galaxy Maps and even a cool animated ASCII-art talking alien. The canonical version of the program was pretty much spagetti code anyway, so it's not like it taught you that much.

    If you look back at the COMPUTE, etc magazines, almost none of it was teaching kids how to do BASIC programming -- instead it was all machine-specific assembler encoded into DATA statements. Of course, none of these mags ever made half-an-attempt to actually teach you generic 6502 ASM, it was all about secret POKE statements and so on.

  9. Re:Different times by jag164 · · Score: 3, Interesting
    Yeah, but the beauty of typing those programs in is that you COULD actually learn. I'd start typing in the game/program, then modify it with new features or bells and whistels, then I'd usually write two or three more programs from scratch (based on the original idea). Hell, I was 11 years old so I had much more creative juice then as I do today. Ah, how the corporate world sometimes does that to you. *sniff*

    But anyway, not only did I learn the art of debugging, but taught me how to effectively read someone else's code, and it also taught me to 'optimize' (those programs were written in very generic basic, but I could replace a few of the generic lines with GW-BASIC specific lines). Logic building was essential, and new tricks as in "Hmm, what he trying to do here? Ah, wow, you can do it thatway too?!?"