All materials are shareware. See the shareware notice for payment information.


Everything in this text was created on a Macintosh computer running MacOS X and/or OS 9.2.2 and using NisusWriter. The materials are best viewed with Netscape Navigator 3.0 or higher because they rely on JavaScript (see below).

Created Entirely with Nisus Writer 5.0 Made with Macintosh!

Help on Javascript:

These pages rely on JavaScript to keep the top frame set to the correct chapter when the main window changes from a section in one chapter to a section in another chapter. JavaScript has also been used to enable the left frame to be closed using the close box in the upper left corner or the left frame and reopened using the small button (leftarrow.gif (72bytes)) that will appear if necessary. If these features aren't functioning, JavaScript may not be enabled on your browser.

Enabling JavaScript:

If you are using Netscape Navigator 3+, choose "Network Preferences..." from the "Options" menu. Click on the "Languages" tab and then make sure the "Enable JavaScript" box is checked:

Enabling JavaScript on NS 3

If you are using Netscape Communicator, choose "Preferences..." from the "Options" menu. Click on the "Advanced" tab and then make sure the "Enable JavaScript" box is checked:

Enabling JavaScript on Communicator

Any display problems when using Netscape or Safari should be brought to the author's attention. However, no promises of suitability in or of constructing bug workarounds can be made with respect to other browsers. Contact their manufacturers. Note: As of 2000 07 29 an attempt has been made to work around the more glaring incompatibilities with Internet Explorer. Further problems should be brought to our attention, but no guarantees can be made that they can be resolved. Also, as many of the files here have graphical illustrations that are an integral part of any such text, there is no point in using a text-only browser.


Materials are under construction and can be changed or added to at any time. No guarantees as to completion of any proposed chapters in any form whatsoever are express or implied. The author's best efforts have been made to conform to the ISO-standard for Modula-2, but no guarantees are offered for that either. All the programs have been tested; most using the p1 compiler running under MPW. Most have also been tested on the StonyBrook compiler running under Windows NT. There is a lot of stuff here. Please report errors. More chapters are on the way. For the 1999-2000 edition, materials on Object Oriented extensions to Modula-2 have been added as chapter 19, and an answer key to the questions and some problems has been provided for chapters 1-12. By the 2002-2003 edition the answers had been extended to chapter 15 and the html improved. Browsers are getting better and compatibility has improved, but that is not our doing.

There is a lot more information available on Modula-2 in the comp.lang.modula-2 FAQ.


These materials start with few or no assumptions about the students' knowledge of programming and build the foundations very slowly and completely. They can be used for those in the first two or three semesters of computing science, regardless of initial knowledge; extraneous materials may simply be skipped.