Skip to main content

Student Portal > Contests > 

IBM Master the Mainframe Contest

   
No experience necessary. Just a desire to win some great prizes.

OverviewDetailsEducatorsStudentsOfficial rules
Registration  |  Part 1: Breaking the ice  |  Part 2: Practical experience  |
Part 3: Real-world challenge  |  Contest FAQ  | 
Part 1: Breaking the ice

Approximate time to completion: less than one hour

Welcome to the IBM Master the Mainframe Contest!

Before starting this contest, you need a mainframe user ID. If you registered for the contest before September 27, you should have already received your user ID — if you did not receive your ID, or if you need it re-sent, please send an email to zskills@us.ibm.com. If you register for the contest on September 27 or later, IBM will send you a user ID within five business days (though probably much quicker). See this page to register.

The object of this part of the contest is to get you acquainted with the mainframe interface as well as with some basic user commands. If you competed in last year's contest, you'll recognize the flow of this part of the contest, though many of the details have changed. Read the instructions carefully!

The instructions below will lead you through exactly what you need to do to successfully complete Part 1 of the contest. The faster you complete this section, the better your chances of winning. The first 500 contestants to complete this section win custom Master the Mainframe T-shirts.

Good luck!

(1.) Download and install a 3270 emulator

In order to access a z/OS mainframe (z/OS is the mainframe operating system), you'll need a 3270 terminal emulator. Follow the instructions based on your operating system:

  • If you are running Windows, pick up an emulator from Tom Brennan Software here. Download the Vista V1.24 .exe file. (Windows Vista users: use the same link, but download the Vista V1.26 beta instead.)

    Double-click on the .exe file and follow the installation instructions. The screenshots given throughout these instructions were taken on a Windows XP machine. There may be slight variations for other operating systems.

  • If you are using a Mac machine, you can pick up a 3270 emulator here.
  • If you are running Linux, install the following package: x3270 -port 623. See this page for more information.

Once installed, the default location to access the 3270 emulator on a Windows machine is: Start-> Programs -> Vista tn3270 -> Vista Standard Session.

Open the emulator. The first time you do this, you might get this error:

connection error

If you do, simply click "OK" to proceed. You are now ready to set up your emulator and connect to the mainframe.

Return to the top

(2.) Use the emulator to connect to the mainframe

For Windows users, from the menu bar in Vista Session A, select File -> Reconnect Ask. (For other operating systems: configure your emulator with the same values listed here.)

The Host IP Name for the z/OS system you'll be accessing for the contest is 192.86.32.16. The IP Port is 623. Fill in these two values, and click Connect:

terminal session 

values

You should now see the z/OS welcome screen:

welcome 

screen

You are connected to a mainframe. If this is your first time on Big Iron, may you always remember this moment. Let's cruise along and get you logged on.

Return to the top

(3.) Logon to z/OS using your ID

A quick note about z/OS: z/OS is an upgrade of what was previously called OS/390. Both of these operating systems are an evolution of MVS, which stands for Multiple Virtual Storage. There are still many references to MVS and OS/390 in mainframe literature.

To gain access to the mainframe with your user ID, you need to login to TSO (which stands for Time Sharing Option, but you don't need to remember that.)

Here's where things will be a little different than what you are probably used to. To get to the TSO logon screen, type: LOGON Z9##### (where Z9##### is your IBM-supplied user ID -- please note that any '0' characters in your user ID are zeros, not the letter 'O'). Please be careful to enter your user ID exactly as IBM sent it to you. The Vista emulator allows you to use Ctrl+V to paste text from your clipboard, so you can cut-and-paste the user ID from your email if you'd like to play it safe.

welcome 

screen

Now press the right Ctrl key. On the mainframe, the right Ctrl key enters commands. The Enter key, the arrow keys and the tab key are used for navigating the cursor. If you master this, you're halfway to becoming a mainframe wizard! Well, maybe not quite halfway, but you're getting there.

Note: Some mainframe emulators (including the emulators that run on Linux and Mac boxes) have mapped the keys so that Enter performs the function of the right Ctrl key. These instructions assume that you aren't using such an emulator, but if you are, you'll have to make a slight mental adjustment when the instructions tell you to press Ctrl.

You are now looking at this screen:

logon 

screen

The first time you log in, your password is z9sys4me (not CaSe SeNsItIvE, just like most things in z/OS). After putting z9sys4me in the password field, hit Ctrl (from now on, whenever the instructions refer to the Ctrl key, they are referring specifically to the right Ctrl key). You will be prompted to choose a new password:

password 

screen

The password rules here are very specific, so please read these rules carefully. All passwords must:

  • Be six to eight characters in length
  • Contain at least one non-alphabetic character
  • Contain at least one alphabetic character
  • Have non-numeric first and last characters
  • NOT contain four consecutive characters of old password
  • NOT contain three identical adjacent characters
  • NOT contain your User ID

Some examples of valid passwords:
  • z9z9z9z
  • z9dude
  • pw4mtm
  • jcl4eva

Choose a new password and press Ctrl. You'll be asked to enter it again for verification. After you do this, the system will take a moment to register your first logon. At this point, the system is creating some information specific to your user ID and linking you to various subsystems. This takes a moment; relax and think about a happy place. After a few seconds, you will see the following progress screen:

second welcome 

screen

Notice at the bottom of the screen, you see this: ***. The three asterisks mean that the system is waiting for your input to continue. Press Ctrl to continue and you're on your way!

The screen in front of you now is the starting point for much of what is done on the mainframe, the ISPF Primary Option Menu (ISPF stands for Interactive System Productivity Facility, but you don't need to remember that, either.)

ISPF 

menu


Press Ctrl to clear the Copyright popup window:

ISPF menu, cleared 

popup
ISPF is where the magic happens. You are officially logged into a System z mainframe, and you've completed the first three steps of Part 1 of the contest. Congratulations! Welcome to Big Iron.

Return to the top

(4.) Customize your environment

The default setting in ISPF is for the command line to be at the bottom of the screen. Most systems programmers, though, prefer to have the command line at the top of the screen. Let's quickly change this so you'll look like an old pro. On the command line, enter 0 (you pressed Ctrl, not Enter, right? Good!)

ISPF 

menu

This takes you to the ISPF Settings menu.

On this screen, practice navigating through the menu by pressing the Tab key repeatedly. The cursor will stop at every field on the screen. Now try pressing the Enter key repeatedly. The cursor only stops at the leftmost field on any given line.

Navigate to the field beside Command line at bottom. Delete the "/" using the delete key (the backspace key will bring you back a space but will not delete characters). Press Ctrl. The command line jumps to the top of the screen:

Settings 

screen

Now your screen is set up like an experienced systems programmer. Feel cooler now? Excellent.

To get back to the ISPF Primary Option Menu, press F3 (on a Mac, press Command + 3). F3 almost always takes you one screen back — like many things in z/OS, the F keys are customizable by the user or the application.  F3 is a very important key to remember. (If you accidentally hit F3 twice, you'll be taken all the way back to the TSO READY prompt - to get back to the ISPF Primary Option Menu from here, type ISPF and press Ctrl.)

IMPORTANT NOTE ON LOGGING OFF (and logging back on): If you don't intend to log off before completing "Breaking the Ice: Part 1," you should skip to task #5 after reading this sentence: Be sure to come back and read this section before attempting to end your session so that you don't get locked out of your account!

When you need to log off of z/OS, press F3 until you arrive at the TSO READY prompt. Type LOGOFF and press Ctrl:

READY 

prompt

You can now safely close the emulator window.  However, if you have done more extensive work during your session, you will see this screen when you attempt to F3 past the ISPF Primary Option Menu:

Log 

screen

If you encounter this screen (as you will after completing some of the later steps), select option 2: "Delete data set without printing," and press Ctrl. You will then be taken to the TSO READY prompt, and the system informs you that Z9#####.SPFLOG1.LIST (a log that you don't need) has been deleted. Type LOGOFF and press Ctrl to end your session.

Should you not follow this logoff procedure, you will get this error when you try to log back in:

Error 

screen

If this happens to you, enter LOGON on this screen, then supply your user ID at the next prompt.

Once you get to this screen:

Logon 

screen

enter your password (but don't press Ctrl yet). Now Tab down until the cursor is beside -Reconnect, and put an S there. Now press Ctrl. Voila! You're back in business. Press Ctrl at this *** prompt:

TSO 

prompt

and you will be back at home, sweet home: the ISPF Primary Option Menu.

Return to the top

(5.) Use ISPF facilities to locate data sets

From the ISPF main screen:

ISPF 

menu

select option 3 (Utilities), and press Ctrl.

On the next screen:

Utility 

menu

select option 4 (Dslist - short for data set list) and press Ctrl.

Several data sets have already been created for your z/OS user ID. Let's go take a look at them. On the line Dsname Level, type your user ID:

Data set list 

menu

and press Ctrl. You'll be presented with a list of all of the system-generated data sets that have been created for you:

Data set 

list

A partitioned data set (PDS) is the mainframe equivalent of a folder or a directory. Most of the data sets in the list you're looking at now are actually of the type PDSE (partitioned data set extended), which is an improvement over the type PDS. If you're interested in the technical differences between a PDS and a PDSE, you can read a very thorough explanation on this blog.

A data set contains members, which you are probably used to calling files. Let's have a look at a member that contains a program that you'll be running a little later in Part 1. Tab down until your cursor is beside Z9#####.REXX, then type a B (for browse):

Member 

list

and press Ctrl. You'll see a list of all of the members in the data set.

You can also browse members by entering a B on the field next to them. Try this on the member named COUNT (if you were going to Edit a member, you'd enter it using E instead — but we're not doing that just yet):

Member 

list

The COUNT member that you're looking at contains the code for a program that you're going to run later in the contest. You don't need to do anything here now, but you've just learned how to navigate into data sets and members. This is very important stuff!

Now press F3 until you're back at the ISPF Primary Option menu. Let's create a new member for you to check out.

Background to explore: Quick and dirty overview of mainframe file systems:

On a PC or Mac, all the operating systems (Windows, Linux, Mac OS, etc.) use what are called bitwise file systems. The majority of z/OS uses what is called a record-oriented file system. What's the difference? Well, in a bitwise file system, files are just a collection of sequential streams of bits, and there is a special character to tell the computer where a line (or "record" in mainframe-speak) ends and the next one starts. In a record-oriented file system, instead of having a stream of bits, files are organized on the disk into separate records. Because of this property, you define the sizes and attributes of your records so there is no need for a special end line character, which helps to conserve system resources. (Mainframes can also support special bitwise file systems called HFSes and ZFSes.)

What else makes z/OS different? z/OS has very rich support for controlling resources, and this spills over into its file system. When you make a new data set, you have to define how big it can grow, as well as how its records are set up. You might think this seems cumbersome. "I don't need to define every file on my PC," you might be thinking. But the reason that z/OS needs to track each file is because the disk access speeds on the mainframe are amazing. Suppose you have a rogue program that has some flaw, and it just keeps writing out to disk. If we left this unchecked on a mainframe, you could find terabytes of data written out, filling up your disks. Before you realized what was happening, it would be too late. Not a big deal if that happens while you're downloading music on your PC, but if this happened to a bank or an airline while processing millions of transactions, it could be crippling. That's why the mainframe works the way it does. It's an important consideration in large systems thinking!

Return to the top

(6.) Populate your data set with a member

Right now, most of your data sets (folders) are just empty containers. We need to put something in them. A member (file) can be anything you'd like it to be - flat text, executables, program output - just like the files on your home computer. Let's create a simple flat text member. 

F3 all the way back to the ISPF Primary Option Menu. Select option 2 (Edit). Let's name the new member after the person who's going to create it - you.

Data sets are named with 1-8 character identifiers separated by periods, like this: Z9#####.COMPETE.PARTONE. When you're creating or editing new members, the system automatically assumes that you want the first identifier (called the high level qualifier or HLQ) to be your user ID, unless you put single quotes around the entire data set name.

Tab down until your cursor is on the Data Set Name field. The data set we're going to populate is your Z9#####.COMPETE.PARTONE data set. Enter COMPETE.PARTONE as the data set name, then put the member name in parentheses directly following the data set name. Let's use your first name (or the first eight letters of your first name). Once your screen looks something like this (though not exactly like this, unless your name is Vinnie):

Edit 

entry panel

press Ctrl to continue. The system creates a new member named your_name in the data set Z9#####.COMPETE.PARTONE and automatically opens it in an editor session. (In case you're curious, entering 'Z9#####.COMPETE.PARTONE (your_name)' also would have worked.)

Now you're ready to learn the ISPF editor!

Return to the top

(7.) Enter three lines of text into your new data set member

You are now in the ISPF editor, looking at a blank member:

Blank 

member

Tab your cursor to the first line of blank space (two lines under the first "-" in "-Warning-"):

Tab 

down

Now type in three lines worth of whatever you'd like to say. We highly recommend a haiku poem about the mainframe - five syllables on the first line, seven on the second line, then five again on the third line.

The three lines of text can be whatever you want - you don't have to come up with a haiku (we will post our favorite haikus on our contest Web page, though, so try to come up with one if you can).

The important thing is that you type three lines of text here, using the tab key to move to the second line when you're done with the first and so on. When you are finished entering the text, press Ctrl. (If at any point you mess up and would like a clean slate, enter CAN (short for cancel) on the command line. Your work will not be saved, and you will return to the previous screen. Press Ctrl on that screen, and you will have a fresh data set member again. You can also enter HELP at any time on the command line for more information about the ISPF editor.)

Once you're happy with your text, press Ctrl. Your screen should now look something like this:

Finished 

haiku

The ISPF editor is very careful to preserve system resources. It has made the member exactly three lines long and chopped off the excess blank lines. To save your work, type SAVE on the command line and press Ctrl.

Return to the top

(8.) Use the ISPF editor to manipulate text

Now let's practice some simple ISPF editor commands - the basic tools for editing and modifying members.

To insert more blank lines, use the I command (for insert). Editor commands go in the numbered field beside the lines of text, right on top of the existing line numbers. Let's insert two lines by putting the I2 command on the third line (go ahead and type right over the line numbers that are there):

Insert 

lines

Now press Ctrl. Two blank lines have been created:

Lines 

inserted

Let's now copy your brilliant text forty times over. To do this, put a CC on the first line you want to copy, and a CC on the last line you want to copy (the first and third lines of your text, respectively). To tell the editor to paste the copied section forty times, go to the last line, and put an A40 in the last line's command field (the A stands for "paste After this line."  A B would paste it before the line.)

Your screen should look something like this:

Copy/paste 

lines

Now press Ctrl. Your haiku (or whatever you typed) has now repeated forty times, off the bottom of the screen:

Repeated 

lines

Notice that one blank line — ISPF doesn't like wasted resources. Paging up and down using F7 and F8, respectively, will automatically delete blank lines. You can also delete the blank line by putting a D to the left of it and pressing enter, if you prefer. Delete the line now:

Delete 

line

The line should now be gone:

Line 

deleted

You can use DD the same way you used CC to delete sections of text as well.

Now let's repeat the first line of text 5 times. To do this, use the R (repeat) command. Type R5 on the first line:

Repeat 

line

Now press Ctrl, and your first line repeats five times, with new line numbers to match:

Line 

repeated

On the command line, enter the command BOTTOM. This takes you to the bottom of the member. Tab down and use the I command to insert one more line after the last line of the member. On the new line, enter your first and last name, followed by the school you currently attend, and press Ctrl:

Name and 

school

If you'd prefer that we didn't share your name or haiku on our contest Web pages, insert one more line, type the text "PLEASE DO NOT SHARE" and press Ctrl.

You've now learned how to log into a mainframe, to navigate the ISPF panels and to create and edit your own data set members. Not too shabby. Let's save your work and move on.

F3 out of your data set member - it will save automatically (if you ever want to quit without saving, remember that CAN for cancel will do the trick).

Now let's run an executable program against the member you just created.  

More background to explore: Why do I have to keep pressing page up (F7) and page down (F8)?

Probably the most unfamiliar part of the ISPF editor is the fact that it doesn't just automatically scroll up and down like most PC editors do. There is a good reason for this! It's for efficiency's sake. In the non -mainframe world, when you are using an editor that scrolls in real-time, going through the network to a server, you are always sending data back and forth to the server (for just about every keystroke). With mainframes (and the emulator you're using), data is only sent to the mainframe when you hit the Ctrl key or a function (F#) key. This saves a lot of traffic. When you have upwards of 10,000 or more folks working at the same time, those few bytes on the network can mean a big savings, especially if it's over an expensive wide area network (WAN) link!

Return to the top

(9.) Run an executable against your new data set member

From the ISPF Primary Option screen, select option 6: Command.

Option 

6

This screen lets you enter TSO commands from ISPF. We need to execute a REXX program (REXX is a powerful, user-friendly programming language used on the mainframe) that is stored in the member ZOS.CONTEST.REXX(COUNT) against the member you created. You may remember looking at your own personal copy of the COUNT program earlier in the contest. Now let's put some REXX to work!

"EX" is the TSO command for "execute."

To execute the REXX program, enter on the command line:
EX 'ZOS.CONTEST.REXX(COUNT)' 'your_name'
(where your_name is either your first name or the first eight letters of your first name, whichever you named the member where your haiku lives):

Command 

line

The program will begin running, giving you the following message:

Executable running

Remember, the *** means that the system is waiting for your input. Press Ctrl to continue executing the program.

Executable messages

Press Ctrl again to clear the system output. The program has now executed. Let's go see what it did! Instead of using F3 to back out to the ISPF Primary Option Menu, let's use a shortcut. On the command line, enter "=3.4":

Shortcut

This is the same as choosing option 3 from the Primary Option Menu, then choosing 4 on the next screen. You should recognize the screen you are now looking at:

Data set 

list utility

Make sure your user ID is specified on the Dsname Level field, and press Ctrl.

On the next screen, put an E for edit beside the data set Z9#####.COMPETE.PARTONE:

Edit 

data set

Press Ctrl. There is a new member in your data set now, named after your user ID. Put an E beside it and press Ctrl to have a look.

Edit 

member

The REXX exec counted each occurrence of the lines of your haiku (plus your name and school), and generated output to this new member accordingly.

IMPORTANT: Type SAVE on the command line and press Ctrl. Doing this will time-stamp the member so IBM can tell when you completed this step. If you fail to do this, your entry will not be judged:

Save 

member

After you save the member, you can verify that it was saved correctly by the white message in the upper right-hand corner, Member Z9##### saved:

Verify 

save

F3 back one screen. The prompt informs you that the member was edited:

Member 

edited

You've now completed all the steps for "Part 1: Breaking the Ice," except for sending your work to IBM. Let's do that now!

Return to the top

(10.) Transmit your data set member to IBM

On the command line, type =6, which is a short cut for going back to the ISPF Primary Option Menu and selecting option 6: Command.

Command 

line shortcut

Now you need to submit all your hard work to IBM, which, for this contest, is using the user ID JUDGES. To transmit your REXX output member to this ID, type the following command on the command line (where your_id is, you guessed it, your Z9##### user ID):

XMIT N1.JUDGES DA(COMPETE.PARTONE(your_id))

Transmit 

data set

The system will generate a message to let you know that the member has been submitted for processing:

Message

Press Ctrl to continue. At the next set of messages, verify that "0 WAS THE HIGHEST SEVERITY CODE":

Severity 

code 0

You did it -- Congratulations!

In all the commotion, you might not have noticed how much you've just accomplished. Not only can you create and edit data sets and members, but you can run programs, generate output and transmit data to other users on the system.

You should consider putting the completion of this part of the contest on your resume — hands-on mainframe experience sets you apart from other job seekers. With the current generation of mainframe programmers reaching retirement age, many large employers are actively seeking mainframe skills. That's a major reason for the creation of this contest. And if you manage to complete Part 2 of the contest, you'll be eligible to put your resume in the Student Opportunity System, a recruiting tool accessible to all of IBM's clients and business partners!

For more background and current information on mainframes, and to see how widely mainframes are used in the IT industry, check out the following web sites:

If you were one of the first 500 contestants to correctly complete all the steps above and XMIT your data set to the user ID JUDGES, IBM will contact with you within 15 business days of your submission to confirm that you have won a Master the Mainframe T-shirt.

You should now have enough mainframe experience to tackle the more difficult challenges in "Part 2: Practical experience."

Thanks for participating, and good luck if you choose to attempt Part 2!

Return to the top