CSCI 464 Data Structures: Notes and Examples (Course Notes) - updated most recently for Spring 2006; do not use an older edition
The Art of Computer Programming, by Donald E. Knuth;
IBM Publications
And for the first two weeks only (we'll use the High Level Assembler after that):
The following are not required, but may be interesting:
Portions of upcoming volumes of The Art of Computer Programming are being made available early as "fascicles." The first one is on MMIX, an update of MIX. The others are sections from Chapter 7 (which will eventually be published as at least three volumes):
More information about D E Knuth can be found in his Curriculum Vitæ and in his short bio and software-oriented bio.
Here are some notes on csect "threading" by John Ehrman.
John Ehrman has also written a note showing unusual uses of the USING instruction. These are NOT to be interpreted as suggestions, but instead as aids to understanding USING.
Here is a presentation on the USING instruction given at the Summer 2004 SHARE meeting. It covers the same material provided in Notes and Examples.
IBM has announced the official end of service dates for all versions of OS/390 and z/OS that run on 31-bit hardware. On March 31, 2007, all 31-bit mainframes will essentially become obsolete and 64-bit mainframes will become the standard. For that reason, it will be increasingly important to understand the differences introduced by the z/Architecture. Some helpful references:
The first two are presentations given at SHARE in Nashville in March 2002, by Bob Rogers of IBM. They are titled 64-bit z/Architecture Overview, consisting of Part I: Application Facilities, and Part II: Supervisor Facilities.
Next is another SHARE presentation given most recently at the Washington, D.C. meeting in August 2003, by Bob Shannon of Rocket Software. It is called Zee Guide to z/Architecture.
Finally, there is an article published in the IBM Journal of Research and Development, called Development and Attributes of z/Architecture, co-written by Bob Rogers.
All four of these are highly technical and will take some effort to understand. There is a lot of overlap in the material; my hope is that the different presentations will facilitate understanding. My thanks to both authors for permission to include their presentations.
The STORAGE macro has effectively replaced GETMAIN and FREEMAIN; we will use STORAGE to acquire or release memory (instead of the older macros).
One of the most difficult hurdles many students face is the (apparently) startling notion that the process of designing a program should be completed prior to any coding, rather than concurrent with it. This means writing down, in some sort of pseudo-code language, the logical steps to be implemented. [A description of such pseudo-code can be seen at http://www.cfg.com/pdl81/pdlpaper.html .]
Just writing pseudo-code isn't enough, though. It's also important to show exactly how each pseudo-code statement is implemented, by quoting it as a comment just before the instructions that implement it. This process will be emphasized throughout the semester, but a complete discussion of this and other software engineering principles and processes can be found in the excellent book, Code Complete, 2nd Ed, by Steve McConnell, published by Microsoft. I strongly recommend this book, especially to those who would like to have a successful programming career.