x

Public Classes

Absolute Software offers public courses on popular topics, including Ada, C++, UML, service- and object-oriented software development and software engineering of high-integrity systems (i.e. security, safety). For more information, send E-mail to sales@abssw.com.

Schedule 2013

March 24-28 Ada for Experienced Programmers
Jun 2-6 Developing Real-Time Systems with Ada
Sept 2014 Developing Real-Time Systems in C++
Oct 2014 Developing Real-Time Systems in Java
Nov 2014 Ada For Experienced Programmers

Location

Unless otherwise specified, courses are held in Carlsbad, California. The Palomar Airport (CLD) in Carlsbad is served by United Airlines out of Los Angeles. Lindbergh Field (SAN) in San Diego is about 25 miles south and John Wayne Airport (SNA) in Irvine is about 50 miles north.

Prices & Payment

For current course prices, see the course registration form (a link is provided with each course description). We accept most major credit cards or payments made using Paypal.

If payment is received more than five business days before the course, discounts are applied for both individuals and groups of 3 or more. Payment is required by the start of the course.

If you cannot attend, you may send a substitute, or receive a credit memo towards a future seminar. If you cancel your registration more than five business days before the seminar, your registration fee will be refunded, less a $100 handling charge and any fees charged by credit card companies.

Descriptions

Developing Real-time Systems

Format: Immersion, 5 days

Intended For: Experienced software developers and systems engineers who need to develop or understand the development of embedded real-time or pervasive high-volume systems.

Prerequisites: At least 1 year experience in software development with Ada. Familiarity with OS functions involving threads, message passing, and synchronization. Experience with software design preferred.

Overview: Embedded real-time, and pervasive high-volume systems, whether implemented using single-core, multi-core, distributed technology or combinations, raise additional concerns about architecture reliability, fault tolerance, timeliness, and completeness not found in other kinds of systems and not addressed by most software development approaches. Timeliness requires detailed understanding of (a) task scheduling and queuing, (b) coordination and collaboration of processes, potentially across multiple cores and/or networked computers or devices, (c) message processing and queuing, (d) sharing resources, and (e) non-regular occurrence of interrupts.

This set of courses teaches the student how to think about, design, and implement real-time and pervasive high-volume multi-core and/or distributed systems.

This course, which first in the series, explains (a) the critical concerns of these systems, (b) the reason most common software development methods fail or are inefficient, (c) why testing alone is inadequate and inefficient, (d) how common practices, e.g. maximizinge CPU utilization, can prdouce results ranging from inefficient execution to disastrous results.

Students will learn fundamental concepts and techniques required to design, and analyze embedded real-time and pervasive high-volume systems. They will learn to design tasks that are allocated to available hardware so CPU and other resourses are efficiently used, and avoiding failures such as race conditions, deadlocks, and roll-backs, which can slow or kill a system. They will learn to scheduling algorithms and analysis techniques that assure delivery of timely results when the design is properly implemented.

After this course, a student should be able to:

  • Understand the differences between embedded real–time systems, pervasive high-volume systems, and other systems
  • Contribute to the design of embedded real–time systems and/or pervasive high-volume systems
  • Analyze the design of an embedded real–time systems and/or pervasive high-volume systems
  • Apply scheduling theory techniques to perform worst-case response analysis of an evolving system

This course is an intense immersion in to the topic. Each day will consist of lectures, workshops, and/or exercises. In class, the students will apply the information covered in lectures to sample problems in workshops. Outside class, the students will be expected to do some reading or exercises. Extensive examples will be used to illustrate the concepts in the lectures.

Full Description (PDF) -- being revised

Registration Form (PDF)

Fees: If payment is received more than five business days before the course, the fee is $2,750 for an individual, and $2,500 each for groups of three or more from the same project or firm when purchased at the same time.  If payment is received five or fewer business days before the course, the fee is $3,000.

Developing Real-time Systems in Ada

Format: Lecture–Immersion, 5 days

Intended For: Ada programmers and designers, who intend develop embedded real-time or pervasive high-volume Ada programs.

Prerequisites: Developing Real-time Systems, Part 1 course, or instructor-approved equivalent training or work experience

Overview: This course teaches how to immplement embedded real-time or pervasive high-volume in Ada, achieving predictable schedules and efficient use of resources, based on the concepts and techniques taught in the Developing Real-time Systems, Part 1 course.  The student will learn to use Ada's support for:

  • single core, multi-core, and distributed implementation;
  • task scheduling, including static and dynamic priorities, scheduling algorithms, priority inheritance and ceiling protocols, and entry–queue protocols;
  • system programming, including interrupt handling, device handling, physical data structures.

Thhe student will learn how almost all of these capabilities are facilitiated by the Ada 2012 standard's new aspects and contracts. This course also introduce the student to a) the Spark subset of Ada for safety-critical and/or secure systems, and (b) Ada's integration of real-time and object-oriented features.

This course is an intense immersion in to the topic. Each day will consist of lectures, workshops, and/or exercises. In class, the students will apply the information covered in lectures to sample problems in workshops. Outside class, the students will be expected to do some reading or exercises. Extensive examples will be used to illustrate the concepts in the lectures.

Full Course Description (PDF) -- available by mid June

Registration Form (PDF) -- available by mid June

Fees: If payment is received more than five business days before the course, the fee is $2,750 for an individual, and $2,500 each for groups of three or more from the same project or firm when purchased at the same time.  If payment is received five or fewer business days before the course, the fee is $3,000.

Developing Real-time Systems in C++ (under development)

Format: Immersion, 5 days

Intended For: C++ programmers and designers, who intend develop embedded real-time or pervasive high-volume systems.

Prerequisites: Developing Real-time Systems, Part 1 course, or instructor-approved equivalent training or work experience

Overview: TBD

Developing Real-time Systems in Java (under development)

Format: Immersion, 5 days

Intended For: Java programmers and designers, who intend develop embedded real-time or pervasive high-volume systems.

Prerequisites: Developing Real-time Systems, Part 1 course, or instructor-approved equivalent training or work experience

Overview: TBD

Ada for the experienced Programmer

Format: Lecture–workshop, 5 days

Intended For: Software development personnel, including their management and QA engineers, who intend to program in Ada, design for Ada, or review Ada code.

Prerequisites: Programming experience, familiarity with a high–level language.

Overview: This course is intended to jump-start experienced programmers in the use of the Ada programming language to develop reliable, maintainable software systems.  Students will learn how Ada supports software engineering principles, such as abstraction, information hiding, localization, modularity, and re-use, and how to apply these principles in Ada software development.  Students will gain experience with the Ada syntax and semantics for data and program structuring, error management, information hiding, object-oriented programming, and generics, tasking, and low-level programming. Finally, we will look at how the new annexes of Ada support domain–specific development: distributed, real-time, and information systems, numeric computation, systems programming, safety, and security.

Full Course Description (PDF)

Registration Form (PDF)

Fees: If payment is received more than five business days before the course, the fee is $2,250 for an individual, and $2,000 each for groups of three or more from the same project or firm when purchased at the same time.  If payment is received five or fewer business days before the course, the fee is $2,750.

 

C++ for Experienced Programmers

Format: Lecture–workshop, 5 days

Intended For: Software development personnel, including their management and QA engineers, who intend to program in C++.

Prerequisites: Programming experience, familiarity with a high–level language.

Overview:  This course teaches the student how to write high quality, internally documented, well-structured C++ programs.  Students will learn how C++ supports software engineering principles, such as abstraction, information hiding, localization, and modularity, and how to apply these principles in software development.  Students will see how C++ incorporates and improves upon ISO C, then adds features supporting object–oriented design & programming, error management, and templates. The student will gain experience with syntax and semantics of the ISO standard C++ language. Finally, we will look at how the new Standard Library reduces the amount of code that needs to be developed and improves reliability through re-use.

Full Course Description (PDF)

Fees: If payment is received more than five business days before the course, the fee is $2,250 for an individual, and $2,000 each for groups of three or more from the same project or firm when purchased at the same time.  If payment is received five or fewer business days before the course, the fee is $2,750.

 

publiccoursespicture