My elementary education with the Apple II

June 3rd, 2013 12:36 PM
by
Filed under History;
2 comments.

My household was an early adopter of personal computers, at least compared to the rest of my grade school. Whereas I had access to the family Apple IIe whenever I wanted, for most of my classmates, their only exposure to that computer came from our weekly computer lab, which was not what I would call rigorous. The instructor was Sister Theresa, and she didn't know the first thing about programming or educational software. Too many classes would start this way: "Turn on the computer. Type NEW, return, RUN, return, HOME return, GR, return. Now draw the Nativity." And that was it: we'd be left to our own devices for the rest of class. Since our work was never checked, no one attempted the project she'd assigned us. On rare occasions, we'd be given textbooks of BASIC program listings and could type one in, but neither instruction nor comprehension occurred regarding what these commands did or how they resulted in the program we'd run.

Instead, my mastery of the Apple II occurred at home. I would pull apart Applesoft programs to see how they worked, then I'd modify them or write my own, sometimes recreating the work during class to show off to my classmates. (The result could be seen less in their admiration and more in their bullying.) I later wondered why the class couldn't be more productive. Did the administration think Sr. Theresa was the best person for this job? Or was the convent looking for a position for this old nun, and this was all that was available? Was it worth it to make her feel useful at the expense of all those computers being wasted? Having now been an educator myself, I'd be keen to see what the mission statement, classroom goals, or rubric were for that class. I suspect the syllabus was blank.

Regardless, I did enjoy these classes and the special permission Sr. Theresa gave me to borrow from her archive of Scholastic Microzine on Friday afternoons to bring home for the weekend. I would wake up early every Saturday to play this trove of new games I'd been bequeathed, both before my three older brothers would wake up and before the Microzine would have to go back to school on Monday morning. I was likely the only student who ever went to see Sr. Theresa outside our designated lab time, and we grew friendly. But my education had taught me to never question authority, so despite our relationship, it never occurred to me to suggest that her class could be run in any other way.

St. Leo's SchoolI don't know how much that aspect of the school has changed since then. I remember hearing in the early- to mid-nineties that they were "upgrading" all their IIe computers to IIc's. Whatever expert they hired for that advice steered them wrong, as the Apple II line was nearing the end of its official support by then, and switching to Macs or PCs would've been a more long-term investment. I wonder what came of their Apple IIe or IIc labs — no one called me when they disposed of either. Maybe they're still there, teaching modern students the fine art of retrocomputing.

Can a quick Google search tell us for sure? Visiting the St. Leo's School Web site — which is running on a five-year-old version of Joomla — I see that "computer" is one of the required classes, and that "Computers are incorporated into daily classes, starting in Pre-Kindergarten." Not the most detailed curriculum outline.

Granted, this is a grade school in suburban Leominster, Massachusetts. At that age and with the resources available, it may be more reasonable to expect the students to focus on the basics: "Religion, Mathematics, Reading — Literature, Language Arts". But computers can be tools by which to inspire creativity in all those areas and more. Think of all the lessons, exercises, and tools that computers could be bringing to the classroom: Programming! Applesoft BASIC! iBooks! Game-playing! Game design! And more!

The issue, in many ways, is academic, as it will be a long time before a grade school's curriculum again has direct influence on my family. But whenever I do evaluate a school's academic rigor for its ability to inspire a generation of creative and competitive professionals, I'll be sure of three things: that computer literacy is as much a priority as other "core" areas; that there is a passionate, knowledgeable teacher in charge of executing that mission; and that she be willing to share her library of Microzines.

What schools don't teach

March 18th, 2013 11:18 AM
by
Filed under Musings;
2 comments.

Computers play an important role in education, be it in programming or game design. Retrocomputers like the Apple II can be especially valuable in any of these disciplines, especially programming. The finite, knowable universe of an 8-bit machine provides the perfect canvas on which budding programmers can craft their first algorithms.

But in many schools, the question isn't with what computers should programming be taught, but whether programming should be taught at all. Demand for programmers has never been higher, with the number of positions growing at twice the national rate. Yet ninety percent of schools offer no programming courses at all, leading to colleges graduating fewer computer science majors than they were a decade ago.

The non-profit Code.org is bringing attention to the need for more programming education in this country with a public service announcement (PSA). For this five-minute video, they have recruited the likes of Bill Gates, Mark Zuckerberg, and will.i.am, as well as some less likely suspects.

(There are also one-minute and nine-minute versions of this PSA.)

When I was in high school, a required course was geometry. I found it a challenging course, but reasonably so. The theorems and corollaries about alternate interior angles and their kin weren't intended to train me to be an architect; rather, they were lessons in logic, teaching me how to think and solve.

Programming is the modern geometry, offering similar value to students, whether or not they seek careers in computer programming. I do not consider myself a programmer, yet I have benefitted immensely from the languages I taught myself outside of school. I have occasionally tried to pass on these lessons to friends, showing them some (literally) BASIC concepts on the Apple II, such as variables and FOR loops. They remain completely mystified, with one going so far as to marvel at my own capacity to grasp programming: "You're a creative person, Ken, yet you can program. I've never met anyone whose mind can switch between those two modes so effortlessly."

But programming is creative. A relative who doesn't realize that basic tenet recently characterized programming to me as "Doing the same thing, over and over". How he confused programming with data entry is beyond me. But the fusion of creativity and logic is perhaps best found on this digital landscape, and students would benefit from being introduced to that sandbox — whether or not it's on an Apple II.

Recovering the code of Prince of Persia

March 29th, 2012 10:18 PM
by
Filed under Game trail, History, Mainstream coverage;
3 comments.

Jordan Mechner, rockstar programmer responsible for Prince of Persia and Karateka and keynote speaker of next week's PAX East convention, published a comprehensive journal of the making of Prince of Persia. In the book and on Mechner's Web site are notes, sketches, concept art, demo videos, and more — a wealth of information he preserved from decades ago.

Yet for all that time, there was one vital piece of data he was missing: the original source code. Whether it had been overwritten, lent or donated, mistakenly or purposely trashed, or simply lost remained unknown to Mechner, despite his best efforts.

This week, that long-lost treasure fell in his lap when his father mailed him a box of assorted unidentified floppies. Contained therein was Prince of Persia in its rawest form.

It never occurred to me that Mechner didn't already have PoP's source code. Given that PoP has appeared on platforms as recent as the Xbox 360, I wonder what version or fork they were basing that port on. It makes even more recent independent ports all the more impressive.

Source Code

Jake Gyllenhaal followed his role as Mechner's Prince of Persia
with the lead in
Source Code... coincidence?!

Mechner's next task is to verify the integrity of the floppies and migrate the data off them. New hardware like the FC5025 and Kyroflux are miracle workers in our ability to access vintage media via a modern operating system, but the fact remains that the floppy disk is a magnetic medium whose charge is dying. I started (but did not finish) my own floppy migration two years ago. It's easy to dismiss it as a low-priority project compared to ongoing and more demanding tasks, but it will be all too soon that I'll have put it off too long.

Once the code is recovered, I wonder what Mechner will do with it? It's still copyrighted material, so will he continue to keep it a secret — or will he publish it under Creative Commons, allowing a variety of variations and ports?

All this reminds me: David X. Cohen, co-creator of the television show Futurama, reported almost five years ago that he too had programmed an Apple II game that needed rescuing from floppies. I wonder what ever came of that?

UPDATE (Mar 30): Jason Scott tells me, "You'll be delighted to know I am leading this expedition."

(Hat tip to Sean Fahey)

Battle of the 'bots

February 9th, 2012 1:45 PM
by
Filed under Happenings, Software showcase;
1 comment.

As I've discussed in Open Apple but not previously on Apple II Bits, you absolutely must check out Jimmy Maher's blog, The Digital Antiquarian. His exhaustive, academic, focused writings on the Apple II and aspects of its history and games (specifically what he refers to a "ludic narratives") are fun and informative reads worth making the time for.

His travels through Apple's history have most recently taken him to the works of Silas Warner, best known for the seminal stealth game Castle Wolfenstein but also developer of RobotWar, published by MUSE Software in 1981. True to its PLATO (Programmed Logic for Automated Teaching Operations) origins, the game served as an instructional tool for teaching programming, challenging users to create routines that describe the behavior of a combative robot. As Maher describes:

You don’t get to design your robot in the physical sense; each is identical in size, in the damage it can absorb, in acceleration and braking, and in having a single rotable radar dish it can use to “see” and a single rotatable gun it can use to shoot. The programming language you work with is extremely primitive even by the standard of BASIC, with just a bare few commands. Actual operation of the robot is accomplished by reading from and writing to a handful of registers. That can seem an odd way to program today — it took me a while to wrap my mind around it again after spending recent months up to my eyebrows in Java — but in 1981, when much microcomputer programming involved PEEKing and POKEing memory locations and hardware registers directly, it probably felt more immediately familiar.

Two to five players would then enter their routines into an arena, and may the strongest robot win!

Terminator T-800 vs Robocop

Inspired by the RobotWar competitions Computer Gaming World once hosted, Maher is looking to resurrect these epic duels with a contest of his own. One cool feature not possible at the time of RobotWar's debut: Maher will do a screencast of each battle and upload the video recording, so that players can not just know the outcome but watch how it came to be. Contestants can tweak their winning 'bots between battles, evolving them to face ever stiffer competition. Grand prizes await the mightiest mech.

This sounds like great fun, in the tradition of HackFest and RetroChallenge. I applaud Maher for actively supporting and even expanding the Apple II community, and I encourage anyone reading this to consider entering the contest.

One shall stand… and one shall fall!

A new generation of programmer

September 19th, 2011 1:30 PM
by
Filed under Mainstream coverage;
1 comment.

The first in a new Cult of Mac series makes the title, "Me and My Mac", a bit of a misnomer. Their featured Apple user is Lim Xin Mei, who's learning to program Applesoft BASIC on the Apple IIGS. The six-year-old is dubbed "the world's youngest programmer", which may be familiar to retrocomputing enthusiasts: it was just a few years ago that her brother had a similar title.

"I have always wanted to teach my son [Lim Ding Wen] programming when he was a kid," wrote his father, Lim Thye Chean, in 2008. "When he was only 2 years old, he had already know how to insert a disk and boot up a computer, then used the mouse to find the program he wanted, double clicked to run it and have fun. He asked how to write a game when he was in primary one (7 years old), and I promised to teach him programming if he had done well in school, and he did."

Ding Wen and Xin Mei used to appear in a YouTube video series called The Apple IIGS Show, episodes of which are still available online.

Knowing that there are children being raised to be not just computer literate but technically proficient is a refreshing change from Canadian youth who couldn't identify a floppy disk.

How would you ensure your progeny becomes the next generation of Apple II user?

A world without BASIC

June 27th, 2011 10:16 AM
by
Filed under Musings, Software showcase;
6 comments.

The computers that Apple II users grew up with were nowhere near as user-friendly as today's machines. They had unintuitive interfaces, inscrutable error messages, and limited capabilities.

But those same limitations also made them an excellent tool for learning such important concepts as problem-solving, game design, and especially programming.

The Apple II was especially practical for that last function, as it came with BASIC in ROM. Without any other software, a user could turn on her machine and start building a virtual world of her own design. The lack of advanced features meant that the user was playing in a sandbox of conceivable limits yet infinite possibilities.

Yet by 1997, when I started college as a computer science major, I was getting laughed out of the classroom by using BASIC where other students were relying on Java and C++, as I related in Juiced.GS. Today, BASIC is almost nowhere to be found, as detailed in the leading item on Computerworld.com last Thursday "How are students learning programming in a post-Basic world?"

The story is an interesting look at the variety of languages with which to introduce modern students to programming. For some parents and teachers, the old methods work best; "My son's math textbooks contained exercises in Basic, but we could not do the problems until we bought an old Commodore 64 online," said David Brin, author of "Why Johnny Can't Code". Others prefer more popular scripting languages, such as Python; still others use a language designed more for educational than practical use, such as MIT's Scratch, the language of choice of the computer science teacher where I used to teach. She's offering a camp this summer to introduce 13- and 14-year-olds to programming, using a different format from last year's camp: "I changed the language from Alice to Scratch. Alice was too glitchy for me. Scratch is easy to pick up, and hopefully will be fun for middle schoolers."

But none of these languages will offer the same experience as learning BASIC. Author Lamont Wood had once dabbled in BASIC programming but had fallen out of practice until his recent experiment with Python:

The thrill was not the same as in 1979; it hadn't taken months to get the hardware to work, and it sure ran quieter … with Basic, I felt like I was rummaging through a small box containing a few crude tools. With Python, I felt I had pushed open the door to a massive but unlit tool warehouse and was darting in to grab the few that I could see.

I learned BASIC by doing: I was running a Warp Six BBS and needed to make modifications. Eventually, I was inspired to write my own door game, though since it was a port, I had to concern myself only with the coding, not the design. In either case, I always had either the code or design to work with; I never had to conceive and build entirely from scratch (no pun intended).

My challenge in adapting those BASIC programming skills to a modern environment is not so much choosing a language as it is choosing an instruction method. Just as I learned BASIC to run a BBS, I've set a goal of learning PHP to help me run WordPress, a modern equivalent of an online community. But elementary concepts such as functions and arrays seem more confusing than they did twenty years ago.

What's the best computer and language to teach programming — and where does one go from there?