UniVerse and Unidata Programming
The Programming course is available for both UniVerse and Unidata. It is
intended for users involved in application programming. The course may also be
relevant for users in a system administration or management role.
The course is built around an on-going practical exercise to develop a
working order processing application. The course is accompanied by a detailed
student manual which will also be a useful book for later reference.
The main topics covered are:
The multivalue data model. This module discusses the general
relational database model and the extensions to provide the multi-valued
fields that make this database so powerful and easy to use. This section is
primarily intended as revision for students who have not recently taken the
Essentials course but can also serve as an introduction for programmers with
no prior knowledge of multivalue databases.
Language use and structure. This module introduces the process of
developing a program.
Variables, statements and functions. In this module we look at the
building blocks from which a program is constructed. Many of these items are
discussed in more detail in later modules.
Terminal handling. In this module we discuss the basic principles of
terminal display and keyboard input. We also take the first step towards
constructing our application program.
Conditional execution and looping. This module covers the conditional
and loop constructs of the programming language and allows us to start
building some flow control into our application.
File handling: reading, writing and locks. In this module we explore
the basic principles of file handling and discuss the need for locks in a
multi-user database environment.
Data conversion and formatting. This module discusses the concepts of
data conversion and formatting and introduces the associated programming
Data manipulation: string functions. This module covers a wide range of
general character string manipulation functions.
Data manipulation: dynamic arrays. Here we discuss the ideas of dynamic
arrays and explore the functions available to work on these data structures.
File handling: matrix file operations and select lists. This module
covers two separate topics; use of matrices to hold database records and the
construction and use of select lists within application programs.
External subroutines. Any real application will be formed from many
separate program modules. This section explores how we can break up our
application and how the modules are then linked together at run time. Topics
covered include argument passing, common blocks and cataloguing.
Command execution. This brief module discusses how a program can
execute any command and how it can interact with the command environment.
Alternate key indices and B-tree files. This module looks at the
special programming statements that allow direct access to alternate key
indices and to balanced tree files.
User written functions. This module covers creation of user written
functions as part of application development.
I-type execution. This module shows how a dictionary I-type item can be
evaluated from inside a program and explains why we might want to do this.
Printers. Generating printed output from application programs is
discussed in this module. This includes the use of page headings and footings,
use of multiple printers and the SETPTR command.
Sequential files. This module shows how an application can use
sequential file handling statements to process records line by line.
The debugger. The final module gives an overview of the debugging tool.