Advanced Programming Modules

These courses are scheduled on demand.


Click on the links below for HTML versions of the full course outllines
Crs Title Days Outline
APM101 Advanced Data Structures and Algorithms 5 Contact Us
APM102 Foundations of Dynamic Data Structures and Algorithms - Covering Linked Lists, Binary Trees, Heaps, Hashing and Tries 5 Contact Us
APM201 Programming with the C++ BOOST Graph Library 3 Contact Us
APM202 Search and Planning Algorithms in C++ 3 Contact Us
APM203 Search and Planning Algorithms in C# 3 Contact Us
APM204 Search and Planning Algorithms in Java 3 Contact Us
APM301 Rule Based Programming in C and C++ using Clips 3 Contact Us
APM302 Fuzzy Rule Based Programming in C and C++ using Fuzzy Clips 1 Contact Us
APM303 Rule Based Programming in Java using Jess 3 Contact Us
APM304 Fuzzy Rule Based Programming in Java using Fuzzy Jess 1 Contact Us
APM401 Digital Signal Processing (DSP) Application Development using Matlab 3 Contact Us
APM402 Digital Control System Application Development using Matlab 3 Contact Us
APM403 Wavelet Application Development using Matlab 3 Contact Us
APM501 Understanding, Implementing and Applying Neural Networks 5 Contact Us
APM502 Understanding, Implementing and Applying Genetic Algorithms 5 Contact Us
APM503 Constraint Satisfaction Programming 5 Contact Us
APM601 Working with Numerical Recipes in C and C++ 5 Contact Us

Rationale Behind the Advanced Programming Modules

Sometimes developers need to master some specific advanced technology to use in connection with some problem they need to solve, There are not many courses that cover the topics contained here - probably because they involve difficult concepts that are not widely used. As a result it is not viable for most companies that specialise in the delivery of "bulk training" to support such courses.

FTT has, over the years developed various modules in connection with the highly tailored courses we have delivered to our customers. This section provides a flavour of the kinds of courses ( modules ) that have been, or, can be provided.

Advanced Programming Module Sections

Conceptually these modules have been divided up into several categories

Data Structures and Algorithms (Courses APM101 and APM102)

APM102 is a moderately advanced data structures and algorithms course that aims to cover the most important of the standard data structures and algorithms that would normally be covered on a typical university course. Its goals are to establish a sound basis for studying more complex algorithms, and, also, to illustrate how these algorithms can be packaged into reusable modules. This course can be tailored to include other specific algorithms as needed. Normally this course is taught using the C programming language. Variants of the course using Java, C# and C++ are also available.

APM101 is a highly tailorable advanced course. The detailed course contents are agreed upon with the customer. Typically this course is run under circumstances where complex source code needs to be maintained and the maintainers and testers need to be brought up to speed with the various algorithms and data structures underlying the code, and also the various interfaces exposed by the code.

Graphs, Networks and Associated Algorithms and Data Structures(Courses APM201 to APM204)

This section deal with the data structures and algorithms underlying graphs and networks. They are targeted at experienced programmers who need to know both the underlying concepts and theory.

APM201 is an advanced C++ course that provides an intensive introdution to the Boost Graph Library and its uses. The remaining courses (APM201, APM203 and APM204) concentrate on search and planning techniques involving graphs. They come in C++, C# and Java flavours respectively. These courses will primarily be of interest to computer game developers, operations research application devlopers and network simulation and modeling application developers.

Rule Based Programming(Courses APM301 to APM304)

Rule based programming, and the Rete Algorithm that underlies many Rule Based Programming implementations is not an area that is widely taught, or as widely used as it should be. For certain classes of application a rule based approach is the most effective and flexible. Rule based systems have been used e.g. in NASA space missions. Of the two rule based programming systems covered ( and their fuzzy variants ) CLIPS is implemented in C/C++ and Jess is implemented in Java. Typically courses in this section would be tailored to reflect customer interests, and would provide opportunities for delegates to explore rule based approaches to the projects they are working on.

Matlab Programming (Courses APM401 to APM403)

The Matlab toolkits are powerful and widely used. They can be used in the design and implementation of signal processing and motor and process control embedded applications. The Matlab Wavelet application development environment facilitates the devlopment of wavelet based signal processing and pattern recognition applications. The courses listed in this section can be tailored from introductory to advanced. As well as Matlab based courses you may be interested in courses covering Open Source alternatives to Matlab such as Scilab and Octave, or even in courses that combine Matlab with either Scilab, or Octave or both.

AI, Learning and Data Discovery Techniques (Courses APM501 to APM503)

These specialised AI courses are included here for those that need to gain a rapid overview of the relevant technologies at an advanced level. They will cover implementation and application issues and can, where feasible, be focused on specific programming languages and toolsets. If applicable techniques for speeding up such applications using parallel computing technologies can also be included.