biglogo2.gif (2288 bytes) 
                 Consulting, Training, Mentoring, Specialized Development




Training Services

All of our training is aimed at engineers and technicians who will be building large-scale, industrial-strength applications. 

Ada Training
Ada is an important and popular programming language, especially for the construction of large-scale systems that must be very reliable.   The entire Ada 83 language is covered in a three course sequence.  Software engineering principles, structured programming techniques, and the special needs of large-scale programming projects are emphasized.  A fourth course covers Ada 95 and object oriented programming in Ada.

Ada Programming, Introduction 
4-day instructor-led, hands-on classroom training
Ada Programming, Intermediate
4-day instructor-led, hands-on classroom training
Ada Programming, Advanced
4-day instructor-led, hands-on classroom training
Ada 95 for Ada 83 Programmers
4-day instructor-led, hands-on classroom training

C++ Training
C++ is by far the most widely used language for object-oriented programming.  And well it should be.  It is a superset of the extremely popular ANSI C, which means it can be used for traditional function-oriented programming, plus it has additional features that provide direct support for object oriented programming.  All of our C++ training is platform independent, and is available on either a Windows or Apple environment.

C++ Language Fundamentals
A comprehensive, intensive introduction to C++ designed for programmers who have a working knowledge of C.  Covers all aspects of C++, both object-oriented and function-oriented aspects, including predefined types, classes, function and class templates, and inheritance and polymorphism.
4-day instructor-led, hands-on classroom training
C++ Advanced Topics
Aimed at experienced C++ programmers.  Provides an in-depth discussion of a variety of topics, including class and function templates, pointers and references, and inheritance and polymorphism.  This seminar is normally customized for the audience.
1-day seminar

Java and Web Training java.gif (2479 bytes)
These courses cover Java, distributed computing and architecting Web applications.

Fundamentals of the Java Programming Language
This course provides an introduction to Java as an objected-oriented programming language. The course covers Java's basic statements, expression, and program structure, emphasizing its objected-oriented constructs. Participants should have previous programming experience.
4-day instructor-led, hands-on classroom training
Distributed Computing with Java Technology
This course covers Java features such as sockets, threads, serialization, RMI, and JDBC used in distributed applications. The course discusses network protocols and distributed computing design decisions that impact performance and scalability. Participants should have good Java development skills.
4-day instructor-led, hands-on classroom training
Architecting Web Applications Using Java Technologies
This course covers Java-based technologies for creating large, scalable Web applications. The course presents architectural styles for Web applications and the associated technologies that support them. The technologies discussed in the class include Servlet, JSPs, EJBs, and leveraging open-source frameworks including Velocity, Struts, Tomcat, and JBoss. Participants should have significant Java skills and be comfortable with sockets, threads, and database application programming.
4-day instructor-led, hands-on classroom training
.NET Web Application Development
This course covers Basics of common topics for .NET Web development including XML and Soap, .NET Remoting, Web Services, Windows Services, and the Web service discovery using Disco and UDDI. Participants should have solid Java and/or C# skills. The course can include a C# primer for Java programmers.
4-day instructor-led, hands-on classroom training

Object Oriented Analysis and Design with UML Training
This series of courses covers the Unified Modeling Language, and modeling systems and behavioral requirements and designing systems with UML.

Modeling Systems with UML
This course covers the greater part of the Unified Modeling Language (UML), emphasizing those parts that are essential to its intended and proper use. By the year 2000, UML had become the de facto language for describing the artifacts of software engineering; artifacts such as functional requirements, blueprints for programming code, and plans for software deployment. This course introduces the concepts of UML and shows how to use them to describe systems of any kinds (not just software systems) in graphical notation.
2-day instructor-led, hands-on classroom training
UML is most often used in the context of some engineering activity, but UML itself does not address activities—it is simply a language for describing modeling artifacts. One needs to look elsewhere for processes and methods of engineering. Thus, this course is the first in a series of three. The other two courses—described immediately below—present industry best practices for specifying and then designing software-intensive systems. All three courses are appropriate for systems engineers as well as software engineers.
Modeling Behavioral Requirements with UML
This course shows how to use use-case technology to identify and specify the behavioral requirements of systems, including systems of systems. It shows how to use other parts of UML, e.g., activity diagrams, to support the process. It relates this approach to the more traditional approaches of functional-decomposition and event-partitioning, and shows how to reuse the basic ideas therein. It also discusses the use of use-case technology for identifying and specifying non-functional requirements. This course is appropriate for systems engineers as well as software engineers. Participants should have a good knowledge of UML.
2-day instructor-led, hands-on classroom training
Designing Software-Intensive Systems with UML
This course discusses current strategies and techniques for designing software systems. It describes how to use UML to communicate software architectural decisions and discusses object design staples including the use patterns, frameworks, and component-based design and how to represent them in UML. Finally, the course discusses movements in object design including Aspect Oriented Programming and Model Driven Architecture. Participants should have a good knowledge of the UML and experience programming object-oriented software systems.
2-day instructor-led, hands-on classroom training

Software Engineering Retraining
This course prepares participants for a career change from one of the other engineering disciplines (typically, hardware) to software engineering.  It introduces participants to the concepts, goals and methods of software engineering. 

Covers systems analysis through software testing and maintenance, plus the orthogonal activities of configuration management, quality assurance and process improvement.  Also provides training in data structures and three programming languages: Ada, C and C++.  The total amount of material covered is roughly equivalent to four college semesters.
12-week, 8 hour per day program
Target audience: engineers and technicians from disiplines other than software engineering.

  For more information on any of our training programs, and for information on customized training programs, contact



Send mail to with questions or comments about this web site.
Last modified: October 28, 2004