home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 14 Text / 14-Text.zip / os2br603.lis < prev    next >
File List  |  1994-07-25  |  37KB  |  1,405 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.                                      OS/2 APPLICATION DEVELOPER SERIES
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.                                                           June 7, 1993
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29. ------------------------------------------------------------------------------
  30. Contents
  31.  
  32.  
  33.    OS/2 APPLICATION DEVELOPER SERIES   I
  34.      How to Enroll   i
  35.      Cancellations   i
  36.      For More Information   i
  37.      For Up-to-the-Minute Schedules   i
  38.      Trademarks   i
  39.    OS/2 for Software Developers, Version 2.X   i
  40.    OS/2 2.X for 1.X Developers   i
  41.    Building OS/2 Device Drivers   i
  42.    Microsoft Windows for Software Developers   i
  43.    Presentation Manager 2.X for Software Developers   i
  44.    Workplace Shell Programming with SOM   i
  45.    Presentation Manager: Windowing and Graphics   i
  46.    Presentation Manager Device Drivers   1
  47.    OS/2 KERNEL Debugging   1
  48.    OS/2 Problem Diagnosis and Resolution Workshop   1
  49.  
  50.    SCHEDULE OF CLASSES   1
  51.  
  52.  
  53. ------------------------------------------------------------------------------
  54. OS/2 Application Developer Series
  55.  
  56.  
  57.    The growing popularity and power of the desktop computer are changing
  58.    the face of the computer industry.  As this trend continues, there
  59.    will be a growing demand for applications to run on these machines.
  60.  
  61.    The OS/2 Application Developer series is designed to help the
  62.    professional application developer meet this demand.  The courses are
  63.    lab intensive, combining theory with practical, hands-on experience so
  64.    that the student leaves the class with the core skills needed to get
  65.    the job done.
  66.  
  67.  
  68. How to Enroll
  69.  
  70.  
  71.    To enroll in any of the courses in this brochure, or for additional
  72.    class schedules, call 1-800-IBM-TEACh (1-800-426-8322).  Give the
  73.    enrollment receptionist the number of the course you are interested in
  74.    and your IBM customer number.  If you do not have an IBM customer
  75.    number, one will be assigned to you.
  76.  
  77.    IBM employees may enroll through the Management System for Education
  78.    (MSE) online enrollment system.
  79.  
  80.  
  81. Cancellations
  82.  
  83.  
  84.    Cancellations or changes may be made 10 or more working days prior to
  85.    the scheduled start date of the class without penalty.  Enrollments
  86.    cancelled fewer than 10 working days prior to the scheduled start date
  87.    of the class are subject to a cancellation charge equal to 25% of the
  88.    full tuition.  Cancellations received on or after the start date, will
  89.    be charged the full tuition.
  90.  
  91.  
  92. For More Information
  93.  
  94.  
  95.    For more information about courses in this brochure and about private
  96.    classes, please contact Bob Rohr at (914) 742-5653 or IIN: USIBMHJN at
  97.    IBMMAIL.  Within IBM, Bob can be contacted on tie line 770-5653 or
  98.    ROHR at DALVM1.
  99.  
  100.  
  101. For Up-to-the-Minute Schedules
  102.  
  103.  
  104.    New classes may be added weekly.  For the most current schedule,
  105.    please call 1-800-IBM-TEACh (1-800-426-8322).  Give the operator the
  106.    5-digit external course number.
  107.  
  108.  
  109. Trademarks
  110.  
  111.  
  112.    The following terms in this publication are trademarks of the IBM
  113.    Corporation in the United States or other countries, or both:
  114.  
  115.        C/2
  116.        IBM
  117.        IIN
  118.        OS/2
  119.        OS/2 32
  120.        Presentation Manager
  121.        Workplace Shell
  122.  
  123.    The following terms in this publication are trademarks of other
  124.    companies:
  125.  
  126.        Microsoft Windows (Microsoft Corporation)
  127.  
  128.  
  129.  
  130. -----------------------------------------
  131. OS/2 for Software Developers, Version 2.X
  132.  
  133.  
  134.    EXTERNAL COURSE NUMBER:  N1740
  135.    INTERNAL COURSE NUMBER:  WTDOS20C
  136.    COURSE LENGTH:  5 DAYS
  137.    TUITION:  $1575
  138.  
  139.    OVERVIEW:  Lectures, demonstrations, and hands-on laboratory exercises
  140.    present the primary functions of the OS/2 kernel.  Daily laboratory
  141.    exercises give you experience in implementing the OS/2 Application
  142.    Programming Interface in C programming language.
  143.  
  144.    AUDIENCE:  Systems programmers and engineers who have experience on
  145.    other platforms, and now wish to use OS/2 2.0 as a base for developing
  146.    hardware and software products.
  147.  
  148.    PREREQUISITE:  NONE
  149.  
  150.    COURSE OUTLINE:
  151.  
  152.    INTRODUCTION TO OS/2
  153.  
  154.    o   Design goals of OS/2
  155.    o   Memory organization
  156.    o   Privilege model
  157.    o   Application Programming Interface
  158.    o   Multitasking hierarchy
  159.  
  160.    OS/2 APPLICATION TYPES
  161.  
  162.    o   OS/2 mode windowed applications
  163.    o   OS/2 mode full-screen applications
  164.    o   DOS/Windows mode applications
  165.  
  166.    PROTECTED MODE
  167.  
  168.    o   General purpose and memory registers
  169.    o   Operating modes
  170.    o   Protection mechanisms
  171.    o   Real mode addressing
  172.    o   Protected mode addressing
  173.    o   Memory exceptions
  174.  
  175.    INTRODUCTION TO OS/2 PROGRAMMING
  176.  
  177.    o   Register-based API
  178.    o   Call-based API
  179.    o   C Program template
  180.    o   Function prototypes
  181.    o   Return codes
  182.  
  183.    ENVIRONMENT STRINGS AND COMMAND LINE ARGUMENTS
  184.  
  185.    o   Obtaining environment and command line pointers
  186.    o   Searching the environment
  187.    o   Environment strings
  188.    o   Command line
  189.    o   C Program entry state
  190.  
  191.    PROGRAM DEVELOPMENT
  192.  
  193.    o   Programming tools
  194.    o   header and include files
  195.    o   Development process
  196.    o   LINK386
  197.    o   NMAKE
  198.  
  199.    LABORATORY EXERCISE 1
  200.  
  201.    o   Introduction to the enhanced editor
  202.    o   Writing an OS/2 program
  203.    o   IBM presentation debugger
  204.    o   System exceptions/faults
  205.    o   Displaying command line arguments
  206.    o   Experimenting with DETACH and START
  207.    o   WorkFrame/2
  208.  
  209.    MEMORY MANAGEMENT
  210.  
  211.    o   OS/2 2.0 memory model
  212.    o   Virtual address space
  213.    o   Memory objects
  214.    o   Memory allocation API's
  215.    o   Memory suballocation API's
  216.  
  217.    INTRODUCTION TO MULTITASKING
  218.  
  219.    o   Serial multitasking
  220.    o   Parallel multitasking
  221.    o   Elements of multitasking (sessions, processes, threads)
  222.  
  223.    THREAD MANAGEMENT
  224.  
  225.    o   Thread hierarchy
  226.    o   Creating threads
  227.    o   Thread states
  228.    o   Thread priority
  229.    o   Configuration parameters
  230.    o   C Programming considerations
  231.  
  232.    LABORATORY EXERCISE 2
  233.  
  234.    o   Building a single-thread OS/2 application
  235.    o   Multitasking using two threads
  236.    o   Thread control
  237.    o   Thread management using C functions
  238.  
  239.    SYNCHRONIZING WITH SEMAPHORES
  240.  
  241.    o   Uses of semaphores
  242.    o   Classes and types of semaphores
  243.    o   Application of OS/2 semaphores
  244.    o   Event semaphore API's
  245.    o   Mutex semaphore API's
  246.    o   MuxWait semaphore API's
  247.  
  248.    OS/2 TIMER SERVICES
  249.  
  250.    o   Synchronous timer API's
  251.    o   Asynchronous timer API's
  252.  
  253.    PROCESS MANAGEMENT
  254.  
  255.    o   Process resources
  256.    o   Creating a process
  257.    o   Process isolation
  258.    o   Testing process status
  259.    o   Controlling process termination
  260.  
  261.    SHARED MEMORY OBJECTS
  262.  
  263.    o   Named shared objects
  264.    o   Unnamed shared objects
  265.    o   Shared memory allocation API's
  266.  
  267.    LABORATORY EXERCISE 3
  268.  
  269.    o   Synchronizing threads with event semaphores
  270.    o   Creating and managing processes
  271.    o   Synchronizing parent/child processes
  272.    o   Exit routines
  273.  
  274.    FILE INPUT/OUTPUT
  275.  
  276.    o   OS/2 file systems
  277.    o   Naming OS/2 files
  278.    o   Opening/creating files
  279.    o   Standard file attributes
  280.    o   Extended file attributes
  281.  
  282.    INTERPROCESS COMMUNICATION USING QUEUES
  283.  
  284.    o   Client/server interprocess communication
  285.    o   Que management API's
  286.  
  287.    DYNAMIC LINK LIBRARIES
  288.  
  289.    o   Static linking
  290.    o   Dynamic linking
  291.    o   Code sharing
  292.    o   Building a DLL
  293.    o   Methods of dynamic linking
  294.    o   DLL initialization
  295.  
  296.    LABORATORY EXERCISE 4
  297.  
  298.    o   Load-time dynamic linking
  299.    o   Updating a DLL
  300.    o   Run-time dynamic linking
  301.    o   DLL initialization
  302.    o   Pipes and queues
  303.  
  304.    EXCEPTION MANAGEMENT
  305.  
  306.    o   System exceptions
  307.    o   Types of exceptions
  308.    o   Exception handlers
  309.    o   Exception management data structures
  310.    o   Exception management API's
  311.  
  312.    SESSION MANAGEMENT
  313.  
  314.    o   Session management components
  315.    o   Session hierarchy
  316.    o   Session management API's
  317.  
  318.    INTERPROCESS COMMUNICATION USING PIPES
  319.  
  320.    o   Standard input/output
  321.    o   Anonymous pipes
  322.    o   Named pipes
  323.  
  324.    LABORATORY EXERCISE COMPLETION
  325.  
  326.    CLASS SCHEDULE:  Call 1-800-IBM-TEACh.
  327.  
  328.  
  329. ---------------------------
  330. OS/2 2.X for 1.X Developers
  331.  
  332.  
  333.    EXTERNAL COURSE NUMBER:  N1746
  334.    INTERNAL COURSE NUMBER:  WTDPS25C
  335.    COURSE LENGTH:  5 DAYS
  336.    TUITION:  $1575
  337.  
  338.    OVERVIEW:  If you're an experienced OS/2 developer, this advanced
  339.    course is for you!  You'll explore the new 32-bit OS/2 through
  340.    lectures, demonstrations, and intensive hands-on labs.  You'll learn
  341.    how to design, build, and test applications using the 32-bit version
  342.    of OS/2.  This course does not cover the philosophy of OS/2.  Rather,
  343.    it's designed to introduce the experienced OS/2 1.X programmer to
  344.    version 2.0.
  345.  
  346.    AUDIENCE:  Developer, systems designer, or tester who already
  347.    understands threads, critical sections, suspend/resume, parent/child
  348.    process relationships, named and unnamed shared memory, creation of
  349.    DLL modules, and synchronization using semaphores in the OS/2 1.3
  350.    environment.
  351.  
  352.    PREREQUISITE:  Course number N1740/WTDOS20C, OS/2 for Software
  353.    Developers, Version 2.X, or the equivalent experience, and C language
  354.    experience.
  355.  
  356.    COURSE OUTLINE:
  357.  
  358.    INTRODUCTION AND MEMORY MODELS
  359.  
  360.    o   Introduction to the workshop
  361.    o   Introduction to OS/2 2.0
  362.    o   Review of OS/2 concepts
  363.    o   Memory management in OS/2 2.0
  364.    o   API calls for memory management
  365.    o   Laboratory exercise
  366.        -   16-bit application
  367.        -   Conversion of 16-bit to 32-bit application
  368.        -   Allocation of private memory objects
  369.        -   Allocation of shared memory objects
  370.        -   Accessing shared memory objects
  371.        -   Suballocation
  372.  
  373.    THREADS AND SEMAPHORES
  374.  
  375.    o   Lab review
  376.    o   Thread management
  377.    o   Semaphores
  378.    o   Laboratory exercise
  379.        -   32-bit semaphores, threads, and timers
  380.        -   Thread priority
  381.        -   Thread synchronization
  382.        -   MuxWait semaphore setup
  383.        -   Edge/level operation of event semaphore
  384.  
  385.    IBM C SET/2 COMPILER
  386.  
  387.    o   IBM C Set/2 compiler
  388.    o   Laboratory exercise
  389.  
  390.        -   malloc, _alloca, and DosSubAlloc
  391.  
  392.        -   Conversion of MuxWait semaphore setup to multithread library
  393.  
  394.        -   Buffering of printf
  395.  
  396.  
  397.    QUEUES, SIGNALS, AND EXCEPTIONS
  398.  
  399.    o   Queues
  400.    o   Laboratory exercise
  401.            Data transport through queues
  402.    o   Signals and exceptions
  403.    o   Laboratory exercise
  404.            Signal handling
  405.            Signals for error recovery
  406.            Building a dynamically linked DLL
  407.            Building a statically linked DLL
  408.            Building a subsystem
  409.  
  410.    DYNAMIC LINK LIBRARIES
  411.  
  412.    o   Performance considerations
  413.    o   DLL's and automatic data segments
  414.    o   Exception handlers
  415.  
  416.    CLASS SCHEDULE:  Call 1-800-IBM-TEACh.
  417.  
  418.  
  419. ----------------------------
  420. Building OS/2 Device Drivers
  421.  
  422.  
  423.    EXTERNAL COURSE NUMBER:  E4794
  424.    INTERNAL COURSE NUMBER:  WTDOS30C
  425.    COURSE LENGTH:  5 DAYS
  426.    TUITION:  $1575
  427.  
  428.    OVERVIEW:  Learn how to compile, install, and test an OS/2 device
  429.    driver for the 1.3 and 2.0 platforms.
  430.  
  431.    AUDIENCE:  Experienced system programmers and developers.
  432.  
  433.    PREREQUISITE:  Assembler language or C language.  Course number
  434.    N1740/WTDOS20C or equivalent programming experience.  This course is
  435.    intended for experienced systems programmers who will write device
  436.    drivers for OS/2.
  437.  
  438.    COURSE OUTLINE:
  439.  
  440.    DEVICE DRIVER INTRODUCTION
  441.  
  442.    o   dd def PMD's, BDD's, PDD's, VDD's (char vs. block)
  443.    o   Real versus protected
  444.    o   16-bit segmented model - enhanced for OS/2 2.0
  445.  
  446.    OPERATION
  447.  
  448.    o   task time (init)
  449.    o   interrupt time (timer, IRQ's)
  450.  
  451.    STRUCTURE
  452.  
  453.    o   Device header
  454.        -   Device attribute
  455.    o   Strategy entry point
  456.    o   Initialization, command 0 (special case)
  457.        -   Ring 3
  458.        -   Application context
  459.        -   IOPL OK
  460.        -   Some API's available
  461.        -   Some dev hlprs
  462.    o   Sample code fragments
  463.  
  464.    OS/2 STRATEGY COMMANDS
  465.  
  466.    TOOLS
  467.  
  468.    o   MASM
  469.    o   ASDT - demo
  470.    o   ASDTSYM
  471.    o   IBM C/2
  472.    o   LINK 16-bit
  473.    o   Kernel debugger/ASDT
  474.  
  475.    OS/2 DEVICE HELPERS
  476.  
  477.    USING EXTERNAL INTERRUPTS
  478.  
  479.    DESIGNING BLOCK DEVICE DRIVERS
  480.  
  481.    DRIVERS THAT USE ABIOS
  482.  
  483.    o   Device ID
  484.    o   Logical ID
  485.  
  486.    OS/2 32-BIT ENHANCEMENTS
  487.  
  488.    o   Using 32-bit code
  489.    o   Using 32-bit device helpers
  490.  
  491.    DESIGN TIPS
  492.  
  493.    o   Performance
  494.    o   3 MS rule
  495.    o   Interrupt rules
  496.    o   Testing
  497.  
  498.    DEVICE HELPER REFERENCE
  499.  
  500.    DEMO DEVICE DRIVER
  501.  
  502.    DEMO DEVICE DRIVER USING C
  503.  
  504.    APPLICATION/SYSTEM DEBUG TOOL - ASDT REFERENCE
  505.  
  506.    LAB EXERCISES
  507.  
  508.    o   Character driver with initialization context only
  509.    o   Character driver with strategy commands, open, and write
  510.        -   Write under interrupt
  511.        -   Handling multiple overlapping requests
  512.    o   ABIOS with hardware interrupts
  513.  
  514.    CLASS SCHEDULE:  Call 1-800-IBM-TEACh.
  515.  
  516.  
  517. -----------------------------------------
  518. Microsoft Windows for Software Developers
  519.  
  520.  
  521.    EXTERNAL COURSE NUMBER:  N1741
  522.    INTERNAL COURSE NUMBER:  WTDMP80C
  523.    COURSE LENGTH:  5 DAYS
  524.    TUITION:  $1575
  525.  
  526.    OVERVIEW:  The Windows programming environment is a popular
  527.    application base for the 90's.  This intensive, hands-on lab course
  528.    gives you an in-depth introduction to creating applications in this
  529.    domain.
  530.  
  531.    AUDIENCE:  Developers of applications programs.
  532.  
  533.    PREREQUISITE:  Experience with C-language programming.  Familiarity
  534.    with Windows as a user; however, prior Windows programming experience
  535.    is not required.
  536.  
  537.    COURSE OUTLINE:
  538.  
  539.    INTRODUCTION TO WINDOWS
  540.  
  541.    o   Windows overview
  542.    o   Writing Windows applications
  543.    o   Messages
  544.    o   Drawing with GD1
  545.    o   The Windows development process
  546.  
  547.    PROGRAMMING USER INTERFACES
  548.  
  549.    o   Introduction to painting and clipping
  550.    o   Handling user input
  551.    o   Scroll bar programming
  552.    o   Menus and accelerators
  553.    o   Introduction to dialog boxes
  554.    o   Dialog box controls
  555.    o   Advanced dialog topics
  556.  
  557.    MEMORY MANAGEMENT
  558.  
  559.    WRITING DYNAMIC LINK LIBRARIES
  560.  
  561.    FILE INPUT AND OUTPUT
  562.  
  563.    SUBCLASSING
  564.  
  565.    HANDLING LENGTHY PROCESSING
  566.  
  567.    PRINTING
  568.  
  569.    THE CLIPBOARD
  570.  
  571.    THE MULTIPLE DOCUMENT INTERFACE
  572.  
  573.    WINDOWS FUTURE
  574.  
  575.    CLASS SCHEDULE:  This course is scheduled on request.  Please call Bob
  576.    Rohr, 914/742-5653.
  577.  
  578.  
  579. ------------------------------------------------
  580. Presentation Manager 2.X for Software Developers
  581.  
  582.  
  583.    EXTERNAL COURSE NUMBER:  N1688
  584.    INTERNAL COURSE NUMBER:  WTDPM00C
  585.    COURSE LENGTH:  5 DAYS
  586.    TUITION:  $1575
  587.  
  588.    OVERVIEW:  Learn how to build an application using the presentation
  589.    manager facilities to handle screen interactions.   You'll also
  590.    discuss creating windows, their attributes, and message processes.
  591.    The course is 50% lecture and 50% hands-on laboratory exercises each
  592.    day.  The exercises will be done in C.
  593.  
  594.    AUDIENCE:  Systems programmers who will use presentation manager for
  595.    developing software products.
  596.  
  597.    PREREQUISITE:  C programming experience is required.  Course number
  598.    N1740/WTDOS20C or OS/2 experience is recommended.
  599.  
  600.    COURSE OUTLINE:
  601.  
  602.    INTRODUCTION TO PRESENTATION MANAGER
  603.  
  604.    o   What is presentation manager?
  605.    o   Goals of presentation manager
  606.  
  607.    WINDOW OVERVIEW
  608.  
  609.    o   What is a window?
  610.    o   Parent and child windows
  611.    o   The standard window
  612.  
  613.    PRESENTATION MANAGER OVERVIEW
  614.  
  615.    o   Application types
  616.    o   Introduction to messages
  617.  
  618.    INTRODUCTION TO PRESENTATION MANAGER PROGRAMMING
  619.  
  620.    o   Presentation manager program boilerplate
  621.  
  622.    MESSAGES
  623.  
  624.    o   Message data structure
  625.    o   Receiving messages
  626.    o   Transmitting messages
  627.  
  628.    THE DEVELOPMENT PROCESS
  629.  
  630.    o   Include files
  631.    o   Building 16- and 32-bit programs
  632.  
  633.    PAINTING AND CLIPPING
  634.  
  635.    o   Presentation manager device architecture
  636.    o   Points, rectangles, and regions
  637.    o   The WM_PAINT message
  638.  
  639.    HANDLING USER INPUT
  640.  
  641.    o   Keyboard messages
  642.    o   Mouse messages
  643.  
  644.    SCROLL BARS
  645.  
  646.    o   Scroll bars in the standard window
  647.    o   Programming vertical scroll bars in a text-based program
  648.  
  649.    MENUS
  650.  
  651.    o   Resource file menus
  652.    o   Menu notification and control messages
  653.    o   Accelerators
  654.  
  655.    INTRODUCTION TO DIALOG BOXES
  656.  
  657.    o   Message boxes
  658.    o   Modal dialogs
  659.  
  660.    DIALOG BOX CONTROLS
  661.  
  662.    o   Radio buttons
  663.    o   Entry fields
  664.    o   List boxes
  665.    o   Combo boxes
  666.    o   Spin buttons
  667.  
  668.    ADVANCED DIALOG TOPICS
  669.  
  670.    o   Keystrokes in dialogs
  671.    o   Modeless dialogs
  672.  
  673.    FONTS
  674.  
  675.    o   Bitmap versus vector fonts
  676.    o   Selecting a bitmap font
  677.  
  678.    PRESENTATION MANAGER MULTITASKING
  679.  
  680.    o   Using background threads
  681.    o   Types of background threads
  682.    o   Communicating between threads
  683.  
  684.    SUBCLASSING AND HOOKS
  685.  
  686.    o   Subclassing windows
  687.    o   Hooking a queue
  688.  
  689.    HELP SYSTEMS
  690.  
  691.    o   Writing help text
  692.    o   Writing help table resources
  693.    o   Modifying application source
  694.  
  695.    2.X STANDARD DIALOGS
  696.  
  697.    o   Standard font dialog
  698.    o   Standard file dialog
  699.  
  700.    WINDOW WORDS
  701.  
  702.    o   System maintained area
  703.    o   Application maintained area
  704.  
  705.    INTRODUCTION TO GRAPHICAL PROGRAM INTERFACE
  706.  
  707.    o   Graphical program interface capabilities
  708.    o   Graphical program interface programming techniques
  709.  
  710.    PRESENTATION SPACES
  711.  
  712.    o   Cached micro presentation spaces
  713.    o   Micro presentation spaces
  714.    o   Normal presentation spaces
  715.  
  716.    DEBUGGING PRESENTATION MANAGER PROGRAMS
  717.  
  718.    o   Codeview for OS/2 1.X
  719.    o   IBM presentation manager debugger for OS/2 2.X
  720.  
  721.    LAB CODE LISTINGS
  722.  
  723.    EDITOR TUTORIAL
  724.  
  725.    CLASS SCHEDULE:  Call 1-800-IBM-TEACh.
  726.  
  727.  
  728. ------------------------------------
  729. Workplace Shell Programming with SOM
  730.  
  731.  
  732.    EXTERNAL COURSE NUMBER:  N1745
  733.    INTERNAL COURSE NUMBER:  WTDPM05C
  734.    COURSE LENGTH:  5 DAYS
  735.    TUITION:  $1575
  736.  
  737.    OVERVIEW:  Get first-hand experience of the System Object Model (SOM)
  738.    and workplace programming with lectures and intensive hands-on lab
  739.    exercises.
  740.  
  741.    AUDIENCE:  Application and system programmers that need to understand
  742.    the workings of the OS/2 Version 2 Workplace Shell (WPS) and System
  743.    Object Model (SOM).
  744.  
  745.    PREREQUISITE:  Prior attendance in course number N1688/WTDPM00C,
  746.    Presentation Manager 2.X for Software Developers or equivalent
  747.    experience, and C programming experience is required.  Basic knowledge
  748.    of object-oriented concepts is recommended.
  749.  
  750.    COURSE OUTLINE:
  751.  
  752.    INTRODUCTION TO THE WORKSHOP
  753.  
  754.    INTRODUCTION TO OBJECT-ORIENTED PROGRAMMING
  755.  
  756.    o   Encapsulation
  757.    o   Inheritance
  758.    o   Polymorphism
  759.  
  760.    INTRODUCTION TO SOM
  761.  
  762.    o   Defining a class
  763.    o   C-language bindings
  764.    o   SOM precompiler
  765.    o   Metaclasses
  766.  
  767.    WRITING A SIMPLE SOM CLASS
  768.  
  769.    o   Writing the .CSC file
  770.    o   Accessing methods and data
  771.    o   Writing a client program
  772.  
  773.    SOM INHERITANCE
  774.  
  775.    o   Overriding methods
  776.    o   Public and private methods
  777.    o   Public and private data
  778.  
  779.    METACLASSES
  780.  
  781.    o   Explicit metaclasses
  782.    o   Implicit metaclasses
  783.  
  784.    A COMPLETE .CSC FILE
  785.  
  786.    o   Required sections
  787.    o   Optional sections
  788.  
  789.    THE SOM DEVELOPMENT PROCESS
  790.  
  791.    o   Environment variables
  792.    o   Running the SOM compiler
  793.  
  794.    DEBUGGING SOM APPLICATIONS
  795.  
  796.    o   Using IPMD
  797.    o   Using SOM tracing
  798.  
  799.    EXTENDED FILE ATTRIBUTES
  800.  
  801.    o   Launching an EXE file
  802.  
  803.    INTRODUCTION TO WORKPLACE SHELL
  804.  
  805.    o   Workplace shell objects
  806.    o   Writing a workplace shell application
  807.    o   Object ID's and setup strings
  808.  
  809.    A WORKPLACE SHELL COMPATIBLE APPLICATION
  810.  
  811.    o   Extended attributes and templates
  812.    o   Installing the application
  813.  
  814.    A WORKPLACE SHELL AWARE APPLICATION
  815.  
  816.    o   Writing a WPDataFile subclass
  817.    o   Installing a workplace shell aware application
  818.  
  819.    MORE ON DATE FILE SUBCLASSING
  820.  
  821.    o   Printing
  822.    o   The development cycle
  823.  
  824.    WORKPLACE SHELL IMPLEMENTATION
  825.  
  826.    o   The desktop
  827.    o   OS2.INI and extended attributes
  828.  
  829.    MENU WINDOWS
  830.  
  831.    o   Popup menus
  832.    o   Conditional cascades
  833.  
  834.    MENUS IN A WORKPLACE SHELL OBJECT
  835.  
  836.    o   Standard object popups
  837.    o   Filtering popups
  838.    o   Adding/deleting popups
  839.    o   Processing selections
  840.  
  841.    CONTAINER WINDOW CLASS
  842.  
  843.    o   Views
  844.    o   Notification messages
  845.    o   Record hierarchy
  846.  
  847.    FOLDER WORKPLACE CLASS
  848.  
  849.    o   Instance methods
  850.    o   Writing a folder subclass
  851.  
  852.    NOTEBOOK WINDOWS
  853.  
  854.    o   Notebook window class
  855.    o   Inserting pages
  856.  
  857.    NOTEBOOKS IN WORKPLACE SHELL
  858.  
  859.    o   Setting pages
  860.    o   Adding/deleting pages
  861.    o   Saving instance data
  862.  
  863.    DRAG AND DROP
  864.  
  865.    o   Writing a source EXE or object
  866.    o   Writing a destination EXE or Object
  867.  
  868.    CREATING AN OBJECT'S WINDOW
  869.  
  870.    o   custom open views
  871.    o   The in-use list
  872.  
  873.    CREATING A NEW PROCESS
  874.  
  875.    o   why create a process?
  876.    o   Interprocess communication
  877.  
  878.    CLASS SCHEDULE:  Call 1-800-IBM-TEACh.
  879.  
  880.  
  881. --------------------------------------------
  882. Presentation Manager: Windowing and Graphics
  883.  
  884.  
  885.    EXTERNAL COURSE NUMBER:  N1744
  886.    INTERNAL COURSE NUMBER:  WTDPM10C
  887.    COURSE LENGTH:  5 DAYS
  888.    TUITION:  $1575
  889.  
  890.    OVERVIEW:  Tackle advanced windowing topics like dialog controls and
  891.    graphical program interface (GPI) graphics in this intensive
  892.    machine-lab course.  You'll examine numerous example programs and
  893.    write sophisticated applications to reinforce lecture topics.
  894.  
  895.    AUDIENCE:  Systems programmers using presentation manager for
  896.    developing software products.
  897.  
  898.    PREREQUISITE:  Before taking this class, you should first attend
  899.    course number N1688/WTDPM00C, Presentation Manager for 2.X Software
  900.  
  901.    Developers or have at least year experience writing presentation
  902.    manager programs.
  903.  
  904.    COURSE OUTLINE:
  905.  
  906.    INTRODUCTION TO GRAPHICAL PROGRAM INTERFACE
  907.  
  908.    o   Modal drawing interface
  909.    o   Categories of graphical program interface calls
  910.  
  911.    DEVICE CONTEXTS AND PRESENTATION SPACES
  912.  
  913.    o   Types of device contexts
  914.    o   Types of presentation spaces
  915.    o   Sample usage
  916.  
  917.    INTRODUCTION TO DEVICE INDEPENDENCE
  918.  
  919.    o   Presentation page units
  920.    o   Introduction to coordinate systems
  921.  
  922.    LINES AND BOXES
  923.  
  924.    o   Line and box primitives
  925.    o   Line and box attributes
  926.  
  927.    COLOR AND MIX
  928.  
  929.    o   Logical and physical colors
  930.    o   Color tables
  931.    o   Mix modes
  932.  
  933.    MOUSE MESSAGES
  934.  
  935.    o   Mouse messages
  936.    o   Capturing the mouse
  937.  
  938.    WINDOW WORDS
  939.  
  940.    o   Window-specific data
  941.    o   System usage of window data
  942.  
  943.    SEGMENTS AND RETAINED GRAPHICS
  944.  
  945.    o   Drawing modes
  946.    o   Segment attributes
  947.    o   Setting labels in segments
  948.    o   Editing segments
  949.  
  950.    INTRODUCTION TO TRANSFORMS
  951.  
  952.    o   World coordinates
  953.    o   Matrix arithmetic
  954.    o   Scaling, translating, rotating, and shearing
  955.  
  956.    APPLYING TRANSFORMS
  957.  
  958.    o   Transform API
  959.  
  960.    VECTOR FONTS
  961.  
  962.    o   Bitmap versus vector fonts
  963.    o   Creating a vector font
  964.    o   Transforming vector fonts
  965.    o   Vector font special effects
  966.  
  967.    CORRELATION
  968.  
  969.    o   Setting correlation tags
  970.    o   Correlation API
  971.  
  972.    AREAS
  973.  
  974.    o   Drawing and filling areas
  975.    o   Fill modes
  976.  
  977.    PATHS
  978.  
  979.    o   Geometric lines
  980.    o   Clip paths
  981.  
  982.    ARCS
  983.  
  984.    o   Arc attributes
  985.    o   Full arcs
  986.    o   Three-point and partial arcs
  987.    o   Fillets and splines
  988.  
  989.    BITMAPS
  990.  
  991.    o   Bitmap formats
  992.    o   Creating a bitmap
  993.    o   Bitmap APE
  994.    o   Shadow bitmaps
  995.  
  996.    METAFILES
  997.  
  998.    o   Creating a metafile DC
  999.    o   Playing a metafile
  1000.  
  1001.    ADVANCED MENUS
  1002.  
  1003.    o   Menu types and structure
  1004.    o   Methods to create menus
  1005.    o   System menus
  1006.    o   Owner-drawn menus
  1007.  
  1008.    FRAME WINDOWS
  1009.  
  1010.    o   Custom frame controls
  1011.  
  1012.    ADVANCED DIALOG CONTROLS
  1013.  
  1014.    o   Presentation parameters
  1015.    o   User-paint and owner-drawn buttons and list boxes
  1016.  
  1017.    CUSTOM CONTROL WINDOWS
  1018.  
  1019.    o   Managing memory
  1020.    o   Responding to dialog keystrokes
  1021.  
  1022.    PROFILES
  1023.  
  1024.    o   System and application profiles
  1025.    o   Profile API
  1026.  
  1027.    PRINTING
  1028.  
  1029.    o   Printer DC types
  1030.    o   Creating a printer DC
  1031.    o   Reading the system profile for printer information
  1032.  
  1033.    CLIPBOARD
  1034.  
  1035.    o   Clipboard protocol
  1036.    o   Clipboard data formats
  1037.    o   Clipboard API
  1038.  
  1039.    DYNAMIC DATA EXCHANGE
  1040.  
  1041.    o   DDE protocol
  1042.    o   DDE API
  1043.  
  1044.    LAB EXERCISES:
  1045.  
  1046.    LAB 1, INTRODUCTION TO GRAPHICAL PROGRAM INTERFACE
  1047.  
  1048.    o   Introduction to draw lab project
  1049.    o   Device independence and window-specific data
  1050.    o   Drawing rubber band lines
  1051.    o   Drawing rubber band boxes
  1052.    o   Fill patterns (optional)
  1053.    o   Changing the mouse pointer (optional)
  1054.    o   Line styles (optional)
  1055.    o   Ignoring the first button one down (optional)
  1056.  
  1057.    LAB 2, RETAINED GRAPHICS AND VECTOR FONTS
  1058.  
  1059.    o   Retained graphics
  1060.    o   The zooming transform
  1061.    o   Graphical text (vector fonts)
  1062.    o   Correlation (optional)
  1063.  
  1064.    LAB 3, ARCS, METAFILES, AND CUSTOM MENUS
  1065.  
  1066.    o   Arcs
  1067.    o   Metafiles
  1068.    o   Erasing the current picture (optional)
  1069.    o   Areas (optional)
  1070.    o   Geometric lines (optional)
  1071.    o   Bitmaps as primitives (optional)
  1072.  
  1073.    CUSTOM FRAME CONTROLS, CUSTOM DIALOG CONTROLS, AND PROFILES
  1074.  
  1075.    o   Owner-drawn menus
  1076.    o   Custom frame controls
  1077.    o   Customizing dialog controls
  1078.    o   Saving settings in a profile
  1079.    o   Printing (optional)
  1080.    o   Enhancing the owner-drawn check box
  1081.  
  1082.    CLASS SCHEDULE:  Call 1-800-IBM-TEACh.
  1083.  
  1084.  
  1085. -----------------------------------
  1086. Presentation Manager Device Drivers
  1087.  
  1088.  
  1089.    EXTERNAL COURSE NUMBER:  N1742
  1090.    INTERNAL COURSE NUMBER:  WTDPM20C
  1091.    COURSE LENGTH:  5 DAYS
  1092.    TUITION:  $1575
  1093.  
  1094.    OVERVIEW:  Master the skill of supporting graphical devices (printers
  1095.    and displays) under OS/2 presentation manager.  Lectures and
  1096.    laboratory exercise illustrate the main features of a presentation
  1097.    driver.
  1098.  
  1099.    AUDIENCE:  Software developers, designers, and testers working
  1100.    directly with presentation drivers.  This is an advanced, hands-on
  1101.    course.
  1102.  
  1103.    PREREQUISITE:  Students are required to have at least 6 months
  1104.    experience programming in C and have written non-trivial presentation
  1105.    manager application programs or have attended the following courses:
  1106.  
  1107.        N1740/WTDOS20C, OS/2 for Software Developers, Version 2.X
  1108.        N1688/WTDPM00C, Presentation Manager 2.X for Software Developers
  1109.  
  1110.    COURSE OUTLINE:
  1111.  
  1112.    THE OS/2 DEVICE MODEL
  1113.  
  1114.    o   Device independence
  1115.    o   Layers of OS/2
  1116.    o   Presentation driver components
  1117.    o   The print manager
  1118.    o   The spooler
  1119.  
  1120.    INTRODUCTION TO PRINTING
  1121.  
  1122.    o   Supporting device independent graphics
  1123.    o   Presentation spaces
  1124.    o   Device contexts
  1125.    o   The OS2.INI file
  1126.    o   Printing a document
  1127.  
  1128.    THE BUILD PROCESS
  1129.  
  1130.    o   Tools and utilities
  1131.    o   Module definition file
  1132.    o   Debugging
  1133.  
  1134.    PRESENTATION DRIVER OVERVIEW
  1135.  
  1136.    o   Entry points
  1137.    o   Function classes
  1138.    o   Call structure
  1139.    o   General considerations
  1140.  
  1141.    DRIVER INITIALIZATION
  1142.  
  1143.    o   Enable Subfunctions
  1144.    o   Flow of initialization
  1145.    o   Flow of termination
  1146.    o   Exit list processing
  1147.  
  1148.    SYSTEM SERVICES AND QUERIES
  1149.  
  1150.    o   System facilities at ring 2
  1151.    o   Query functions
  1152.  
  1153.    INTRODUCTION TO DRAWING
  1154.  
  1155.    o   Required functions
  1156.    o   Attributes
  1157.    o   Text attributes
  1158.    o   Text implementation
  1159.  
  1160.    DRAWING LINES
  1161.  
  1162.    o   Line types
  1163.    o   Line attributes
  1164.    o   Line implementation
  1165.  
  1166.    SIMULATED AND INTERNAL FUNCTIONS
  1167.  
  1168.    o   Transforms
  1169.    o   Clipping
  1170.    o   Bounds
  1171.    o   Engine internal functions
  1172.  
  1173.    FONTS
  1174.  
  1175.    o   Font definitions
  1176.    o   Engine and device fonts
  1177.    o   Font queries
  1178.    o   Realizing fonts
  1179.  
  1180.    COLOR
  1181.  
  1182.    o   Color tables
  1183.    o   Color mapping
  1184.    o   Dithering
  1185.    o   Color realization
  1186.    o   Mix modes
  1187.  
  1188.    BITMAPS
  1189.  
  1190.    o   Bitmap definitions
  1191.    o   Working with bitmaps
  1192.    o   Bitblts
  1193.  
  1194.    DISPLAY DRIVERS
  1195.  
  1196.    o   Resources
  1197.    o   Correlation
  1198.    o   Drawing to the display
  1199.    o   AVIO
  1200.  
  1201.    PRINTER DRIVERS
  1202.  
  1203.    o   Spooler
  1204.    o   Queued printing
  1205.    o   Data formats
  1206.    o   Banding
  1207.    o   Printer set up
  1208.    o   Brute force printing
  1209.  
  1210.    SOURCE CODE LISTINGS
  1211.  
  1212.    LAB EXERCISES
  1213.  
  1214.    CLASS SCHEDULE:  Call 1-800-IBM-TEACh.
  1215.  
  1216.  
  1217. ---------------------
  1218. OS/2 KERNEL Debugging
  1219.  
  1220.  
  1221.    INTERNAL COURSE NUMBER:  E4781
  1222.    EXTERNAL COURSE NUMBER:  WTDPS10C
  1223.    COURSE LENGTH:  3 DAYS
  1224.    TUITION:  $945
  1225.  
  1226.    OVERVIEW:  If you're an experienced OS/2 developer, this advanced
  1227.    course is for you!  You'll learn how to use the kernel debugger to
  1228.    view OS/2 2.0 data structures and applications.  Lectures,
  1229.    demonstrations, and lab exercises let you explore the inner workings
  1230.    of the OS/2 2.0 Kernel Debugger.  This is an advanced course designed
  1231.    for experienced OS/2 developers.  It is not a general overview of OS/2
  1232.    Version 2.0.
  1233.  
  1234.    AUDIENCE:  Developers, system designers, or testers that understand
  1235.    the concepts of OS/2 2.0 and who have a need to know how to use it.
  1236.  
  1237.    PREREQUISITE:  The ability to read assembly language and C language
  1238.    source listings, and a basic understanding of OS/2 concepts.
  1239.  
  1240.    COURSE OUTLINE:
  1241.  
  1242.    OVERVIEW OF THE KERNEL DEBUGGER
  1243.  
  1244.    PAGE DEMAND MEMORY MANAGEMENT - CPU PAGE TRANSLATION
  1245.  
  1246.    SOME API FOR MEMORY MANAGEMENT (FOR ANALYSIS W/ DEBUGGER)
  1247.  
  1248.    THE LDT AND GDT:  THUNKING AT THE 16-BIT LDT/GDT
  1249.  
  1250.    INTRODUCTION TO SEMAPHORE API (FOR ANALYSIS W/ DEBUGGER)
  1251.  
  1252.    KERNEL DEBUGGER LAB EXERCISES
  1253.  
  1254.    CLASS SCHEDULE:  This course is scheduled on request.  Please call Bob
  1255.    Rohr, 914/742-5653.
  1256.  
  1257.  
  1258. ----------------------------------------------
  1259. OS/2 Problem Diagnosis and Resolution Workshop
  1260.  
  1261.  
  1262.    EXTERNAL COURSE NUMBER:  N1743
  1263.    INTERNAL COURSE NUMBER:  WTDPS15C
  1264.    COURSE LENGTH:  5 DAYS
  1265.    TUITION:  $1575
  1266.  
  1267.    OVERVIEW:  This 5-day workshop combines lectures, problem analysis,
  1268.    and hands-on lab exercises to duplicate real-world field conditions
  1269.    and situations.  You'll learn how to identify and quickly resolve
  1270.    problems.
  1271.  
  1272.    As a bonus, you'll receive a FREE OS/2 Survival Kit--a complete set of
  1273.    OS/2 diagnostic tools, chosen for their ease-of-use and efficiency.
  1274.  
  1275.    AUDIENCE:  Systems programmers, software developers, and systems
  1276.    engineers.
  1277.  
  1278.    PREREQUISITE:  Experience installing and using OS/2 program in
  1279.    assembler or C.  Programming experience with OS/2 or VM is helpful.
  1280.  
  1281.    COURSE OUTLINE:
  1282.  
  1283.    DEBUG METHODOLOGY
  1284.  
  1285.    o   Problem classifications
  1286.            Developer/user
  1287.            Static/dynamic
  1288.            Onsite/remote debug
  1289.  
  1290.    OS/2 SPECIFIC ISSUES
  1291.  
  1292.    o   Installation caveats
  1293.    o   Access control boundaries
  1294.    o   Address translation mechanisms
  1295.    o   Address maps, selector usage
  1296.    o   Module isolation - applications/OS/2/libraries/device drivers
  1297.  
  1298.    PROBLEM SCENARIOS
  1299.  
  1300.    o   Trap OD, OC
  1301.    o   Deadly embraces
  1302.    o   Data corruption
  1303.    o   Unbalanced priorities
  1304.    o   PM collapse/lockup
  1305.  
  1306.    DEBUG TOOLS
  1307.  
  1308.    o   IPMD
  1309.    o   Dynamic error logging
  1310.            Trace - API, protocol, configuration system parameters, OS/2
  1311.            internal trace ID's
  1312.            Error log - utilities
  1313.    o   ASDT, ASDT32
  1314.            Installation
  1315.            REXX symbol conversion
  1316.    o   Kernel debugger (KDB)
  1317.            Installation
  1318.            Utilities
  1319.            Swapper management
  1320.            Mapsym
  1321.            Profit/extra
  1322.    o   Dump formatter
  1323.            Onsite procedures
  1324.            Remote debug procedures
  1325.  
  1326.    LAB EXERCISES
  1327.  
  1328.    CLASS SCHEDULE:  Call 1-800-IBM-TEACh.
  1329.  
  1330.  
  1331. ------------------------------------------------------------------------------
  1332. Schedule of Classes
  1333.  
  1334.  
  1335.    Additional classes are planned.  For up-to-the-minute schedules, call
  1336.    1-800-IBM-TEACh (1-800-426-8322).
  1337.  
  1338. COURSE TITLE                          CODE       LOCATION          DATES
  1339. Building OS/2 Device Drivers          E4794      Charlotte         06/21-06/25
  1340. Building OS/2 Device Drivers          E4794      Thornwood         07/12-07/16
  1341. Building OS/2 Device Drivers          E4794      Raleigh           07/19-07/23
  1342. Building OS/2 Device Drivers          E4794      Santa Teresa(*)   09/20-09/24
  1343. Building OS/2 Device Drivers          E4794      Boca Raton        10/18-10/22
  1344.  
  1345. Microsoft Windows for SW Developers   E4848      Raleigh           06/14-06/18
  1346. Microsoft Windows for SW Developers   E4848      Boca Raton        08/09-08/13
  1347. Microsoft Windows for SW Developers   E4848      Boca Raton        08/16-08/20
  1348.  
  1349. OS/2 for SW Developers, V 2.X         E4783      Thornwood         06/28-07/02
  1350. OS/2 for SW Developers, V 2.X         E4783      Santa Teresa(*)   07/19-07/23
  1351. OS/2 for SW Developers, V 2.X         E4783      Austin            07/19-07/23
  1352. OS/2 for SW Developers, V 2.X         E4783      Boca Raton        07/26-07/30
  1353. OS/2 for SW Developers, V 2.X         E4783      Charlotte         08/23-08/27
  1354. OS/2 for SW Developers, V 2.X         E4783      San Jose          08/23-08/27
  1355. OS/2 for SW Developers, V 2.X         E4783      Raleigh           09/13-09/17
  1356. OS/2 for SW Developers, V 2.X         E4783      Thornwood         10/11-10/15
  1357. OS/2 for SW Developers, V 2.X         E4783      Santa Cruz        10/11-10/15
  1358. OS/2 for SW Developers, V 2.X         E4783      Raleigh           12/13-12/17
  1359.  
  1360. OS/2 KERNEL Debugging                 E4781      Raleigh           08/23-08/27
  1361.  
  1362. OS/2 Prob Diagnosis & Resolution      E4828      Boca Raton        06/07-06/11
  1363. OS/2 Prob Diagnosis & Resolution      E4828      Rockville         06/21-06/25
  1364. OS/2 Prob Diagnosis & Resolution      E4828      Dallas            07/12-07/16
  1365.  
  1366. OS/2 2.X for 1.X Developers           E4784      Santa Teresa(*)   06/14-06/18
  1367. OS/2 2.X for 1.X Developers           E4784      Boca Raton        06/28-07/02
  1368. OS/2 2.X for 1.X Developers           E4784      Thornwood         06/28-07/02
  1369. OS/2 2.X for 1.X Developers           E4784      Raleigh           07/12-07/16
  1370. OS/2 2.X for 1.X Developers           E4784      Boca Raton        09/13-09/17
  1371. OS/2 2.X for 1.X Developers           E4784      Thornwood         09/20-09/24
  1372. OS/2 2.X for 1.X Developers           E4784      Raleigh           10/25-10/29
  1373. OS/2 2.X for 1.X Developers           E4784      Thornwood         11/29-12/03
  1374. OS/2 2.X for 1.X Developers           E4784      Raleigh           12/06-12/10
  1375.  
  1376. Pres Mgr Device Drivers               E4809      Charlotte         07/26-07/30
  1377. Pres Mgr Device Drivers               E4809      Santa Teresa(*)   08/09-08/13
  1378.  
  1379. Pres Mgr 2.X for SW Developers        E4785      Thornwood         06/07-06/11
  1380. Pres Mgr 2.X for SW Developers        E4785      Raleigh           08/02-08/06
  1381. Pres Mgr 2.X for SW Developers        E4785      Boca Raton        08/23-08/27
  1382. Pres Mgr 2.X for SW Developers        E4785      Austin            09/13-09/17
  1383. Pres Mgr 2.X for SW Developers        E4785      Charlotte         09/20-09/24
  1384. Pres Mgr 2.X for SW Developers        E4785      San Jose          09/20-09/24
  1385. Pres Mgr 2.X for SW Developers        E4785      Raleigh           10/04-10/08
  1386. Pres Mgr 2.X for SW Developers        E4785      Austin            10/18-10/22
  1387. Pres Mgr 2.X for SW Developers        E4785      Austin            11/01-11/05
  1388. Pres Mgr 2.X for SW Developers        E4785      Santa Cruz        11/08-11/12
  1389. Pres Mgr 2.X for SW Developers        E4785      Thornwood         12/13-12/17
  1390. Pres Mgr: Windowing/Graphing          E4819      Endicott          07/19-07/23
  1391. Pres Mgr: Windowing/Graphing          E4819      Rockville         07/26-07/30
  1392. Pres Mgr: Windowing/Graphing          E4819      Charlotte         09/13-09/17
  1393. Pres Mgr: Windowing/Graphing          E4819      Austin            09/27-10/01
  1394. Pres Mgr: Windowing/Graphing          E4819      Boca Raton        10/04-10/08
  1395. Pres Mgr: Windowing/Graphing          E4819      Raleigh           11/15-11/19
  1396. Pres Mgr: Windowing/Graphing          E4819      Charlotte         12/06-12/10
  1397.  
  1398. Workplace Shell Prog with SOM         E4782      Endicott          06/07-06/11
  1399. Workplace Shell Prog with SOM         E4782      Santa Teresa(*)   06/21-06/25
  1400. Workplace Shell Prog with SOM         E4782      Thornwood         08/09-08/13
  1401. Workplace Shell Prog with SOM         E4782      Boca Raton        08/16-08/20
  1402. Workplace Shell Prog with SOM         E4782      Santa Teresa(*)   08/23-08/27
  1403. Workplace Shell Prog with SOM         E4782      Boca Raton        11/08-11/12
  1404. Workplace Shell Prog with SOM         E4782      Charlotte         11/15-11/19
  1405.