APL
Products
Services
Training
Links
Events
Workshops
|
APL Course Outlines
APL Borealis courses are generally structured as 2 or 3-day
hands-on training sessions, with emphasis on student problem-solving exercises
and interactive learning. Hands-on courses require each student to
have access to a PC or mainframe terminal, with any APL interpreter
software loaded. Courses may be delivered on-site or at other
facilities by prior arrangement.
The following course outlines provide a common list of topics
covered at each level. Courses may be customized to any extent to
suit the requirements and experience of students. In all courses, there is a
strong emphasis on good APL coding techniques, focusing on the key aspects
needed to design efficient and maintainable APL systems.
Delivery of these courses can be arranged at your facility or at
a downtown Toronto location. The suggested format is typically a two or
three-day, hands-on course in small groups, including exercises and
plenty of opportunity for skills development and feedback.
Course Descriptions |
|
Introductory APL |
For beginners, includes APL basics, the APL environment, APL keyboard and session manager; introduction to language primitives; workspace management and user-defined functions; working with character and numeric arrays; quad-functions; searching, sorting, and generating numbers. |
APL Programming Techniques |
Formatting and report-creation; more primitives; operators; file systems (component and native); idioms, utilities; enclosed arrays; code management; performance issues; event handling and debugging. |
Advanced APL & System Design |
Focuses on the key aspects of efficient design, performance and maintainability in large APL systems; transaction processing; code management; programming standards; readability and maintainability of APL code; event handling; debugging; performance monitoring and improvement. |
APL, Excel & ADO |
An in-depth look at data transfer mechanisms between APL and Excel and ADO using COM/OLE/ActiveX techniques, including an introduction to VBA programming for APL/Excel systems. Use APL as client or server in your applications.
|
Windows/GUI Design in APL |
Introduction to creating GUIs; graphics in APL; using other Windows features including OLE/ActiveX, ADO (Active Data Objects), etc.; migration from DOS to Windows; interfacing with non-APL systems. |
Special Topics in APL |
Including Microsoft .NET APL programming; APL and SQL Database techniques; Web Services and APL; hybrid systems with APL as Client or Server; and more. |
Introductory APL
This course is suitable for absolute beginners, as well as those who have had a minor exposure to the language but no formal training.
Table of Contents
The APL Environment, What is APL?
The APL Interpreter
APL Data Structures
The Session Manager and APL Keyboard
APL Objects: Variables
APL Objects: Functions
Other Objects: Operators, Namespaces
The APL Workspace: Active vs. Stored
Autostart Feature
System Commands
Primitive Functions
Function Valence, Syntax and Domain
Lists of Numbers
The Concept of Rank
Monadic vs. Dyadic
APL Variables
Scalar Extension
APL Relational Functions
Reductions on Arrays
Reduction on Matrices, N-wise Reduction
| Ravel
User-Defined Functions
The "del" Editor
The APL Function, Function Valence
Combining Data
Scalar Extension and Catenate
[]IO - Index Origin
Character Data in APL
Selecting Data from Vectors
Select by Position
Indexed Assignment
Select by How Many
Select by Specified Criteria
Replicate
Compress on Arrays
Expand on Arrays
Indexing Arrays
Take/Drop on Arrays
Generating Numbers
Three uses of /
|
Changing Parts of Data Arrays
Sorting Numeric and Character Arrays
Logical Functions
Searching Within Data Objects
Dyadic Iota
Dyadic Epsilon
Epsilon-underbar
Important Functions, Operators and Techniques
Scan Operator
Rotate, Flip
Shifts
Transpose
Catenate, Laminate
Other Primitives and Features
Catenate (along first axis)
Date Logic
APL Data Types
Object Size and Datatype
Selected APL Idioms
APL Resources
|
APL Programming Techniques - (Intermediate APL)
Suitable for students who have covered most topics at the Introductory level and have had some practice with APL coding. Emphasis is placed to ensure a complete understanding of APL fundamentals before moving on to more advanced topics. Includes an introduction to advanced topics like performance, file design, maintenance, utilities.
Table of Contents
Formatting
Primitive Format, []FMT
Other Primitives and Features
Catenate (along first axis)
Match
Outer Product
Inner Product
Without ~
Base / Represent
Index, Index with Axis
Factorial / Binomial !
Matrix Inverse / Matrix Divide
Array Thinking
Enclosed Arrays / Nested Arrays
Extensions to Existing Primitives
Enclose/Disclose
Strand Notation
Each Operator
Enclose with Axis
Split, Mix
Partitioning / Partitioned Enclose
Indexed Assignment, Scalar Extension
Enlist
Pick, First
Match, Depth
When to Use Simple vs. Enclosed?
Lookups/Indexing
Argument and Result Passing
Table-driven Code
Workspace Items and Tables Management
Partitioning
Formatting Enclosed Arrays
Rank
Enclosed Arrays - Summary
APL Files
Comparison of APL Files and Workspaces
File Access
Using APL Files
APL Component File Structure
File Functions - Summary
|
File Functions - Usage Notes
File Design
Named Component Files
Native Files
Interfacing to Non-APL Systems
Execution of APL Code - Event Handling
The Execution Stack
Event Handling, Error Trapping - in General
Branching
Restartability
Shadowing
Cutting Back the Stack
Error Message
Stop and Trace
Specific APL Product Event Handling
Debugging
Operators for Debugging
Performance and Efficiency
The APL Interpreter and APL Workspace
Performance Issues
Performance Analysis
Diagnosing Performance Problems
Workspace "Caching" / Parallel Processing
Files and Workspace Performance
Code Management
Managing Objects in the Workspace / Managing Workspaces
Code Control / Version Control
Package Functions
Code Management - Code File Systems
Table-Driven APL Systems - The Data Dictionary Approach
APL Programming Standards and Maintainability
Peer Review of APL Code
Idioms/Utilities
APL Product Utility Workspaces
Other Utilities
Exercises
APL Resources
|
Advanced APL and System Design
This three-day course will focus on the design of efficient and maintainable APL systems, with emphasis on methods for providing structure to systems built in APL.
The prerequisite for this course is a good working knowledge of APL features. The minimum should be an Introduction to APL course, plus at least 6 months hands-on experience with APL. Familiarity with enclosed arrays, packages, event handling, and APL files is required.
The course will be as generic as possible in terms of the brand of APL or computing platform used, with a discussion of features specific to certain APL products or platforms where necessary. Examples and exercises may be used to aid the learning process where time permits.
APL Fundamentals for Efficient and Maintainable APL Systems
- The APL environment, hardware and operating system limitations, startup parameters
- APL dataypes, impact on workspace and file storage
- performance and APL, using efficient data structures
- performance and file operations
- enclosed (nested) arrays, when to use or not use these, efficiency issues
- performance monitoring
- code efficiency, array-oriented thinking vs. looping
- workspace size and object size, discussion on blocking, looping, transaction processing
- time-saving and performance-enhancing APL language features not commonly used
APL Code Maintenance Techniques
- APL programming standards, maintainability issues, code readability
- peer review of APL code
- editing APL code, editor features
- management of workspaces
- managing objects in the workspace
- code storage, file vs. workspace
- code management strategies, paging systems, version control
- table-driven APL systems, the data dictionary approach
Productive APL System Development
- event handling, error trapping, use and abuse
- debugging APL systems, stop and trace techniques
- APL idioms
- utility functions, utility libraries
- code comparison and cross-reference tools
- APL code portability issues
- migration to other APL systems
- interfacing to non-APL systems
APL, Excel & ADO
Workshop attendees may use and install APL+Win or Dyalog APL on the classroom PC, and the workshop will provide usage details for these techniques for both products.
1) Introduction and Terminology
- terminology - OLE, COM, ActiveX, Object Oriented, client/server, etc. - we'll explore these terms and sort out the jargon
- today's APL - an overview of key features offered by APL products for these techniques
2) Excel Components
- an overview of the Excel spreadsheet object, its properties and methods and the Windows/GUI object-oriented paradigm; the Excel Help facility
- APL's view of Excel - what the Excel spreadsheet object and its properties look like from within APL; objects and functionality for driving Excel
3) APL in Command - reading/writing Excel data from the APL environment
- environment - the APL programming environment; data-type considerations; array-oriented logic
- reading - bringing data from Excel into the APL environment
- writing - populating Excel spreadsheets with APL data
- tools - typical examples and readily-available utilities for constructing systems
4) Excel and Visual Basic - key components and techniques
- Excel/VB - an introduction to Visual Basic within Excel; the Excel/VB user interface and programming environment for code and GUI development
- Excel/VB macros - common tools and techniques for creating, running, and debugging macros
- GUI controls - designing the Excel-driven interface using common GUI controls and techniques
5) Excel in Command - the APL calculation engine
- the APL object - creating the APL.dll; calling APL functions from Excel
- APL workspace objects - special-case objects; enclosed arrays; function argument/result passing
- communication - error handling and APL to Excel messaging
7) Fine Tuning - polishing the application for performance and functionality
- Excel/VB tips and techniques - better programming techniques; array handling, etc.
- APL tips and techniques - better programming techniques; array handling, etc.
- avoidance techniques - common pitfalls and how to avoid them
8) ADO - Active Data Objects & APL
- parallels between ADO and Excel from the APL perspective
- moving data back and forth from APL to ADO databases
- exercises and examples
Windows / GUI Design in APL
APL Does Windows! - Courses for Developing Windows Applications
APL programmers can now develop fully compliant Windows applications with relative ease, or convert existing applications to today's standards, and still take advantage of APL's enhanced development environment and powerful language features.
APL products offer built-in language enhancements to create object-oriented Windows GUIs, interact with other Windows-compliant applications, run OCX applets, offer ActiveX Data Object or ODBC client or server functionality, TCP/IP network support, and much more.
Developers who are already using APL in current software applications can now readily extend their capabilities to these new technologies. APL Borealis training courses are designed to pick up where your current APL development skills leave off. As you would expect, creating Windows applications in APL is remarkably easy, given the user-friendly programming environment and rich functionality that the APL language is known for.
These are the key topics which programmers will need to develop fully featured Windows applications in APL.
Table of Contents
GUI Options (past and present)
Windows Terminology
Object Naming
Typical Processing Steps
Typical Issues
Wheels Invented
Objects - examples and comparison
Call-Back Functions
Quad Functions
What Invokes Action?
Specific APL Products - Objects
Code Examples
Window GUI Programming - in Detail
Building and Running an APL GUI Program
Run-time APL
|
Migration Issues
APL GUI System Functions and Variables Summary
APL GUI Utilities
Windows Utility Workspaces
Windows Demonstration Workspaces
Interactive Form Editors
The Windows Clipboard
Online Help Topics
Exercises
Editing GUI objects "on the fly"
OLE/COM/ActiveX and Excel
Client/Server Systems
Various User Downloads
ADO and APL
|
Special Events and Workshops
Fully-customized APL courses can be tailored to suit your requirements. Please call for details.
APL Borealis offers advanced workshops on specific APL topics from time to time. Below are some of our recent events in this category. Please contact us if you wish to be on the list for upcoming announcements for these events.
Your Instructor
Richard Procter has been a specialist in APL software development
since 1979, and has developed and delivered courses on APL for dozens
of clients since 1992. His expertise includes the mainframe and PC
environments and products including Sharp APL, Dyalog APL/W, and
APL2000's APL+Win.
Richard was Chair of the Toronto APL Special Interest Group, a
chapter of the ACM/SIGAPL, from 1996 to 1998, and continues to
participate in that group's activities. Also, he chaired the very
successful annual APL conference, APL97, which brought to Toronto
some 250 APL users for a highly educational series of tutorials and
hands-on workshops on Array Programming Languages in 1997.
For more information, please contact:
Richard Procter
APL Borealis Inc.
tel: 1-866-888-6377
email: richard.procter@aplborealis.com
|