6 ms·
Why Teach Programming with BASIC
- ygd 16y agoWhat could they possibly need $25K for? As far as I can tell, all it is is a web app + a magazine/book.
- chromatic 16y ago$25k is 500 one-year subscriptions. That's the point at which the printed magazine makes economic sense.
- blacksmythe 16y agoI 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.
- RodgerTheGreat 16y agoIf 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?
- steveklabnik 16y agoThe 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.
- rbanffy 16y agoDoing interesting stuff on a world of GPUs and million dollar art budgets is very hard.
- steveklabnik 16y agoAbsolutely. But small 2D games are totally within reach.
- rbanffy 16y agoPacman 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.
- steveklabnik 16y agoTruth. 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.
- rbanffy 16y agoBut then you are distracting students with pretty pictures and music and not teaching them what, say, recursion is.
- chromatic 16y agoAre 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?
- dkarl 16y agoI 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.
- btilly 16y agoHowever 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.)
- rbanffy 16y agoAn interpreter is handy. I don't remember any Pascal that had an interactive environment.
- btilly 16y agoGoogling 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.
- Florin_Andrei 16y agoOTOH, 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.
- abecedarius 16y agoOn 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.
- Jach 16y ago"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
- Devilboy 16y agoI learned with BASIC back in the early 90s when I was still very young. Dijkstra was right :(
- rbanffy 16y agoI 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.
- grav1tas 16y agoAs 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.
- teilo 16y agoNonsense. 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.
- byoung2 16y agoThis 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
- chromatic 16y agoThat's okay--we're willing to revise our strategy. If the Kickstarter approach doesn't work, we'll try something else.
- boneheadmed 16y agoBASIC 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!