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

69 comments

  1. Different times by eggstasy · · Score: 1

    Back in the day, typing in a program from a book was a pretty common way to get a game "installed" and running. I wasnt especially computer literate when I was 10 years old, but I knew how to type stuff into my 99% spectrum-compatible clone that misteriously failed to load games from tapes all the time.
    Nowadays, I certainly hope any programmer with half a brain should know damn well how to come up with an implementation of tic tac toe, pacman, or any of the crappy old games I used to play in the 80s. And yes, that definitely includes freshmen.

    1. Re:Different times by Corfitz · · Score: 3, Insightful
      Back in the day, typing in a program from a book was a pretty common way to get a game "installed" and running. I wasnt especially computer literate when I was 10 years old, but I knew how to type stuff into my 99% spectrum-compatible clone that misteriously failed to load games from tapes all the time.

      Ah yes... I remember and look back on those times with a mixture af happy and desperate thoughts. I remember buying one of the many (!) monthly magazines with computer game code listing and spending an afternoon and evening typing a game in on my trusted Commodore VIC20. When the game ran it was wonderful (the VIC20 was after all a pretty impressive computer for the time), but I also remember the times when the code didn't work! Then I had to spend a few extra hours looking for typos because I had no idea what the "complicated" BASIC was doing, so there was only the tedious way of debugging. Those were the days...

      That aside I doubt if a lot was learned from those computer games listed in books/magazines that weren't picked up from somewhere else. Mindlessly typing in the games certainly doesn't help with understanding, and only if you approach the problem from an how-does-he-do-this perspective are you really going to get something out of other peoples code. I still find that the most usefull way of learning some programming is to have an itch that needs scratching. In teaching (games)-programming I would guess that getting beginners to write tic-tac-toe, a worm-game etc. is still a good idea, and there are lots of simple code to be found on the net.

    2. Re:Different times by eggstasy · · Score: 1

      I agree. I learned BASIC mostly from the user's manual, which contained a great programming tutorial and even some advanced reference material. I did take a BASIC class at my school, but when I got there I already knew how to code.
      Being able to hack the "source", say, LET lives = 5 instead of LET lives = 3, also greatly contributed to my learning experience.
      But the raw typing in of code is of little importance. After you've gone through CS 101, you've seen enough code to have a general grasp of programming, assuming of course, that in this age of 14 year old web designers, they hadnt done at least a bit of scripting prior to enrolling.
      FWIW when I was 14 I was already coding games like those in pascal... but the scarcity of information in the pre-WWW times greatly impeded my progress.

    3. Re:Different times by crmartin · · Score: 1

      I don't agree. BASIC games for home weren't around until I'd been programming for ten years anyway, but I still learned things from typing in other's code -- and still do, for that matter, especially in a new language. At the very least, you become more skilled at the essential task of figuring out why the damn thing won't compile oh there's no comma there!

      If you're typing them in with interest in what's happening, you have to concentrate on the source for minutes or hours, depending on how good a typist you are. I seriously think that helps understand the program, and by extension programming.

    4. 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?!?"

  2. 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.
  3. try the Blender GameKit by 286 · · Score: 4, Informative

    I would recommend The Official Blender GameKit for 3d games.

    1. Re:try the Blender GameKit by JohnFluxx · · Score: 3, Informative

      Or perhaps pygame.

      I intend on getting my brother (20) to learn programming with this.

    2. Re:try the Blender GameKit by Anonymous Coward · · Score: 1, Funny

      I intend on getting my brother (20) to learn programming

      My god man, 20 brothers??!?! Your parents were Catholic, weren't they? :o)

  4. Re:Children's programming books have also vanished by gl4ss · · Score: 1

    basic is just not that intresting anymore. and really, those books don't provide that much 'new' information into programming once one has understood the games in it(most of them old basic games books don't even explain all the lines or commands). typing long pieces of text to get a sucky game(by todays standards) without even understanding any of it is just boring.

    and anyways, programming 101's(local equivalents here) usually include a game or two as practice work(usually something quite simple, like some card game or something).

    some new venues for SIMPLE, SHORT, EASY game programming books of modern era could include environments like j2me(java for mobile devices, quite nicely limited) as well.

    --
    world was created 5 seconds before this post as it is.
  5. Tcl Games by Col.+Klink+(retired) · · Score: 1

    Try the games on the Tcl'es Wiki.

    --

    -- Don't Tase me, bro!

  6. 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

    1. Re:Are games that easy? by soft_guy · · Score: 1

      You probably mean Logo(not pogo.)

      Logo was very much a "kids" programming language and the one that a lot of kids in the 80s started with.

      --
      Avoid Missing Ball for High Score
    2. Re:Are games that easy? by commanderfoxtrot · · Score: 1

      When I was young, we used BBC Micro computers at school. These booted in under a second into BBC BASIC, so you could simply type things like

      PRINT "hello"

      FOR N%=1 TO 10 : PRINT "hello again" + N% : NEXT

      (I haven't used BBC BASIC for about eight years so I probably have some syntax wrong :-) )

      It was very easy for even the most uninterested person to make something of their own, even if it was simply asked a person their name and then said "hello Edward" or the like. Programming a game is a much more complex thing: you must teach the basics first. You can download Brandy, which is an almost complete BBC BASIC interpreter for RISC OS (!), Linux, Mac, DOS and Windows. Graphics and sound support are limited, but for teaching the basics of procedures/functions, loops and logic an interpreted language like BASIC is ideal. When the basics have been grasped, it is a simple matter to move to a more advanced (and more complicated for simple programs) language such as C.

      --
      http://blog.grcm.net/
  7. 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
    1. Re:Online version? by pcraven · · Score: 1

      Actually I did do this for an assignment. I'll see how it turns out.

  8. Re:Children's programming books have also vanished by scrytch · · Score: 3, Insightful

    Witness the plethora of DHTML/Javascript books out there -- that'd cover at least half of the BASIC book programs from the past. Books tend to come with CD's now, so there's no reason you couldn't include the language, a whole environment, hell a whole operating system (can you say knoppix) on that CD.

    My theory, however, on the reason you don't see kids programming books anymore is that computers are no longer toys in themselves. When these books were "hot" (actually they never were, so let's say when they were being published) home computers were a relatively new phenomenom and a largely unexplored frontier. Now they're ubiquitous, and the joy of puttering around on the computer isn't really so interesting to most kids as tinkering with something already on the computer.

    An updated LOGO type of language with 3d graphics instead of turtles, that might inspire interest again. At least something that can allow kids to create something as eyecatching and appealing as games from 5 years ago. Or just update some of these old saws to modern standards: Imagine rocky's boots on a modern 3d engine. Kids aren't interested because all the educators are still pointing them at computers and saying "this is a COMPUTER billy, can you say COMPUTER?", while the kid's thinking "please, I bet it has less than a gig of RAM and it's not even DDR".

    --
    I've finally had it: until slashdot gets article moderation, I am not coming back.
  9. Re:Children's programming books have also vanished by crisco · · Score: 3, Informative
    Add Flash to your Javascript/HTML equation. Sure, it sucks, but then again, so did Basic.

    While lots of people designing stuff in Flash are wannabe graphics artists, some of them are digging into the ActionScript and are learning some programming skills. There are a few sites out there with countless little flash apps that are nothing more than simple programming exercises and simple little games. Check out Orisinal, although the art is as good as the programming in this case.

    --

    Bleh!

  10. Re:Children's programming books have also vanished by bhtooefr · · Score: 3, Informative

    An updated LOGO type of language with 3d graphics instead of turtles, that might inspire interest again.

    Well, you still have a turtle (but you can change it's graphic), but MSWLogo has 3D support (however, much of the 3d stuff needs some CPU power - your generic old P75 rig won't work very well), and it's GPL to boot.

  11. 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?

  12. Re:Children's programming books have also vanished by T-Ranger · · Score: 1
    Re: your second paragraph, I agree 100%.

    Hypothesizing, back in the day, kids who owned an Apple, or a C=64, were either the children of geeks, or geeks themselves (already, before they got the computer). Thus they would have either had geek books cramed down their throats, or actually wanted them.

    Well, it least in significantly higer porputions then kids today.

  13. Keep it simple and readable by redtail1 · · Score: 3, Insightful
    I'd be interested in such a book for myself, never mind kids.

    I faithfully typed in C=64 programs for years never minding that I wasn't learning much from such densely packed, often unreadable code. BASIC wasn't necessarily the problem, rather that memory restrictions and magazine space issues prevented most people from organizing code well. Comments were lost, multiple statements crammed onto the same line, etc.

    I agree with whoever said that kids wouldn't be interested in such things today. We have to accept that interests have changed and web page building has replaced classic programming in the minds of novices. The biggest obstacle to a "fun" programming book is the appalling lack of built-in or bundled programming languages with new computers. As much as I enjoy using languages like PHP and Java I think they are much too complicated for the newbie. We should either bring back traditional BASIC with tighter syntax requirements, popularize a version of LOGO with hooks to graphics routines and the ability to build a complete clickable app or popularize some other similar easy to use language for first timers. Only then might we see a renewed interest in learning how to program.

  14. That's not the book I remember.... by dmorin · · Score: 2, Funny
    The online version you link to does not include Eliza, SeaWar, or Wumpus? How many versions of that book existed?

    Trivia -- I remember it well, the first few lines of SeaWar asked for the user name, and if the named typed in was "chris" it would jump to the end and say "Game over." What was up wit dat??

    1. Re:That's not the book I remember.... by kalidasa · · Score: 1

      The copy I had was two volumes. I could probably dig it out with enough effort, but I don't want to bother.

    2. Re:That's not the book I remember.... by almightyjustin · · Score: 2, Informative

      All three of those were in the sequel "More BASIC Computer Games", which is also on that site. ;)

      --

      Omnes arx vestrum sunt adiuncta nobis.

  15. 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.

    1. Re:Narrow your search terms, please. by gbulmash · · Score: 1
      I definitely have to agree here. It wasn't typing in the programs that taught programming skills... it was tinkering with them afterward. I always added extra functionality into my programs in computer classes, hotrodded programs I got out of magazines...

      Entering in a bunch of uncommented code didn't teach much, but trying to understand all the code and then expand upon it so you could modify/subvert/hotrod the program was the learning experience. Thing is, it takes a certain kind of personality to want to tinker under the hood.

      Take your car for example. There are people who buy a car, and so long as it gets them to and fro, they're happy. They don't want to know how internal combustion works. They just want to know how to drive it, put gas in it, and when to bring it in for maintenance.

      Then there are the guys who do their own oil changes and can change a filter or water pump, maybe might change the starter if they had a service manual and some incentive (like saving money), but that's as far as they go. It makes them feel good to know more about their car than the average Joe, but they don't have the interest to take it to the next level.

      Then there are the guys who can take apart and re-assemble a carburetor blindfolded, tell you what's wrong with the car by listening to it, and aren't happy unless there's grease on their hands.

      If you're the third type (but with computers instead of cars), a book like that is a godsend, because it's a great leaping-off point into tinkering with code and learning how to make your computer do all sorts of neat tricks. If you're not, then a book like that is good for propping up that chair with a short leg.

      - Greg

    2. Re:Narrow your search terms, please. by UrgleHoth · · Score: 1

      I had a similiar experience, also with Star Trek.
      I played it on Syracuse University's mainframe during a 7th grade computer summer camp. It got me hooked. I found a book that had source code to Star Trek. It was several pages of photocopies of an Altair basic version.
      There were areas which I could not fully read the code and I had to translate some of the code to make it work on the Apple 2e. It was quite a learning experience in filling in the blanks and debugging the code.

      My point is that one can learn a bit about programming just by typing in the code and figuring out what is not working.

      --

      Dogma - "let's just say we'd like to avoid any empirical entanglements."
    3. Re:Narrow your search terms, please. by fishbowl · · Score: 1

      "The only game in there which might have been a bit over-the-top for someone that young was Star Trek (for sheer length)"

      Actually, the Checkers game has a really bizarre learning algorithm. Pretty nifty for an 8K machine or whatever you had. There's a 6-pawns game in there too that had some complexity.

      --
      -fb Everything not expressly forbidden is now mandatory.
  16. 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

  17. Many Options . . . by Anonymous Coward · · Score: 1, Informative
    The book "Programming in Scheme" by Mark Watson would be a decent modern equivalent -- it doesn't focus on games, but the example programs are not the usual boring stuff: http://www.markwatson.com/books/.


    A lot of the adolescent code-diddling scene has moved to php and cgi scripts.

  18. Gnu == old school by madmaxx · · Score: 1

    One thing that I've noticed, since I started using Gnu systems, is that it's like the good-old-days again -- just like the nostalgia of reading these old kid's programming books. Using the shell, and great languages like python and perl, has the same flavour, and freedoms that I enjoyed on my Atari 800 (and each subsequent box).

    Maybe it's the availability of many, small, free programs -- which is a contrast to the windows pay-for-every-crappy-utility world. Maybe it's the large number of similar historied geeks that have created this free world, or maybe it's just my imagination. For big kids, anyway, the HOWTOs and other online gold are the next generation of our great past.

    --
    mx
  19. 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
    1. Re:Squeak and the state of computing by scrytch · · Score: 1

      squeak is nice, but the interface is nothing short of horrendous. a limited set of fonts, all ugly as sin, and tiny widgets that require precise aim, combined with a focus model nothing short of schizophrenic -- some places it's click, other places it's hover.

      Once you get past the "look i can drag widgets in and tweak their properties" playground, squeak leaves you absolutely aimless and adrift, with an absolute lack of any API documentation whatsoever on real applications.

      And frankly the squeak object browser is not all that hot -- I'll take the tree-based browser view that modern C++ and Java IDE's like eclipse provide over the dated and klunky listbox-based smalltalk browser any day.

      --
      I've finally had it: until slashdot gets article moderation, I am not coming back.
    2. Re:Squeak and the state of computing by scrytch · · Score: 1

      Another thing I wanted to add about squeak is that even the visual, spatial, direct manipulation model it prizes is really somehow ... flawed. I keep accidentally tearing morphs apart, can't get them back together, or they get "lost" somehow, and I can't get them back. Maybe it's people who "grew up" with it are used to it, but I now know how a baby feels when they play with something that comes apart, like one of those ring toys (you know the one, a bunch of plastic colored donuts on a white spike)

      "Ooh, pretty. Hey look mommy pushed it and it rocks back and forth! How's it do that? Hey wow they separate, I can make them roll around, and they make cool banging noises on the floor! Hey where's it rolling to, it's under that couch now ... Hey come back, I liked that color. Hey I can't get to it! WAAAAHHHH!!!"

      Seriously, the frustration makes me want to cry sometimes. Mostly I just want to have a commandline for squeak that I can introspect, browse, and manipulate everything from if I want to, because I'm constantly getting lost in a GUI that seems designed to be as counfounding as possible.

      --
      I've finally had it: until slashdot gets article moderation, I am not coming back.
    3. Re:Squeak and the state of computing by RevAaron · · Score: 1

      squeak is nice, but the interface is nothing short of horrendous. a limited set of fonts, all ugly as sin, and tiny widgets that require precise aim, combined with a focus model nothing short of schizophrenic -- some places it's click, other places it's hover.

      Indeed, the default look of Squeak is pretty bad. But the issues you mention are fixable, and fixed pretty easily in SqueakMap. Anti-aliased true-type fonts, loaded from .ttf files. Or, another package will allow you to hook into the Windows font system directly, making any font you can use in Windows accessable in Squeak.

      You can use IceWM themes in Squeak. Nothing special- just load the packages, tell it where your IceWM themes folder is, and load.

      Widgets have gotten a lot better, now that people aren't using the MVC backwards compatibility ones. You could always make them bigger, in your own apps or the built-in ones- even for those old-school MVC widgets.

      The focus model has become less schizophrenic, as you put it, a few years ago. You can switch between click to focus and focus follows mouse. Even so, with focus follows mouse, you still have to *click* on a window to switch to it, to raise it; but if you want the window to pop up when you have the mouse pointer within the window's area, that is easy as well. Not a built-in preference, but literally something you can add with one line of code. I've shown folks on the Squeak IRC channel how to do it a couple times (#squeak on irc.freenode.net), it makes a neat demo. With what other windowing system could you claim that?

      Once you get past the "look i can drag widgets in and tweak their properties" playground, squeak leaves you absolutely aimless and adrift, with an absolute lack of any API documentation whatsoever on real applications.

      As I said, documentation isn't great. It isn't as bad as you're saying; perhaps you were forced to use an old version 5 year back at GA Tech or something. I learned Smalltalk and Squeak quite easily years ago without one book or formal API reference. There are countless examples on how to do stuff, within the image and outside of it.

      And frankly the squeak object browser is not all that hot -- I'll take the tree-based browser view that modern C++ and Java IDE's like eclipse provide over the dated and klunky listbox-based smalltalk browser any day.

      Yeah, you must've been stuck with Squeak 2.6 at GA Tech. Probably mad that the prof made you use Squeak rather than C++ or Java for learning OOP, too.

      There are tree-based browsers for any Smalltalk implementation, with the exception of GNU Smalltalk. There are object and class browsers that take it far beyond the standard class browser of Smalltalk-80 or the Eclipse IDE. These include the Whisker Browser, the Star Browser, the Refactoring Browser and others. I personally really like the Whisker Browser and use it about half of the time, with the old school browser the rest.

      Even with more advanced tools, it is hard to dis the standard Class Browser in Squeak. It was a tool created in the late 1970s, and still kicked the asses of most tools for C++ and Java until Eclipse. Even something so simple as the default class browser can be a very powerful tool. Far more useful than a flat file.

      --

      Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
    4. Re:Squeak and the state of computing by RevAaron · · Score: 1

      I keep accidentally tearing morphs apart, can't get them back together, or they get "lost" somehow, and I can't get them back.

      One can easily turn this off on a Morph, either through direct manipulation or programatically. I have written a lot of code in Squeak, mostly traditional "boring" applications, not fancy things involving fancy drag and drop or anything like that. You can't accidentally deconstruct my apps by holding the mouse down when you didn't mean to. I don't know of any apps where you can do this. Certainly, you can compose your own complex morph and tear it apart again, but if you're planning on using this morph as a tool, it would be worth the second of time it takes to tell it to not allow that.

      Seriously, the frustration makes me want to cry sometimes. Mostly I just want to have a commandline for squeak that I can introspect, browse, and manipulate everything from if I want to, because I'm constantly getting lost in a GUI that seems designed to be as counfounding as possible.

      I've done some work with Squeak from a commandline. That is, using the CommandShell for Squeak. Not as featurefilled as would be needed for it to be used as the primary development tool, but a lot of the basics are already in there. Write a couple of command plugins for CommandShell, and you could do it pretty easily. For instance, you could have an "edit" command invoked like so: "edit SomeMorph initialize" which would open up an editor- be it vi or emacs (via the xterm morph), or just the regular text editor in Squeak. Save and quit, and the change is there and made effective.

      I certainly didn't grow up with Squeak, and didn't find it all that hard. I even had learned more traditional GUI toolkits- Java/Swing and Python/Tk- before learning Morphic. After being introduced to the flexibility in Squeak and Morphic, I find it hard to deal with Mac OS X, Windows and Linux, where I am confined and constrained. Some people like to be kept in a little box where they haven't control- that's fine. To each her own.

      Squeak isn't perfect, but your objections haven't applied for years...

      --

      Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
  20. if you've had CS 101 you shouldn't need it by John+Harrison · · Score: 1
    I don't know what people are learning in CS 101 now, but back in my day, we had to write video games. They were simple video games, like tic-tac-toe, but video games all the same.

    If you've had a CS class you should be able to pick up any of the "learn to program video games in 21 days" books at B&N and make some simple games.

  21. Re:Children's programming books have also vanished by Jiema · · Score: 1

    My high school now offers 'Flash MX Action Scripts' as a part of the Math Department. In my mind, the catch is that anyone who knows what the scripts are don't need Mr. P to tell them its a thinly veiled code for 'We're gonna make us some video games!' and thusly know how to do it, eliminating the need for a class.

  22. 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.

  23. Re:Several reasons why these books are disappearin by Anonymous Coward · · Score: 1, Insightful

    BASIC programming books were never really about setting up your compiler or learning about linked lists. They were really designed to let you people learn that computer programming was even possible.

    I could see a book devoted to "101 JavaScript Games" that would be just as fascinating to kids.

    Javascript is almost just like the old BASIC environments -- very little setup needed, you can see the results immediately, and very simple things go a long way to impress people. (think of the Google page yesterday that had the fade-in text) Furthermore, Javascript/HTML runs everywhere, so kids can show off their work - no need for Scheme or whatever.

  24. Ceebot or other educational programming games by quantax · · Score: 1

    I recently tried out Ceebot which is the 3D equivalent of LOGO which we used to use on the Apple IIe's, and demonstrates in a fairly simple and graphical way, the concepts of programming C++. Though I already know how to program, it is actually fun for me to play it for the logic challenges. One such challenge is programming your bot to navigate around mines while picking up check points. Or maybe you'll have to shoot other robots before they reach a certain distance, and so on. Definitely worth checking out in light of the fact that such books that you are talking about are probably a rarity. http://www.ceebot.com/

    --
    "What can a thoughtful man hope for mankind on Earth, given the experience of the past million years? Nothing." -Bokonon
  25. Availability by redtail1 · · Score: 1

    One other thing to consider... back when we were all learning how to program we did it because we had to. The internet wasn't around to give kids one click access to all the Flash games they wanted to play. With more consumers than producers only the die-hard enthusiast bothers learning how to program now.

  26. I Loved that book by Nynaeve · · Score: 1

    I bought that book when I was a kid, too. It was one of the best I ever got. I have to agree: books like this one were extremely important to my career in software development. You can't find many like them any more.

    What we need is a book with a bunch of C programs and a cd witha a djgpp, cygwin, or mingw setup to install the minimum software necessary for simple text-mode program development in a DOS/Windows environment.

    Kind of like bringing Ahl's book to the modern age. Maybe someone could license his material, convert it into C, and publish it.

  27. The best tech cartoon I ever saw by sakusha · · Score: 1

    Hey, thanks for jogging my memory, I've been looking for my favorite cartoon for many years, and this was where it was published.

  28. WOOT! Perfect Timing of this story by UnknownSoldier · · Score: 1

    I was trying to find this book just last month, but I couldn't remember the title, or author. All I remembered was that the cover was red.

    Once I saw the cover, I remembered that I use to read the sequel: More Basic Games

  29. Quake 3 by Anonymous Coward · · Score: 0

    Quake 3 basic

  30. The state of computing for beginners by solprovider · · Score: 2, Insightful

    The "article" is asking for books that reproduce the simple learning environment from the late 70s/early 80s. Complaining that one of these environments has:
    a limited set of fonts, all ugly as sin, and tiny widgets
    seems off-topic, as our original BASIC environment:
    - had ONE font,
    - was text-based, so it could not even strive to be "ugly"
    - had NO widgets. You were required to build everything from scratch.

    I work with programmers who are not even a decade younger than me, but they did not start with computers until college. They have never built a program that was not on a "platform" that provided the GUI and access to all hardware such as memory. They have never had to PEEK and POKE, so have no clue about how memory really works. They will write (and debug) 60 lines of VB rather than one line of OS commands, because they have never worked at a CLI. I wrote a 3 line batch file that replaced a 400 line program they were having difficulty getting to work.

    I am not saying that using IDEs is bad. We can do so much more working within a platform than we imagined in the early 80s, but the knowledge required before becoming productive is much higher.

    We had a discussion about this a few months ago, but it is off my Info page so I could not find the posts. (I really wish I could find some of them, but the Info page only shows the latest 24 posts, and search is not very useful for limiting to one user.) Programmers today did not progress from CLI to OOP. They start with the current GUI and have little understanding of what the computer does.

    In the late 80s/early 90s, people were learning about programming in college because it was the "good" career path. But they were "studying", not "hacking".

    In the mid-90s, many people entered the IT world using HTML as the "programming" language. Then they copy/pasted JavaScript. Some of them took the time to learn how to write their own. A few of those branched into other languages, and they may have more of the hacker attitude because they were forced to figure out how things worked. But they still learned assuming the platform was there.

    Today, BASIC is long gone, and HTML is not enough to get started. Colleges are teaching Java to the studying students, but Java really protects programmers from memory allocation. The scripting languages are great for administrators, but do not push you to learn more traditional programming.

    I think the computer revolution has stalled because there is no easy entry point. One great programmer can outproduce a hundred regular programmers. Becoming a great programmer requires understanding how software relates to the hardware. Are there any great programmers who started with computers after 1990? Is it even possible to learn enough on today's platforms?

    --
    I spend my life entertaining my brain.
    1. Re:The state of computing for beginners by KDan · · Score: 1

      I was born in 1980.. While I'm not going to claim to be a "great programmer", I have a fairly good understanding of hardware issues - and I gained most of that after 1990. So maybe your boundary of 1990 is a bit tight. Make that 1995, perhaps... when the web became popular. I gained most of my understanding of memory allocations and assembler and such while rewriting a wolf3d-like engine from a book I had and optimising it, and that was in 1994 on a 486DX4.

      As for today's platforms, no, I would say it's not possible to learn that - and unfortunately due to the law of leaky abstractions it IS necessary to understand these things in order to figure out what went wrong when things do go wrong.

      Even linux is not the right environment, because it runs in protected mode and doesn't allow anywhere near the amount of messing around with hardware directly that DOS used to.

      Daniel

      --
      Carpe Diem
  31. Tcl/Tk via www.tcl.tk, wiki area "Games" by ghostlibrary · · Score: 1

    Visit www.tcl.tk (a Wiki for the language Tcl/Tk, which is multi-platform and has excellent GUI tools), look in the "Games" category. That's basically a mix of how-to, game ideas, and partial or full implementations thereof.

    Any CSI101 should be able to take them and run with it. In fact, any high schooler into computers can.

    (Frankly, I think Tcl is vagually lisp-like, which is why it works so well for games, and Tk as a graphics handler is very OO, so it's a neat mix.)

    --
    A.
  32. two that weren't mentioned by Anonymous Coward · · Score: 1, Informative

    for java see:
    http://www.robocode.net/
    this assumes you have java set up properly on
    your system and allows you to program the action
    of 2D tank-like robots which can move, fire, and
    use radar - I don't know if other graphics are
    possible, but you can go nuts trying to find
    and program optimal fighting tactics

    Runtime Revolution from:
    http://www.runrev.com/index_uk.html
    this has a free evaluation edition but costs
    $100-up for a licensed commercial edition - it
    can do pretty amazing stuff - its sort of like a
    cross-platform Visual Basic - it has its own
    scripting language - the scripts can be compiled
    to stand-alone executables for windows,linux,unix
    - it does pretty general GUI
    programming and sprite graphics - you sort of have
    to download it, do the tutorials, and play with it
    to see what it is and believe it - if you join
    the mailing list, expect 70-100 postings/day.

  33. There's still a market for type-ins by Neo-Rio-101 · · Score: 1

    I have some real fond memories of typing in games for the Commodore64 all those years ago, and even earlier for the ZX81 (which never loaded correctly from tape either!). Strangely, that experience taught me BASIC and gave me a head start when it came to learning C.

    Why aren't there any type-in books these days?

    For starters, Windows doesn't include any programming languages or compilers, so already most people with computers out there are restricted to just using applications.

    Also, magazines always seem to include CDs these days. Back in the day, getting a cassette or floppy disk just pushed the magazine price up.

    Linux is great... almost like a return to the good-old-days of computer programming. The system is open and comes with it's own compiler.
    There are not many games for Linux at this point, so this is where I see type-ins being the best. A lot of people want to learn to program in it, and a young kid has to start somewhere in learning to program in C.

    Personally, I wouldn't mind seeing a C programming book with little games in C (such as your tic-tac-toe and whatever) to be run from Linux. Maybe starting out simple and leading to projects where graphics and even containing small Open GL games in it... explaining what's going on in the listing as you go through it.

    THAT would be interesting these days.

    --
    READY.
    PRINT ""+-0
    1. Re:There's still a market for type-ins by Alternate+Interior · · Score: 2, Insightful

      C and BASIC aren't even close, though. If you try to throw too much at a beginning programmer, say, C, they'll get overwhelmed and give up. There are likely hundreds of not thousands on this site who say "I learned to program in C, not only that, but we didn't have CRTs and keyboards, no sir, we chiseled our programs into rocks!" Lots of people need the simpler stuff, even if just as a stepping stone to something bigger. How does one translater QBasic's LOCATE into C? Do you really want to teach a beginning programmer ncurses? That's the advantage QBasic and HTML/CSS/JS/etc have - instant gratification that can mimick something greater. Furthermore, people are not going to just jump to linux because they want to program. That's even worse than starting them off in C! You want to teach someone to getting a working install, learn the quirks of a given shell, and learn to program all at the same time?!? They're not even sure they're capable of programming yet! Many people in this threat have suggested Flash as a replacement for the BASICs of yesteryear. What about VBA? It's arguablly better than QBasic, very powerful and very simple to use. Excel's implementation specifically seems very similar to VB's original implementation to me anyways, and it allows for instant gratification. People can bind a few command buttons to the IE activex control and make their mandatory web browser - does it seem to anyone else like this has replace hello world as the first Windows app? It's got a much lower initial timecost than linux, as well as being much easier than C, while also allowing someone to determine whether they actually like this "programming" or not. Forgive my ramblings. It's late.

    2. Re:There's still a market for type-ins by kaitsu · · Score: 1
      For starters, Windows doesn't include any programming languages or compilers, so already most people with computers out there are restricted to just using applications.
      Yes it does. Create a textfile, enter line

      MsgBox "Hello World!"

      Save the file and rename it to Hello.vbs

      Now doubleclick on the file and see yourself that a programming language is included in Windows.

    3. Re:There's still a market for type-ins by GigsVT · · Score: 1

      I don't know about that.

      These days things are more complex. You want graphics? Great. Make sure something like SDL is installed. You want easy to use graphics? Now you have to get SDL_gfx to give you primatives. You want accelerated 2D graphics? Well, I guess you'll have to run all your programs as root then.

      Then you have to figure out all the compiler command line options so it can find the SDL and SDL_gfx headers.

      All this just to get to the point to be ready to type something in. SDL is just an example, nearly any language/OS/graphics library is this complex.

      --
      I've had enough abrasive sigs. Kittens are cute and fuzzy.
  34. Re:Several reasons why these books are disappearin by robertyeo · · Score: 1
    Why not teach a budding "programmer" flash?

    Well ... I think flash is a bad programming language ... it encourages the goto frame mentality ... which leads to spaghetti codes with all the usual problems ...

  35. Warning: language advocacy by Colonel+Cholling · · Score: 2, Insightful

    I've thought for some time that Python would be a great language for introducing someone to programming, and that a book like this, but with Python code instead of BASIC, might get another generation interested in programming. Granted, there are a number of features of Python that might be stumbling blocks to someone who goes on to learn a more traditional language-- significant whitespace, semi-weakly typed, etc. However, it's much closer to C than, say, BASIC, and I somehow learned to program by sorting through the rats' nests of GOTO statements that littered the programs in this book.

    Which actually raises a question-- why is (or was) BASIC considered to be such a great language for beginners? I remember when I first learned Pascal (the first function-oriented language I learned) it was like a breath of fresh air. The language pretty much forced you to structure your code that was (more or less) elegant, and I found it made much more sense than the spaghetti code I had grown up with. Had I started out with such a language instead of BASIC I doubt the learning curve would have been as steep. Another question: do kids even learn BASIC these days? What language do they typically start out on?

    --

    I am Sartre of the Borg. Existence is futile.
  36. 101 BASIC Computer games by Orion+Blastar · · Score: 1
    I took am looking for this book. Every Internet Bookseller that lists it has it out of stock or out of print.

    The library used to have it back in the 1980's but since the 1990's must have retired it.

    I am not even sure if the company that published it is still in business.

    A close as I can find it are these web sites:

    http://www.atariarchives.org/basicgames/

    http://www.atariarchives.org/morebasicgames/

    They are for the DEC BASIC language, but I am sure they can be easily converted to whatever BASIC you are using.

    --
    Remember, Slashdot does not have a -1 disagree moderation, and no, troll, flamebait, and overrated are not substitutes.
  37. D'oh first book was linked in the article by Orion+Blastar · · Score: 1

    I assumed it was an link to the out of print book. Not the Atari Archives copy of the book. My mistake.

    --
    Remember, Slashdot does not have a -1 disagree moderation, and no, troll, flamebait, and overrated are not substitutes.
  38. Re:Children's programming books have also vanished by JamesP · · Score: 1

    An updated LOGO type of language with 3d graphics instead of turtles, that might inspire interest again

    Try Processing

    It's still alpha, and it needs Java, but it's pretty nice...

    --
    how long until /. fixes commenting on Chrome?
  39. Share the source! by Nick+of+NSTime · · Score: 1

    You should post the source to Star Trek on your Web site. I know I would like to see it, and possibly use your approach to learn a new programming language.

  40. That was THEN, this is_now() by Anonymous Coward · · Score: 0

    Although I'll admit that I learned programming from 101 Basic Computer Games, I'm not sure it teaches the right principles of Computer Science. Even today, I have to fight the urge to bang out some code and really sit down and think and design.

    When I work with Java, I sometimes pine for the unstructured days where you can call yet-another-global named something cryptic like Y24 to tack on another minor change onto this function. But that was THEN, this is_now().

  41. Wouldn't it suck if... by challahc · · Score: 1

    Just think if you had to go down to the store and buy the latest PS2 game, in book form.
    "Hey man how's it going"
    "Yeah I'm still typing in the new Tony Hawk game."
    "Oh Really I'm on page 5023 how about you."
    "2051"
    "Sucks for you!!!"

    --
    01100010 01101001 01110100 01100101 00100000 01101101 01100101
  42. RoboCode by rburgess3 · · Score: 1

    You know, there are great games out there that teach programming, there are ones that teach Java (Robocode), critical problem solving (Mindrover) and (Roboforge), and you can find games that use their own, c++ - like languages (Colobot), and you can even find games that allow you to compete by writing assemly-like code: (Robocom) .

  43. I only know of one by gorehog · · Score: 1
    I know of one book that teaches C++ as it teaches how to write an implementation of mastermind.

    The book is C++ from Scratch by Jesse Liberty. ISBN 0-7897-2079-5

    It has it's faults, the primary one being that the code in the book is for VC++ 6. On the disk they supply the Bloodshed Dev-C++ compiler and code for that compiler (that does not seem to compile).

    Apparently the book is out of print.

  44. Re:Several reasons why these books are disappearin by dreamchaser · · Score: 1

    Yeah, you're right. It's not like anybody ever used a GOTO in BASIC...

  45. Re:Children's programming books have also vanished by orion41us · · Score: 1

    LOGO with 3d graphics = POVRAY (http://www.povray.org) It's a Raytracer renders a scean from text source files; Actualy a very nice package. (got some GUI front ends too moray)