# Tcl/Tk Commercial Uses - Part 3: Training

    Followup-To: poster
    Archive-name: tcl-faq/commercial-uses/part3
    Version: 3.1
    Posting-Frequency: Around the 1st of each month
    Oraganization: Computerized Processes Unlimited, Inc.

    Tcl/Tk Commercial Uses - Part 3: Training
    ******************************************

    This file contains brief descriptions of commerical training options for
    Tcl/Tk. If you have questions about specific postings, contact the person who
    made the submission directly. The purpose of this listing is to show that
    Tcl/Tk is being used in commercial products and to discuss that use. Part 1
    contains a complete index.

    Index - Part 3 Only
    ====================

    T1. Training by AT&T: "Object Oriented Programming with [incr Tcl]"

    T2. Training by Computerized Processes Unlimited: "Introduction to
    Programming in Tcl/Tk"

    T3. Training by Computerized Processes Unlimited: "Building Graphical
    User Interfaces in Tk"

    T4. Training by Computerized Processes Unlimited: "Extending Tcl via C"

    T5. Training by NeoSoft: "Tcl and Tk: An Applications-Based Approach"

    T6. Training by Data Kinetics Ltd.: "Tcl/Tk: What This Means For Your
    Organization"

    T7. Training by Data Kinetics Ltd.: "Building X-Windows Interfaces with
    Tcl/Tk"

    Each posting is prefaced by a line with dashes so you can search to the
    beginning of the next message.

    Please submit further postings to gwl@cpu.com

    ---------------------------------

    ENTRY T1. - Object Oriented Programming with [incr Tcl]
    ========================================================

    Usage: Training
    Company: AT&T Bell Laboratories
    Contact: Michael J. McLennan
    Email: michael.mclennan@att.com

    Course Title:
       Object-Oriented Programming with [incr Tcl]
    Course Length:
       2 Days
    Course Format:
       Course material is presented in a lecture format.
    Course Description:
       When Tcl/Tk scripts grow larger than a few hundred lines, the code
       complexity can be difficult to manage. [incr Tcl] provides a set of
       object-oriented extensions for the Tcl language, enabling
       programmers to write high-level building blocks that are more easily
       assembled into a finished application. This course describes
       object-oriented programming with [incr Tcl]. Fundamental
       concepts are presented on the first day, showing how [incr Tcl] can
       be used to write more modular code. On the second day, these same
       concepts are used to create "mega-widgets", high-level widgets that
       look and act like the usual Tk widgets but are constructed entirely
       with [incr Tcl] code.

    Topics include:

        o Designing object classes
        o Public/protected data members
        o Shared data members
        o Member functions (methods)
        o Inheritance
        o Multiple inheritance
        o Object construction/destruction
        o Manipulating scope
        o Persistent objects
        o Anatomy of a mega-widget
        o A mega-widget base class
        o Example widgets
        o Adding new bindings
        o Creating reusable libraries
       Course Level
          Technical: Beginner to Intermediate
       Prerequisites
          Exposure to tcl/tk programming concepts

    For pricing and availablity information, please contact:

     Michael J. McLennan
     AT&T Bell Laboratories
     1247 S. Cedar Creast Blvd., Rm 2C-226
     Allentown, PA 18103

    Voice:  (610)-712-2842
    FAX:    (610)-712-3843
    E-Mail: michael.mclennan@att.com

    ---------------------------------

    ENTRY T2. - Introduction to Programming in Tcl/Tk
    ==================================================

    Usage: Training
    Company: Computerized Processes Unlimited
    Contact: Gerald W. Lester
    Email: gwl@cpu.com

       Course Title:
          Introduction to Programming in Tcl
       Course Length:
          Two (2) days
       Course Format:
          Course material is presented in a lecture format and through
          a hands-on laboratory using a network of X terminals
          connected to a RISC workstation.
       Course Description:
          This course introduces the participant to programming in
          Tcl/TclX.
       Topics include:
           o Variables
           o Arrays
           o Lists
           o Keyed Lists
           o Syntax
           o Flow control
           o Procedures
              o Creating
              o Invoking
              o Passing variables
              o Passing arrays
              o Passing lists
           o Running programs from Tcl
           o Communicating with child processes
           o Signal handling
           o Error processing
           o Accessing system facilities
           o Programming techniques
              o Using autoloading procedures
              o Proper use of quoting
       Course Level:
          Technical: Beginner to Intermediate
       Prerequisites:
          Use of vi or emacs editors; exposure to programming
          concepts; use of csh/ksh (not programming).

    For pricing and availablity information, please contact:

     Gerald W. Lester
     Computerized Processes Unlimited
     4200 S. I-10 Service Road, Suite #205
     Metairie, LA  70001

    Voice:  (504)-889-2784
    FAX:    (504)-889-2799
    E-Mail: gwl@cpu.com

    ---------------------------------

    ENTRY T3. - Building Graphical User Interfaces in Tk
    =====================================================

    Usage: Training
    Company: Computerized Processes Unlimited
    Contact: Gerald W. Lester
    Email: gwl@cpu.com

       Course Title:
          Building Graphical User Interfaces in Tk
       Course Length:
          2 Days
       Course Format:
          Course material is presented in a lecture format and
          re-enforced through a hands-on laboratory using a network
          of X terminals connected to a RISC workstation.
       Course Description:
          This course introduces the participant to building graphical
          user interfaces using Tcl/Tk.
       Topics include:
           o Background Concepts
           o A tour of the widgets
           o Adding Bindings
           o Widget Class Bindings
           o Geometry Managers
           o Running programs from Tcl/Tk
           o Communicating with child processes
           o Writing widgets in Tcl/Tk
           o Programming techniques
              o Proper use of quoting
           o Interface Builders for Tk
       Course Level:
          Technical: Beginner to Intermediate
       Prerequisites:
          CPU's "Introduction to Programming in Tcl" course or
          understanding and experience using Tcl

    For pricing and availablity information, please contact:

     Gerald W. Lester
     Computerized Processes Unlimited
     4200 S. I-10 Service Road, Suite #205
     Metairie, LA  70001

    Voice:  (504)-889-2784
    FAX:    (504)-889-2799
    E-Mail: gwl@cpu.com

    ---------------------------------

    ENTRY T4. - Extending Tcl via C
    ================================

    Usage: Training
    Company: Computerized Processes Unlimited
    Contact: Gerald W. Lester
    Email: gwl@cpu.com

       Course Title:
          Extending Tcl via C
       Course Length:
          1 Day
       Course Format:
          Course material is presented in a lecture format and through
          a hands-on laboratory using a network of X terminals
          connected to a RISC workstation.
       Course Description:
          This course teaches how to add new commands to Tcl via C.
       Topics include:
           o Approaches to adding commands
              o Action vs Object
           o New tcl/tk shell vs embedding
           o Creating a new Tcl Command
           o Returning Results
           o Creating a new shell
           o Conversion functions
           o Accessing Tcl variables
           o Mapping Tcl variables to C variables
           o Tracing Tcl variables
           o Executing Tcl commands from C
           o Embedding into an applications
       Course Level:
          Technical: Intermediate to Advanced
       Prerequisites:
          Use of vi or emacs editors; knowledge of Tcl; C programming
          experience.

    For pricing and availablity information, please contact:

     Gerald W. Lester
     Computerized Processes Unlimited
     4200 S. I-10 Service Road, Suite #205
     Metairie, LA  70001

    Voice:  (504)-889-2784
    FAX:    (504)-889-2799
    E-Mail: gwl@cpu.com

    ---------------------------------

    ENTRY T5. - Tcl and Tk: An Applications-Based Approach
    =======================================================

    Usage: Training
    Company: NeoSoft
    Contact: Karl Lehenbauer
    Email: sales@NeoSoft.com.

    NeoSoft Tcl and Tk Training Information
    =======================================

    NeoSoft is perhaps the premier corporate contributor to the Tcl and Tk
    toolkit efforts. Our groundbreaking work in Tcl and Tk dates back to its first
    appearance in 1990, and is reflected by the copious amount of concepts and
    code taken from Extended Tcl for use in the Tcl baseline. We continue to
    collaborate with Dr. John Ousterhout, the author of baseline Tcl and Tk, on
    the forthcoming release of Tcl 7.0 and Extended Tcl 7.0.

    NeoSoft's Tcl training efforts have been a natural outgrowth of our work
    with, and extensions of, Tcl.

    The philosophy of the course is one of immediate, maximum impact by
    rapid immersion into hands-on building of X-windows graphical user
    interfaces and the Tcl programs that underly a number of useful
    applications. This approach grew out of our first-generation Tcl training
    course, where we discovered that students became very excited once the Tk
    toolkit was introduced and they could begin typing statements and
    interactively creating sophisticated X-windows interfaces.

    This same philosophy is the backbone of a book we're writing, Tcl and Tk:
    An Applications-Based Approach, due to be published in the first quarter
    of 1994 by Prentice-Hall Technical Publications.

    Training Options
    ================

    We are flexible and can customize a course to your specific needs. We have
    found that almost everyone is content with one of a few options. The class
    lasts for two or three days, at your option. The class can be structured to
    support new Tcl and Tk users and/or users with significant prior experience.
    In either case, it is nice to allocate some unstructured time at the end of the
    class to talk about specific applications and issues that the students are
    interested in, including new users, approaches, tools, environments, and the
    future of Tcl itself.

    Course Location and Times
    =========================

    The course can be taught at your company's facility, or at our training
    facility located in Houston, Texas. Enrollment is limited to ten people per
    class to provide a substantial amount of instructor attention to each student.
    If the course it to be held at your company's facility, there should be no less
    than one workstation per two students, if at all possible. The class can be
    taught over a weekend. Contact NeoSoft for pricing and availability.

    Instructor
    ==========

    The class will be taught by Karl Lehenbauer, the co-author of Extended Tcl.
    Karl is an experienced trainer, having taught and/or developed previous
    courses on Unix, Unix system administration and Tcl/Tk.

    Course Goals
    ============

    Teach Tcl and Tk with the maximum impact by building real world
    applications in the classroom.

    Site Prerequisites
    ==================

    Integrated copy of Tcl and Tk, including Extended Tcl, running on site.

    Course Contents
    ===============

    Below is the list of basic sections of the class, beginning with the elementary
    things that we would teach to users without prior Tcl experience and ending
    with building several tools that are useful, real-world applications in their
    own right. We can work with you to tailor the course to your organization's
    specific needs.

    Section 1 Hello, World

    Concepts:
            Typing commands interactively into the interpreter.
            The most important command in Tcl: "proc"
            Passing arguments to Tcl procedures.
            The C "Hello, World" koan in a graphical context:
    The button command
    The pack command

    Section 2 Making Choices with Buttons

    Concepts:
            Variables and variable substitution
            Radiobuttons
            Checkbuttons
            More on the pack command

    Section 3 A quartet of application launchers

    Concepts:
            Launching applications
            Tcl Language elements:
                    Variable assignment
                    Conditional expressions
                    Beginning file I/O
                    Square-bracket substitution
                    Generating window elements from data
                    Accessing command line arguments

    Section 4 Building a support library:  The dialog box

    Concepts:
            The message widget
            Control structures:  if/else/endif
            Default values for procedure arguments
            First mention of Tk's event loop
            Subordinate toplevel windows
            'tkwait' to support sequential control

    Section 5 Building pulldown and popup menus

    Concepts:
            The menu widget
            Binding commands to keypress events

    Section 6 A few simple but useful applications

    Concepts:
            Intermediate file I/O
            Delayed execution with 'after'
            Temporal commands (getclock, fmtclock)
            Capturing a spawned command's output in a variable

    Section 7 Building a support library: The file selector

    Concepts:
            The listbox and scrollbar widgets
            The frame widget
            More about the packer

    Section 8 Creating a text editor with the text widget

    Concepts:
            The text widget
            Text widget tags
            More about key bindings
    Integrating support library examples

    Section 9 Creating a hypertext system with the text widget

    Concepts:
            More about the text widget
            More about text widget tags
            Builds on the text editor

    Section 10 X resource customizer

    Concepts:
            Use of the "send" command to access another interpreter.
            More about text widget tags.
            Builds on the text editor to make a new tool.

    Section 11 Introduction to the canvas widget

    Concepts:
            Introduces the canvas widget.
            Tags and tag processing.
            More on list processing.
               Use of different canvas widget types.

    Section 12 A second encounter with the canvas widget

    Concepts:
            Commands and options within the canvas widget.
            Combining items with actions.
            A new application launcher.

    Section 13 Creating a drawing tool with the canvas widget

    Concepts:
            Traversing items within a canvas widget.

    Section 14 Sysadmin tool:  New user creator

    Section 15 Sysadmin tool:  ttytab editor

    Section 16 Developer tool:  The proc browser

    Concepts:
            More on using "send" to access another interpreter.
            Using "info" to find variables and procedures.
               Using entry widgets.

    Section 17 Color editor

    Concepts:
            Slider widget
            Performing math with the "expr" command

    To set up a support contract, or if you need more information, please
    contact us at +1 713 684 5969 9-4 M-F, or send email to
    sales@NeoSoft.com.

    ---------------------------------

    Tcl/Tk: What This Means For Your Organization
    ==============================================

    Usage: Training
    Company: Data Kinetics Ltd.
    Contact: Education Services
    E-mail: education@dkl.com

    Course Title:
    ==============

    Tcl/Tk: What This Means For Your Organization
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Course Length:
    ===============

    One (1) day
    ~~~~~~~~~~~

    Course Format:
    ===============

    Course material is presented in a lecture format.
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Course Description:
    ====================

    This seminar is intended for managers, programmers and system engineers
    who wish to gain a quick understanding of Tcl/Tk. The focus of the seminar
    is on the practical, not the theoretical. The aim of the seminar is to provide
    an intensive introduction to the language and the tool kit and to describe
    how the use of Tcl/Tk can benefit your organization, how other
    development organizations are using Tcl/Tk, how you can use the products
    to reduce the time to deliver X-windows applications, what resources are
    available for the Tcl/Tk developer. Seminar materials include a diskette
    containing sample applications built with the products as well as reference
    cards to help you get started.

    Course can be customized to meet specific needs of clients.

    Topics include:
    ================

       An Overview of Tcl
       ~~~~~~~~~~~~~~~~~~~

     o Comparison with other languages
     o The parser
     o Built-in functions
     o Utility functions
     o Extensibility interface
     o The language and its syntax
     o Procedures

       The Tk Toolkit
       ~~~~~~~~~~~~~~~

     o What is it
     o Widgets
     o Geometry managers
     o Creating interfaces with Tk

       Tk Applications
       ~~~~~~~~~~~~~~~

     o Wish scripts
     o Presentation package
     o CASE tool
     o Computational fluid dynamics
     o SCADA
     o System administration
     o Network monitoring
     o Database administration
     o XF
     o Graphical application builder

       Sources of Tcl/Tk
       ~~~~~~~~~~~~~~~~~

     o Internet
     o Other sources

       Other Tcl/Tk Resources
       ~~~~~~~~~~~~~~~~~~~~~~

     o Literature
     o Training
     o Consulting

    For pricing and availability information, please contact:
    ----------------------------------------------------------

    Education Services
    Data Kinetics Ltd.
    2460 Lancaster Road
    Ottawa, ON K1B 4S5
    Canada

    Voice: (613)-523-5500
    Fax: (613)-523-5533
    E-mail: education@dkl.com

    ---------------------------------------------------------------------------

    Building X-Windows Interfaces with Tcl/Tk
    ==========================================

    Usage: Training
    Company: Data Kinetics Ltd.
    Contact: Education Services
    E-mail: education@dkl.com

    Course Title:
    ==============

    Building X-Windows Interfaces with Tcl/Tk
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Course Length:
    ===============

    Three (3) days
    ~~~~~~~~~~~~~~

    Course Format:
    ===============

    Course material is presented in a lecture format and through extensive hands-on experience where each
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    student works through the class exercises at his individual UNIX workstation..
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Course Description:
    ====================

    This seminar is intended for programmers and system engineers who wish to
    build applications using the X-Windows interface. Class size is limited to ten
    students to allow for substantial student-instructor interaction. Materials
    provided include a workbook, a diskette containing sample applications and
    reference cards.

    Course can be customized to meet specific needs of clients.

    Topics include:
    ================

       "Hello World"
       ~~~~~~~~~~~~~~

     o Typing interactive commands into the interpreter
     o The button command
     o The (elementary) pack command
     o Widget configuration
     o The "proc" the heart of Tcl/Tk

       Using Buttons to Make Choices
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

     o Variables and variable substitution
     o Radiobuttons
     o Checkbuttons
     o The (intermediate) pack command

       Launching Applications
       ~~~~~~~~~~~~~~~~~~~~~~~

     o How to launch an application from Tcl/Tk
     o Tcl language elements
        o Variables, creation, assignment, destruction
        o Conditional expressions
        o Square bracket substitution
        o Generating window elements from data
        o Command line arguments
        o Entry level file I/O

       The Dialog Box
       ~~~~~~~~~~~~~~

     o The message widget
     o Control structures if/else
     o Default values for arguments
     o Tk's event loop
     o Sub-ordinate windows
     o Sequential application control with tkwait

       Menus
       ~~~~~~

     o Menu widget
     o Pulldown and Popup
     o Binding commands to interface elements

       The File Selector
       ~~~~~~~~~~~~~~~~~

     o Listbox and scrollbar widgets
     o Frame widget
     o The (advanced) pack command

       A Text Editor
       ~~~~~~~~~~~~~

     o The text widget
     o Text "tags"
     o Key bindings
     o Hypertext

       Creating a Drawing Tool with the Canvas Widget
       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

     o The canvas widget
     o "tags" and tag processing
     o List processing
     o Canvas widget options
     o Traversing items within a canvas

       A Color Editor
       ~~~~~~~~~~~~~~~

     o The slider widget
     o Math with "expr"

       Developer's Tools
       ~~~~~~~~~~~~~~~~~~

     o Browsing procs
     o The "send" command
     o "info" command to find variables and processes
     o Entry widgets

       A Tcl Debugger
       ~~~~~~~~~~~~~~~

    For pricing and availability information, please contact:
    ----------------------------------------------------------

    Education Services
    Data Kinetics Ltd.
    2460 Lancaster Road
    Ottawa, ON K1B 4S5
    Canada

    Voice: (613)-523-5500
    Fax: (613)-523-5533
    E-mail: education@dkl.com

    ==========================================================================
    * Gerald W. Lester                        !   Voice:  (504)-889-2784     *
    * Computerized Processes Unlimited        !   FAX:    (504)-889-2799     *
    * 4200 S. I-10 Service Road, Suite #205   !   E-Mail: gwl@cpu.com        *
    * Metairie, LA  70001                     !   Hours:  09:00-17:00 CDT    *
    ==========================================================================