Fall 2006 Syllabus for CSCI 567:
Applied Systems Programming

(Last updated on March 28, 2007)


Basic Information


Course: CSCI 567: Applied Systems Programming
Prerequisites: CSCI 464 and CSCI 465
Meeting Time: 6:30-7:45 p.m., MW
Classroom: PM 252
Instructor: Michael Stack
Office: PM 566
Phone: 753-9447
Office Hours: 1:00 p.m. - 3:00 p.m., MW
7:45 p.m. - 8:45 p.m., MW (may end earlier if no appointments and no walk-ins)
Email: mstack@niu.edu
Syllabus: The syllabus, as well as homework assignments and other materials can be found below.
Schedule: The schedule for the semester can be found at http://www.cs.niu.edu/csci/567/schedule.shtml
Online Bookshelf: The online bookshelf for this course can be found at http://www.cs.niu.edu/csci/567/books.shtml
Grade: The semester grade will derive from: ten written assignments, each worth ten points; two exams, each worth two hundred points; and a final exam worth three hundred points. The final grade will be determined from the following scale:
92 - 100 (736 - 800 pts) - A
84 - 91 (672 - 735 pts) - B
76 - 83 (608 - 671 pts) - C
Assignments: Assignments are to be handed in at the beginning of the class period on the date due. Late assignments may be accepted until those marked are returned to the class. Written assignments are to be typed, not handwritten.
Examinations: Each examination will occupy an entire class period. A preceding class period will be used for review and questions; absent questions, the remaining time will be used to begin the next topic. (Note that the review sessions may be helpful in preparing for the systems programming comprehensive examination.)
Comments: There are no unannounced quizzes to persuade you to keep up with assigned readings, but you are encouraged to do so. The material is not extremely difficult, but there is a lot of it. If you are having problems, please don't wait - see me as soon as possible. Also, remember that you are responsible for following the Graduate School rules; see (and observe) especially the rules in the paragraphs on Academic Integrity in the NIU Graduate Catalog.

Important Dates


Event Date and Time Location
Assignment 1 - due Wed, Sept 6, 6:30 p.m. PM 252
Assignment 1a due Wed, Oct 11, 6:30 p.m. PM 252
Assignment 2 due Wed, Sept 13, 6:30 p.m. PM 252
Assignment 3 due Mon, Sept 25, 6:30 p.m. PM 252
Assignment 4 due Mon, Oct 2, 6:30 p.m. PM 252
Exam 1 Wed, Oct 4, 6:30 p.m. PM 252
Assignment 5 due Wed, Oct 18, 6:30 p.m. PM 252
Assignment 6 - due Wed, Nov 1, 6:30 p.m. PM 252
Assignment 7 - due Mon Nov 6, 6:30 p.m. PM 252
Exam 2 Wed, Nov 8, 6:30 p.m. PM 252
Assignment 8 due Mon, Nov 20, 6:30 p.m. PM 252
Assignment 9 due Mon, Nov 27, 6:30 p.m. PM 252
Assignment 10 due Mon, Dec 4, 6:30 p.m. PM 252
Exam 3 Mon, Dec 11, 6:30-8:20 p.m. PM 252

Other Information


  1. [8/26/2006] 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:

    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.

  2. [8/26/2006] Steve Comstock, "The Trainer's Friend," operates a web site at which can be found two interesting documents: The Future of Mainframes is Now and z/OS, Language Environment, and UNIX - How They Work Together


Course Description


From the NIU Graduate Catalog: CSCI 567, Applied Systems Programming, is an "Examination of the role of the systems programmer. Topics include operating system initialization, tuning, and maintenance, as well as operating system software development. Study of current operating system emphasizing modern methods and future trends." A complete schedule of lecture topics, reading assignments, and written assignments is included with this syllabus.

Your goal in this class is to learn some of the things that systems programmers do and how they do them. The first part of the semester will cover system initialization, control of work in the system, and tuning - topics which are important in the day-to-day technical support by systems programmers of a large mainframe operating system. The second part of the semester will be devoted to maintenance of the operating system. The last part will be concerned with some specialized operating system software development facilities available to non-authorized users.

Even if you never maintain an operating system, you will likely work with one, and an understanding of these topics will be helpful. While some systems programming activities may seem arcane at first, most are fairly straightforward to learn. Many are similar to those performed by applications programmers.

In order to actually do systems programming, an operating system must be available to work on. Since NIU operates MVS on its mainframes (now called servers), we will study MVS, which is now bundled with other software and called z/OS (or OS/390 in its older version). It is one of the the largest and most complex operating systems in existence today. Other OSs provide similar facilities but at a significantly more primitive level.

You probably cannot afford to miss a class lecture as these are your primary source of information for the course. You may also wish to consider tape recording the lectures; this has proven valuable to some students in the past and I do not object to the practice. It also has been useful to some students during preparation for exams.

There are two aspects of this course which are important to understand at the outset. First, there is a lot of reading, possibly more than you have encountered in other CS courses. Second, this is a survey course in which each topic is not necessarily dependent on the previous ones. Be prepared for each class meeting, and be sure to stay current; if you fall behind in your reading, it may be very difficult to catch up.


Course Texts


The texts are current, standard IBM manuals. These are intended to supplement the primary course material (the lectures) and will be necessary to complete the written assignments. Please purchase your texts as soon as possible to assure that you have them when they are needed; the bookstore returns unsold texts after mid-semester, and required texts which are not used until the last third of the semester may not be available for purchase at that time.

The manuals explicitly referred to in the lecture schedule are listed below. Most of the manuals are available in "softcopy" format and can be viewed and searched online. The manuals which are also available in hardcopy from the bookstore are so indicated.

Many additional IBM manuals are included in the CSCI 567 bookshelf. They are useful references and some will be needed to complete assignments. The tag given for each book below is its identifier in the lecture schedule as well as a link to the book in the course bookshelf.

  1. MSP - MVS Systems Programming [Hardcopy available at the bookstore]
  2. ABC - The ABCs of Systems Programming
  3. PoO - Principles of Operation [Hardcopy available at the bookstore]
  4. UTL - System and Dataset Utilities
  5. ITG - MVS Initialization and Tuning Guide [Hardcopy available at the bookstore]
  6. ITR - MVS Initialization and Tuning Reference
  7. AAS - MVS Authorized Assembler Services Guide
  8. J2I - JES2 Introduction
  9. J2G - JES2 Initialization and Tuning Guide
  10. J2R - JES2 Initialization and Tuning Reference
  11. PGM - Program Management
  12. SVA - MVS Diagnosis: Tools and Service Aids
  13. SMU - SMP/E User's Guide
  14. MPR - MVS Packaging Rules
  15. ADX - MVS Extended Addressability Guide
  16. ESA/390 Reference Summary [Hardcopy available at the bookstore]
  17. HO - Course Handouts


This page was last modified on Wednesday, March 28, 2007, at 08:10:39 PM GMT