Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Why Teach Programming with BASIC (kickstarter.com)
11 points by fogus on Dec 28, 2010 | hide | past | favorite | 26 comments


I learned to program with BASIC when I was young, but can't imagine why I would teach someone to program using BASIC when Python is available as an alternative.


If your goal is doing something practical with the machine, Python is certainly a better choice than BASIC. On the other hand, from an educational standpoint, BASIC shares an important trait with Pascal: It doesn't do much out of the box. In BASIC you have to do some work to extract the minimum element of a list, swap two numbers, maintain a resizable array and any number of other trivial "algorithms" that Python's language features and libraries provide. Is it so hard to see that more sophisticated languages can take away opportunities to learn the fundamentals from scratch and gain an intuitive grasp of algorithm design?


However from an educational standpoint Pascal has a great advantage over BASIC. It was invented after people came up with structured programming, and is designed to make structured programming easy and natural.

This is a pretty significant advantage to me. (Though these days I wouldn't choose either.)


An interpreter is handy. I don't remember any Pascal that had an interactive environment.


Googling turned up something called Pathcal from 30 years ago that allowed you to do incremental development in Pascal, that would catch errors on the fly. You were even able to modify the environment from within itself.

I know nothing about it and so don't know how interactive it actually was.


OTOH, you don't have to teach them everything from the beginning. Even if the language is smart and feature-rich, you can always pick and choose.

And when the bright kids explore it and discover the cool features all by themselves, imagine the thrill.


The problem is, without a lot out of the box, kids just aren't going to stay interested.

HELLO THERE

HELLO THERE

HELLO THERE

HELLO THERE

HELLO THERE

HELLO THERE

^C

just isn't interesting anymore.

Simplicity is important, but you should be able to do complex things in a simple manner. At least, that's the approach that I'm taking with Hackety.


I don't think you need to worry about that. I had played entertaining video games before I started programming, and never produced anything of similar quality. None of the games I made came anywhere close to resembling the glitz and glamor of the media or video games I loved. It's easy to look back at the 1980s and see nothing but drabness, and conclude that programming provided a competitive entertainment experience, but that's not what it was like at the time. Sometimes I'd borrow a new game disk from somebody, boot from the 5.25" floppy, and the graphics would blow me away. Nothing like the crappy graphics I could make. I wrote programs to solve math programs, generate mathematical patterns on the screen, quiz me on my schoolwork, and do simple text-based games that were already lame by the previous decade's standards. Unless you were truly exceptional, the games you wrote for yourself did not compare at all with the excitement of games you could buy for a PC or an Apple II, and even the truly exceptional kids who created entertaining video games had to be willing to slog through hours of hard, unglamorous work. Kids today who expect programming to be entertaining the same way movies and video games are entertaining will do exactly what those kids did in the eighties: turn up their nose at programming and do something else. Kids who enjoy programming will program.


I'm right there with you man. That was me, too. My first computer experience was Adventure, and I basically made text adventures for the first few years I was programming.

That said, Pong in Shoes is 50 lines. It's pretty simple, and gives you an actual game. I wrote the basics of a SNS era RPG, and it was around 300 or so. I don't think this is a bad thing.


Doing interesting stuff on a world of GPUs and million dollar art budgets is very hard.


Absolutely. But small 2D games are totally within reach.


Pacman or space invaders would not be interesting today like they were 30 years ago. You need design, music, smooth movement, multiple things happening at once... It would be a mess to do it in simple BASIC.


Are you sure a motivated eight year old would give up on programming entirely because he can't program an entire Pokemon game by himself in BASIC?


Truth. Which is why I think BASIC is a bad choice. But it can be easy with modern languages, and so that's why I think they're better.


But then you are distracting students with pretty pictures and music and not teaching them what, say, recursion is.


On the other hand, on the Apple ][ you could code a lo-res Breakout in just a few lines of Basic -- a dozen? (From a dim memory of Wozniak's article in Byte -- he had a couple screenshots with the code in the lower third of the 40-column screen and the game running above.)

Python's a far better language, yes, but I haven't seen a game library quite so low-threshold.


"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration." ~Edsger W. Dijkstra


As skeptical as I am about adhering to a specific language for teaching programming, quotes like this smack so badly of curmudgeon-ism (yes, I know who Dijkstra is) that I can't take them seriously. I learned on BASIC (and LOGO) as a young child myself and transitioning into a production language wasn't an issue.


Nonsense. I taught myself BASIC in the '80s when I was 11. I had no trouble whatsoever grasping OOP, recursion, event-driven, or functional programming.

Perhaps this is due, in part, to the fact that I was self-taught, and moved to QuickBasic Pro before I did any serious work, and left the whole world of line numbers, gotos, gosubs, and line labels behind.

I am almost entirely Python now.


I learned with BASIC back in the early 90s when I was still very young.

Dijkstra was right :(


I learned BASIC on an Apple II+ and I don't think Dijkstra was right on that one. It's really a different path than the one Dijkstra endorses, but it's not more or less wrong than any other.


What could they possibly need $25K for? As far as I can tell, all it is is a web app + a magazine/book.


$25k is 500 one-year subscriptions. That's the point at which the printed magazine makes economic sense.


BASIC on the Apple II was my first programming language and I loved it at the time. Once my kids are a little older, I'm going to start with Ruby. One thing that was very helpful learning basic on the old Apple was that you could use the command line to examine variables and also program on the fly. This is similar to Ruby's IRB. Being able to tinker with a program without having to compile first is very instructive and most of all fun!


This project will only be funded if at least $25,000 is pledged by Wednesday Dec 29, 6:19am EST

At only $815 so far, they have a long way to go in half a day


That's okay--we're willing to revise our strategy. If the Kickstarter approach doesn't work, we'll try something else.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: