Self Paced Lessons
|Column Tag:||Tools of the Trade
Self-Paced Mac Programming
By Joe Pillera, MacTutor Contributing Editor, Environmental Research, Institute of Michigan
One of the caveats of Macintosh has always been that its a nontrivial machine to program - largely in part because the Mac is more sophisticated than most other popular computer platforms.
But this has finally changed for the better: Apples Developer University has just recently released a self-paced course on CD ROM - spanning over 500 megabytes on disk - called Macintosh Programming Fundamentals (MPF henceforth). This product uses Macromind Director to teach Mac programming using sound, graphics and animation. And the result is impressive.
Selecting a course from the menu
Refer to Figure 1: MPF uses Hypercard as a front end, to make navigation throughout different parts of the course easy and intuitive. As can be seen from the illustration, MPF covers the following ROM managers in detail, in order to allow you to construct a completely functional draw program (called Target) when you complete the course:
Control Manager Print Manager
Event Manager Quick Draw
File Manager Resource Manager
Memory Manager Standard File Package
Menu Manager Window Manager
Clicking on Building an Event Loop in Figure 1 will immediately bring up the screen as shown in Figure 2. Every subtopic consists of three major parts: the lesson, self-test questions, and lab exercises.
Because Macromind Director is used throughout, each frame on the lesson is completely animated and narrated, as is the excerpt from the Managing Memory module in Figure 3.
Making the grade
One of the nicest parts of this course is its self-testing ability. If you answer a self-test question incorrectly, the button Review Lesson flashes at the bottom of your screen. Clicking it activates a hypertext-type of link to the exact lesson frame that explained the concept. Refer to Figure 4: the top half of the illustration represents the self-test question; the bottom half is the screen that appears when you click Review Lesson. In this case, a narrators voice came out of my Mac telling me PrCloseDoc() is the function I should use when a previous call to PrOpenDoc() has been made. An animated diagram was then drawn on my screen to reinforce the concept.
As if providing lab exercises at the end of each lesson wasnt enough, Apple did the ultimate: they provided a Show Me facility - an animated and narrated cheat sheet, if you will. So if you get stuck in a lab problem, just click Show Me to bail you out.
Show Me is so thorough, it simulates exactly how a professional Mac programmer would solve the problem - all the way from double clicking on the THINK C application to cutting and pasting source code to solve the problem. Even the THINK C compile process is simulated - to give you the feeling an instructor is doing all the work right at your keyboard. Someone really put a lot of effort into this feature.
Right on the bullseye
When youre all done with the course, youll have a fully-functional draw program called Target. No - it doesnt blow away Aldus Freehand, but it does provide you with source code that handles everything from printing to scrolling of graphical items in windows.
However, the power-programmer in me did surface at the end, so heres my wish list for future versions of the MPF Target application: tear-off menus (like in MacPaint), multiple page specifications for a window (like in MacDraw), color, and more support for MultiFinder and forthcoming System 7 features.
Apple has really struck gold with MPF. Combining detailed illustrations with animation and sound, its as close as youll ever get to sitting in a classroom - and a lot more convenient.
Joe Pillera is a research scientist at the Environmental Research Institute of Michigan (ERIM) in Ann Arbor, Michigan. The opinions expressed here are solely those of Joe Pillera, and not of ERIM or its affiliates. The author can be reached electronically via the GEnie service by sending mail to JPILLERA. All trademarks are registered to their respective holders.