For a better view on Inspire Cayman Training, Update Your Browser.

Programming - I (Online Courses)

Elevate your career trajectory with our premier online course, designed to sharpen your competitive edge. Explore our curated selection of top-tier digital programs to hone your skills and propel your professional journey forward. Experience transformative learning tailored to empower your career advancement in today's dynamic landscape.
Course Category
Price on Request
Start Learning
This Course Includes
  • 74 hours 0 minutes
    of self-paced video lessons
  • 51 Programs
    crafting your path to success
  • Completion Certificate
    awarded on course completion

Automated Testing: Design Patterns

Price on Request 50 minutes
In this course, you'll explore automated testing and design patterns, as well as API testing tools, and the roles and responsibilities of software designers during the automated testing process. You'll start by examining the importance and benefits of automated testing, and the roles and responsibilities of software developers when performing automated testing. You'll then explore how to effectively use unit tests in automated testing, how automated testing can be used to perform functional testing, and how API testing compares with traditional software testing features. Next, you'll examine the use of design patterns in automated testing, common automated testing design patterns, and tools and frameworks that can be used in API testing. You'll then see how to navigate with Selenium WebDriver and how to construct a Selenium page object for a test case. Lastly, you'll see how to use a Selenium page object to create a unit test and implement automated web testing using Selenium unit tests.
Perks of Course
Certificate: Yes
CPD Points: 49
Compliance Standards: AICC

Build Apps Using React: Working with Forms

Price on Request 1 hour 20 minutes
Learners can explore the basics of controlled components and uncontrolled components in this 12-video course, which begins with a look at working with forms in React. Forms are used to input data on a web page; you will discover how controlled components work in forms, and then move on to a two-part tutorial on controlled components for multi-input forms: part 1 on wiring up event handlers for form mutations, and part 2 on synchronizing component state by using event handlers. Next, discover how to wire up a single event handler for multiple inputs, and how to design form elements to be individual components. This leads into testing form setup, and testing the form on a web browser. Discover the need for client-side validation, and how to validate data passed into forms. Compare controlled components and uncontrolled components for form data, and in the final tutorial, learn how to use uncontrolled components to handle file inputs in forms.
Perks of Course
Certificate: Yes
CPD Points: 80
Compliance Standards: AICC

C++ Inheritance & Polymorphism: Constructors, Destructors, & Inheritance

Price on Request 1 hour 25 minutes
The order in which constructors and destructors are invoked on an object of a derived class in an inheritance hierarchy is a very important topic. Constructors are invoked in order from the top-most (most base-level) class, down to the most derived class. Destructors are invoked in the reverse order. Explore how constructors work in an inheritance hierarchy, the order in which the base and derived class constructors are invoked, and how initialization lists need to be used in the derived class. Discover how to use copy constructors and destructors in the context of inheritance. Learn how to set up an inheritance hierarchy for polymorphism. Finally, practice using objects in an inheritance hierarchy with variables of pointer and reference types. When you finish this course, you will have a solid foundation in constructors, destructors, and inheritance, setting the stage for runtime polymorphism and dynamic method dispatch.
Perks of Course
Certificate: Yes
CPD Points: 84
Compliance Standards: AICC

C++ Inheritance & Polymorphism: Multiple Inheritance & the Diamond Hierarchy

Price on Request 1 hour 20 minutes
C++ allows multiple inheritance, which means that one class can have more than one base. C++ also has some powerful mechanisms for dealing with edge cases such as the diamond hierarchy. You will start this course by learning the precise syntax which is required to implement multiple inheritance in C++, specifically, how it's important to have both base class access specifiers marked independently. You will then move on to the topic of a diamond inheritance hierarchy, in which the grandchild-level derived class has two parents, both of which inherit from the common, grandparent level base class. Finally, you will see how dynamic casts work in the context of an inheritance hierarchy, how these are a lot safer than static casts, and how they return a null value on failure when used with pointers but they throw an exception on failure when used with references.
Perks of Course
Certificate: Yes
CPD Points: 81
Compliance Standards: AICC

C++ Inheritance & Polymorphism: Pure Virtual Functions & Abstract Classes

Price on Request 1 hour 20 minutes
Pure virtual functions and interfaces are very powerful tools in object-oriented programming, and interface-driven programming is a great way of splitting up work across different developers on a large project. You will start this course by considering why your destructors should be marked as virtual in the base class if you have an inheritance hierarchy. You'll see the harmful effects of not using virtual destructors in an inheritance hierarchy and the problems with object slicing. You will also learn why it is preferable to have variables of reference types to the base class rather than the value types. You will then move to some finer points of working with virtual methods, such as, the inadvisability of using default parameters because these are statically bound. Finally, you will master the syntax and semantics of pure virtual functions and learn how a class that contains even one pure virtual function becomes an abstract class that cannot be instantiated directly.
Perks of Course
Certificate: Yes
CPD Points: 81
Compliance Standards: AICC

C++ Inheritance & Polymorphism: Understanding & Using Polymorphism

Price on Request 1 hour 30 minutes
Inheritance forms the basis for polymorphism, specifically runtime polymorphism, which is a powerful object-oriented programming construct. Runtime polymorphism involves a pointer or a reference of the base class type holding an object of the derived class. The beauty of runtime polymorphism is that when virtual methods are invoked on this pointer, the derived class versions are executed. You will start this course by defining name hiding and how most methods on C++ objects are, by default, statically dispatched. You will then learn about polymorphism and dynamic dispatch, which is accomplished using the virtual keyword. Finally, you will learn how the ‘override' and 'final' specifications can be used to achieve precise semantics and reduce the scope of bugs and typos in your C++ programs.
Perks of Course
Certificate: Yes
CPD Points: 123
Compliance Standards: AICC

C++ Inheritance & Polymorphism: Using Inheritance for is-a Relationships

Price on Request 1 hour 30 minutes
Inheritance is a powerful, object-oriented language construct in which one class can be related to another class using an is-a relationship. Using inheritance, you can construct complicated class hierarchies in which one class is a parent or a base of another class. Is-a relationships are a great way of performing object-oriented design and are complemented by has-a relationships, which are implemented using composition, rather than inheritance. Explore inheritance relationships by setting up an inheritance hierarchy in C++ and specifying one class as the parent of another class. Then discover how member variables and methods are accessible from the drive class, as well as from external code. Finally, investigate base class access specifiers, and find out how they work with member access specifiers. When you're finished, you'll clearly understand how to use inheritance for is-a relationships and how to identify uses for private inheritance.
Perks of Course
Certificate: Yes
CPD Points: 90
Compliance Standards: AICC

C++: Function Templates with Multiple Parameters & Non-type Parameters

Price on Request 40 minutes
Template programming is very powerful and can also get quite complicated. In this course you will tackle some of those complications by using multi-value function templates. Learn how decl_type and auto keywords can be used to allow type inference on the return type of a function. Work with default arguments for template parameters and see how this can lead to mismatches if done carelessly. Finally, define and specify non-type template parameters and explore the relationship between the values of those parameters and the compiler.
Perks of Course
Certificate: Yes
CPD Points: 39
Compliance Standards: AICC

C++: Getting Started with Operator Overloading

Price on Request 1 hour 25 minutes
Operator overloading is an unusual language feature that is quite important in C++, enabling you to specify implementations of the standard operators for your user-defined types. You can overload a wide variety of operators, each having a standard meaning for built-in types that can be mimicked in custom types. If used correctly, this can lead to natural, elegant-looking code. Begin this course by learning how to overload simple operators and explore the restrictions around overloading operators. Then, discover how to overload operators as member functions of a class, providing easy access to the internal state of the object. Finally, focus on identifying situations where the member function implementation will not work and investigate best practices of operator overloading.
Perks of Course
Certificate: Yes
CPD Points: 83
Compliance Standards: AICC

C++: Introduction to Graphics with SFML

Price on Request 1 hour 30 minutes
Simple and Fast Multimedia Library (SFML) is a cross-platform, software development library used for designing gaming applications, providing features like audio, graphics, and a network, which together allow you to build the complete multimedia experience. Begin by creating and managing windows that can hold multimedia gaming applications. Learn how to keep a game constantly running and updated using a game loop. Next, explore event handling in SFML, including mouse clicks, scrolls, keypress events, resize, and focus events. Finally, use the Graphics module in SFML to draw graphical entities, like geometric shapes, to the screen and configure the properties of these entities. When you have completed this course, you will have the foundational knowledge to create and render graphical entities within SFML windows.
Perks of Course
Certificate: Yes
CPD Points: 94
Compliance Standards: AICC

C++: Overloading Arithmetic & Relational Operators

Price on Request 1 hour 45 minutes
Some of the most commonly overloaded operators include binary arithmetic operators, used in operations such as a + b; compound assignment operat+B30ors of the form a+= b; and the prefix and postfix operators of the form a++. In this course, discover how to overload binary arithmetic operators appropriately, so that they support correct semantics in chaining. Learn how to overload compound assignment operators, such as +=. Explore how the C++ compiler differentiates between the pre and post increment operators and how these operators work in various edge cases. When you complete this course, you will be able to confidently leverage std_rel_ops by overloading relational operators.
Perks of Course
Certificate: Yes
CPD Points: 105
Compliance Standards: AICC

C++: Stream Operators, Assignment Operators, & Copy-and-Swap

Price on Request 1 hour 25 minutes
The stream insertion and extraction operators are often overloaded because they provide a convenient way to read objects in and write objects out to standard IO. The copy assignment operator is even more crucial because of how important it is in correctly freeing up resources held by an object. In this course, learn how to implement the correct overloads of the insertion and extraction operators and why these are invariably implemented as non-member functions. Then, move on to correctly overloading the copy assignment operator and using standard formats to ensure that resource cleanup occurs exactly once. Finally, find out how the copy-and-swap idiom provides a way to use the std::swap function to implement the copy assignment operator in a manner that is exception-safe. This idiom leads to an elegant implementation that is not only less complex, but also more robust.
Perks of Course
Certificate: Yes
CPD Points: 85
Compliance Standards: AICC

C++: Using Class Templates

Price on Request 1 hour 50 minutes
Class templates are a way of reusing code for classes parameterized by types of internal state variables, just as function templates are a way of reusing code for functions parameterized by the types of input arguments and return types. In this course you will discover how to define and instantiate class templates, along with common uses of templated classes. Learn how to use the braced initialization list constructor and explore how the compiler provides this special construct so that container objects can be initialized from a list of values. Finally, investigate partial and full template specializations, and how partial specializations can be used to correctly deal with pointer types.
Perks of Course
Certificate: Yes
CPD Points: 112
Compliance Standards: AICC

C++: Using Function Templates

Price on Request 1 hour 45 minutes
Template metaprogramming is a powerful computer science technique used to achieve code reuse and some incredibly elegant architectures. In C++, template metaprogramming is achieved via template functions and classes that are instantiated at compile-time, not at runtime. In this course, learn how to define and instantiate function templates to effectively provide compile-time polymorphism. Then, explore how template definitions can make assumptions about the template parameters. Finally, learn how to define and use templates with pointer and reference types to provide function overloading.
Perks of Course
Certificate: Yes
CPD Points: 107
Compliance Standards: AICC

C++: Using the Move Constructor & Move Assignment Operator

Price on Request 1 hour 25 minutes
References are an important part of C++, and a little-known fact about references is that there are actually two types of references: l-value and r-value. In this course, explore those two reference types by learning how to use the syntax and semantics of r-value references to extend the lifespan of transient values. Then, implement the move assignment operator and move constructor, using r-value references as their input arguments, to reduce the number of unnecessary copies created in your C++ programs. Finally, work with Resource Acquisition Is Initialization (RAII) to use smart pointers as a way to bypass complex rules, such as the rule of three and the rule of five, allowing you to follow the simplest rule of all - the rule of 0.
Perks of Course
Certificate: Yes
CPD Points: 83
Compliance Standards: AICC

C++: Working with Associative Containers & Algorithms

Price on Request 1 hour 20 minutes
Associative containers provide fast lookup in O(log n) time by associating each entry with a key. Sets and maps are both associative containers. Algorithms are classes that support container-agnostic operations performed on containers. In this course, learn how to create sets and iterate over them, as well as use ordered and unordered multisets. Next, practice creating maps and indexing into them using keys, as well as inserting key-value pairs into maps. Finally, examine how random access of elements is faster with unordered maps compared to ordered maps, and explore various STL algorithms. Upon completion, you'll be able to differentiate between sequence and associative containers, leverage STL algorithms, and instantiate and use sets, multisets, maps, and multimaps.
Perks of Course
Certificate: Yes
CPD Points: 81
Compliance Standards: AICC

C++: Working with Sequence Containers

Price on Request 1 hour 25 minutes
In C++, containers are structures that store collections of other objects known as elements. Sequence containers are used to store elements of the same type sequentially in a linear arrangement, and associative containers store elements in the form of key-value pairs. In this course, work with basic sequence containers called arrays, as well as vectors. Next, learn about forward lists and lists, which are sequence data structures that allow constant time insert and erase operations. Finally, discover how to work with deques (double-ended queues) and container adapters, including stacks, queues, and priority queues. Upon completion, you'll be able to contrast sequence and associative containers, enumerate properties, and correctly use stacks, queues, and priority queues.
Perks of Course
Certificate: Yes
CPD Points: 86
Compliance Standards: AICC

Classes in Java: Creating & Using Anonymous Classes

Price on Request 1 hour
Anonymous classes in Java allow you to define code that use-and-throw. These are classes where you define and instantiate a class simultaneously and which are anonymous, i.e., do not have a name. These are perfect in scenarios where you want a class that implements a certain interface but will not be reused beyond where it is defined and accessed. Through this course, learn to create and use anonymous classes, recognizing how they are nested, inner, and unnamed classes that either implement an interface or derive from a base class. As you advance, explore some common use cases for anonymous classes. When you're finished with this course, you'll be able to create and use anonymous classes in Java correctly, with the correct syntax, and for the proper use case.
Perks of Course
Certificate: Yes
CPD Points: 59
Compliance Standards: AICC

Classes in Java: Implementing Functional Interfaces Using Lambdas

Price on Request 1 hour 30 minutes
Lambda expressions allow you to define classes that implement single-method interfaces in a very concise and compact manner. This makes code that uses lambda functions easier to read and understand and much more maintainable. Lambda expressions can be made even more compact and readable by the use of method references. In this course, you will learn to create and use lambda expressions to implement functional interfaces. You will see that lambda expressions are essentially blocks of code that accept input arguments, perform operations, and return values. Lambda expressions can be used in any place where we use anonymous classes or a named class that implements an interface with just a single abstract method. You will see that lambdas can only be used to implement functional interfaces i.e. interfaces that have exactly one abstract method. Such interfaces are usually annotated using the @FunctionalInterface annotation which allows the compiler to detect if the single abstract method contract has been violated for such interfaces. You will understand and implement the four types or categories of functional interfaces, the Predicate, Function, Consumer, and Supplier interfaces. Finally, you will round this course off by exploring and implement method references which are essentially even more compact representations of lambda expressions. When you are finished with this course you will have the skills and knowledge to construct lambda expressions in the right way and use Predicates, Functions, Suppliers, and Consumers to process and store your objects.
Perks of Course
Certificate: Yes
CPD Points: 89
Compliance Standards: AICC

Classes in Java: Working with Static Nested, Inner, & Local Classes

Price on Request 1 hour 50 minutes
Static nested and inner classes in Java are used when classes have a logical relationship with or are intimately associated with the outer class within which they are defined. Local classes are classes defined within a scope and can only be accessed and used within that scope. They're the perfect tools to use when you want to limit the visibility of your classes. Through this course, learn to create and use static nested classes defined within an outer class. Explore how a closer relationship with an outer class can be expressed using inner classes and why access modifiers do not apply to local classes. And define and use local classes created with a code block. When you're finished with this course, you'll be able to pick the right kind of class for your use case and correctly implement nested classes, inner classes, and local classes.
Perks of Course
Certificate: Yes
CPD Points: 108
Compliance Standards: AICC

Collections in Java: Arrays & Non-parameterized ArrayLists

Price on Request 1 hour 15 minutes
The Java collections framework is a set of classes and interfaces that implement commonly reusable collection data structures. Though not part of the Java collection framework, arrays allow you to store multiple elements. They are incredibly useful, albeit with significant drawbacks, when used as collection containers. Use this course to practice working with arrays and collections. Start by storing data in an ordered form using arrays. Through this, explore the drawbacks of arrays. Next, examine multi-dimensional arrays and jagged arrays. Finally, create and use the non-parameterized array list to store elements. When you're finished with this course, you'll have a good understanding of how arrays work, their drawbacks, and how the use of collections can overcome many of the limitations of working with arrays.
Perks of Course
Certificate: Yes
CPD Points: 77
Compliance Standards: AICC

Collections in Java: Lists & List Operations

Price on Request 40 minutes
If you're writing Java code and need a container to store elements, a list is likely what you'll use. The Java collections framework provides several different list implementations. Use this course to practice using parameterized lists. Start by working with parameterized collections with type parameters to indicate the type of data you want to store within that collection. Compare parameterized and non-parameterized lists. Then, explore first-hand the advantages of working with parameterized lists. Next, investigate all the methods you can use to operate on lists in Java, examining the inheritance hierarchy of interfaces in the Java collections framework and the use case for each kind of interface. When you're finished with this course, you'll be able to use parameterized lists to store your data and perform the correct operation based on your use case.
Perks of Course
Certificate: Yes
CPD Points: 41
Compliance Standards: AICC

Collections in Java: Sets & Maps

Price on Request 1 hour 40 minutes
The Java collections framework has several different, specialized collections, such as sets and maps. These allow you to store values and data in different ways. In this course, you'll explore these and other valuable collections from the Java collections framework. Create and work with sets, performing several different operations, including union, intersection, difference, and subset operations. Next, explore the different set implementations that Java offers beyond the basic HashSet. Discover how the LinkedHashSet and TreeSet differ in how elements of the set are accessed. Finally, work with another important and commonly used Java collection, the map. Investigate several different map implementations and use maps to build a Least Recently Used cache and a priority queue. When you're finished, you'll have a solid foundational, working knowledge in using special collections in the Java collections framework.
Perks of Course
Certificate: Yes
CPD Points: 98
Compliance Standards: AICC

Control Structures in C: Getting Started with Control Structures

Price on Request 1 hour 55 minutes
A control structure in C is any code construct that changes the flow of control, such as the order of execution in a program. The three main types of control structures in C are decision-making control structures, looping control structures, and unconditional control structures. Decision-making control structures include if-else blocks and switch statements. You will start this course by working with the if statement control structure. This checks whether a condition is satisfied or not, and returns an output based on that. You will then use the if-else-if ladder to create multiple conditions that will be checked in order. The code block associated with the first condition that is satisfied will be executed, and subsequent conditions will not even be checked. Finally, you will learn about the ternary operator, which makes use of the ? and : symbols to create an if-else block and store the result in a variable. Upon completion of this course, you'll be able to work with control structures to change the flow of execution of a C program, use if and else conditions, and employ the ternary operator in assignments and expressions
Perks of Course
Certificate: Yes
CPD Points: 114
Compliance Standards: AICC

Control Structures in C: Looping & Unconditional Control Structures

Price on Request 2 hour
The three main types of looping control structures in C are for loops, while loops, and do-while loops. This course provides demos for how to work with looping and unconditional control structures in C. You will begin by creating a for loop which iterates over a block of code for as long as a certain condition is true. You will then experiment with the loop condition, the value of the loop variable, and the update expression for the loop variable, before moving on to iterating over arrays using for loops. You will also create nested for loops. Next, you will use while loops to execute some code while a condition is satisfied. You will explore the loop variable and iterate over arrays, then move on to do-while loops. Finally, you will learn about the unconditional control structures such as break, continue, goto, and return keywords. These are typically used with other control structures. After completing this course, you'll be able to implement while loops, for loops, do-while loops, break statements, and continue operators.
Perks of Course
Certificate: Yes
CPD Points: 122
Compliance Standards: AICC

Control Structures in C++: Range-based for Loops

Price on Request 1 hour 35 minutes
One of the many differences between modern C++ and classic C++ is the presence of range-based for loops. These were added to the standard in C++11 and allow for loops to iterate easily over a container and reduce the risk of off-by-one errors. They also eliminate the need for an integer index variable to index into a container. Start this course by reviewing how for loops work to iterate over arrays. Create arrays with different numbers of dimensions and iterate over the dimensions using nested for loops. Discover how to use containers from the standard template library to experiment with maps and vectors. Explore the use of the cbegin(), cend(), rbegin(), rend(), crbegin(), and crend() functions. Finally, use range-based for loops and explore the use of the debugger in this context. You will also note the important differences between value type loop variables in for loops and reference type variables.
Perks of Course
Certificate: Yes
CPD Points: 97
Compliance Standards: AICC

Control Structures in C++: Using Conditional Control Structures

Price on Request 1 hour 40 minutes
Control structures in C++ are syntactically very similar to those in C, but with some important differences. This course will help you learn to use control structures in C++ and better understand how they differ from those in C. You will start this course by going over the control structures available in C++. You will then move on to working with vectors and iterators over vectors, which are important parts of the standard template library. Finally, you will work with switch statements and learn some tips and tricks related to working with cases based on strings. Upon completion, you'll be able to use variables in the condition of an if-block to restrict its scope, and use switch statements with hash functions and the STL map object to switch based on the values of a string.
Perks of Course
Certificate: Yes
CPD Points: 98
Compliance Standards: AICC

Control Structures in Java: Implementing Java Control Structures

Price on Request 1 hour 45 minutes
Before you build any significant Java application, it is important to get familiar with controlling the flow of code using control structures - a fundamental concept in any programming language. And this is precisely the focus of this course. With the help of this course, you'll learn how to work with basic if statements, where code is executed if a certain condition is met and if-else and switch statements, which allow you to check for multiple conditions and run chunks of code accordingly. You'll then delve into for and while loops, which allow you to define a block of code that needs to be executed repeatedly under specific conditions and recognize the use of continue and break statements that influence their behavior. After finishing this course, you'll have the knowledge and skills to control the flow of code execution in your program based on the value of variables or the outcome of operations.
Perks of Course
Certificate: Yes
CPD Points: 103
Compliance Standards: AICC

Database Integration: Modeling Data Using JPA & Hibernate

Price on Request 1 hour 50 minutes
In order to build effective applications in Java, developers must understand how the apps interact with a database. Through this course, gain hands-on experience in defining entities and the relationship between them in a JPA application and their implementation with Hibernate. Begin by defining entities in an app that have identifiers based on a single as well as a combination of properties - i.e., single value primary keys and composite keys. You'll then explore CRUD operations (create, read, update, and delete) using JPA APIs. Finally, you'll delve into defining one-to-one, one-to-many, and many-to-many relationships between entities in an application. After you're done with this course, you'll have a solid grasp of how to define entities using JPA, model their relationships, and how Hibernate translates these into database relations.
Perks of Course
Certificate: Yes
CPD Points: 110
Compliance Standards: AICC

Database Integration: Overview of Using JPA & Hibernate

Price on Request 1 hour 15 minutes
Object-relational mapping (ORM) allows Java objects to be mapped to database tables and vice versa. Use this course to learn more about the Java Persistence API (JPA), which defines how Java objects and relational data should be mapped, and Hibernate, an object-relational mapping solution for Java environments. Start by exploring how to create an application that uses Hibernate APIs directly to interact with a database and examining hibernate configuration files in greater detail. You'll also investigate how Java objects can be created in an app and then persisted in a database and discover how the same operations can be implemented by applying JPA configurations, which then use Hibernate under the hood. Once you've completed this course, you'll be able to distinguish between JPA and Hibernate while also recognizing how they are connected.
Perks of Course
Certificate: Yes
CPD Points: 74
Compliance Standards: AICC

Design Patterns in JavaScript: Constructor, Factory, & Abstract Factory Creational Patterns

Price on Request 1 hour 30 minutes
Explore the Constructor, Factory, and Abstract Factory creational patterns in Javascript. In this 15-video course, learners examine how to use constructors to create and initialize objects and how to use Factory and Abstract Factory to create different kinds of objects. Key concepts covered in this course include features of the constructor pattern, which allows construction or creation of objects that meet a specific use case; how to use object literal notation to construct objects; and how to assign properties and functions to objects. You will learn how to use Object.create() and new Object() to create objects; learn how to create objects using functions and ES6 classes; and examine Factory and Abstract Factory patterns, two design patterns closely related to one another. Next, learn about helper functions for the Factory pattern; how to set up helper methods to implement the Factory pattern; and how to set up constructs and factories for the Abstract Factory pattern. Finally, learn about immediately-invoked functions for Factory pattern and how to implement Abstract Factory pattern.
Perks of Course
Certificate: Yes
CPD Points: 92
Compliance Standards: AICC

Design Patterns in JavaScript: Flyweight, Adapter, Composite, & Proxy Structural Patterns

Price on Request 2 hour
This 17-video course helps learners discover how to implement Flyweight, Adapter, Composite, and Proxy patterns to model structure between the components in a system. Examine inefficient memory usage, sharing memory, and centralized event handling with Flyweight pattern. Explore possible burdens on a client when the Adapter pattern is not used and how to provide a consistent interface by using adapters. Then learn to use Composite pattern in jQuery and Proxy pattern to cache data and specify context. Key concepts covered here include characteristics of Flyweight pattern; learning how to illustrate inefficient memory usage for granular objects; and how to wire up individual event handlers to HTML elements. You will observe how to centralize event handling with Flyweight pattern; how to articulate features of Adapter pattern; and how to illustrate burdens on clients when Adapter pattern is not used. Finally, learn about characteristics of Composite pattern; how to execute functions by using the right context; and how to apply Proxy pattern to provide the right context.
Perks of Course
Certificate: Yes
CPD Points: 121
Compliance Standards: AICC

Design Patterns in JavaScript: Getting Started

Price on Request 1 hour 15 minutes
Explore principles of good design and the three main categories of design patterns in this 11-video course. Examine anti-patterns, including their uses and what to avoid while writing code, then discover how to install NodeJS and NPM for MacOS and Windows. Key concepts covered in this course include how design patterns can be reusable solutions to common problems to the same situations that have come up repeatedly, and how programmers have developed design patterns in order to deal with these situations; principles of good design and architecture; and learning about anti-patterns as shortcuts that seasoned developers use to define or describe a bad solution to a problem that resulted in a poor outcome. You will learn about the uses of and programming of anti-patterns; learn Javascript-specific anti-patterns; and observe how to compare different types of design patterns, including creational patterns, structural design patterns, and behavioral design patterns. Finally, learn how to install required tools on a MacOS machine and how to install required tools on a Windows machine.
Perks of Course
Certificate: Yes
CPD Points: 76
Compliance Standards: AICC

Design Patterns in JavaScript: Mediator, State, & Command Behavioral Patterns

Price on Request 1 hour 15 minutes
Explore the Mediator, State, and Command behavioral design patterns, including how to implement them for modeling communication between components, in this 12-video course. Discover how to perform valid state transitions, implement the State pattern in React, and execute and undo commands. Key concepts covered here include characteristics of Mediator pattern, which is responsible for mediating communication between different components that exist in a system; how to set up Mediator as a workflow object; and how to use Mediator for communication. You will learn about characteristics of State pattern, which allows an object to alter its behavior, its display, or the way it reacts to events when its state changes; how to set up helper methods for State pattern; and how to implement State pattern in React. Continue by learning how to perform valid state transitions; observing characteristics of Command pattern, which is often used in order to implement undo and redo functionality in several applications; learning to implement Command pattern; and how to execute and undo commands.
Perks of Course
Certificate: Yes
CPD Points: 73
Compliance Standards: AICC

Design Patterns in JavaScript: Observer & Iterator Behavioral Patterns

Price on Request 1 hour 20 minutes
In this 12-video course, learners discover how to implement the Observer pattern for communication and the Iterator pattern to work with collections. Examine how to set up publishers and subscribers and the role of Observer pattern in event handling, then learn how to trigger custom events in jQuery, use Observer pattern with custom events, iterate over elements in a collection, and use Iterators in jQuery. Key concepts covered here include main characteristics of Observer pattern and how it is widely used in practice; how to implement publishers and subscribers; and how to publish messages with the publisher and receive them as subscribers. Learn about the role of Observer pattern in event handling; how to trigger custom events in jQuery; and observe how to design the Observer pattern with custom events in jQuery. Finally, learn about characteristics of Iterator pattern and how it allows access to elements within a collection in a sequential manner; how to implement Iterator Mixin; learn iterating over elements in a collection; and implement Iterators in jQuery.
Perks of Course
Certificate: Yes
CPD Points: 78
Compliance Standards: AICC

Design Patterns in JavaScript: Singleton, Prototype, & Builder Creational Patterns

Price on Request 1 hour 20 minutes
In this 14-video course, learners will discover how to implement Singleton, Prototype, and Builder patterns in Javascript. Examine how Singleton pattern is used for single object instantiation, how Prototype pattern is used for cloning, and how Builder pattern is used to construct complex objects. Key concepts covered in this course include basic principles of the Singleton pattern, an extremely popular and widely used creational design pattern; helper functions for Singleton pattern and how to implement it; and features of the Prototype pattern, which is used when the type of objects you want to create is determined by a prototypical instance. Learn how to implement the Prototype pattern and to apply best practices for Prototype pattern; learn characteristics of the Builder pattern, which separates construction of an object from how the object is actually represented; and learn how to use Builder pattern to construct complex objects. Finally, observe how to implement Builder pattern in jQuery, and how to use different methods in iQuery Builder pattern.
Perks of Course
Certificate: Yes
CPD Points: 79
Compliance Standards: AICC

Developing Apps with Tkinter: Configuring Interactive Widgets

Price on Request 1 hour
Widgets such as buttons, labels, and user-entry fields for input form the core of any GUI. Tkinter includes button, entry, and label objects and geometry managers in Tkinter allow you to choose how to position your widgets. You will begin this course by creating an interactive button widget which displays an exit prompt when clicked. Discover how to instantiate text entry widgets where users enter text input to a box. Set up an app where the user enters obscured password credentials into a text entry widget and submits them using a button widget. Finally, explore the grid, pack, and place geometry managers in Tkinter. Upon completion of this course, you will be able to configure interactive widgets in Tkinter and choose between place, pack, and grid geometry managers to optimize app layout.
Perks of Course
Certificate: Yes
CPD Points: 61
Compliance Standards: AICC

Developing Apps with Tkinter: Getting Started

Price on Request 1 hour 20 minutes
Desktop apps have been replaced by web applications in many cases, but remain widely used in many areas such as financial applications. Building desktop apps in Python is an important skill for many quantitative developers and financial data modelers. Python has many great libraries to create desktop applications including Tkinter, PyQt, and wxWidgets. You will focus on the Tkinter library which is a wrapper over the Tk library. Start this course by understanding some benefits and limitations of desktop applications. Explore some commonly-used libraries for GUI programming in Python, including PyQt, wxWidgets and PySimpleGUI, and contrast their strengths and weaknesses. After that, you will explore the Tkinter library. As you shall learn, this is a wrapper over the Tk library, which in turn is a wrapper of sorts over the tcl programming language. Tcl is a high-level programming language used to create Desktop GUIs. Explore the app you aim to build with Tkinter, demonstrating the use of database connectivity, interactive plotting widgets, as well as a complex GUI with many different widgets. Finally, install Tkinter and get up-and-running with deploying apps. To round out this course, you will create a simple app with a clock text label which automatically updates every second. After completing this course, you'll be able to identify the strengths and weaknesses of various Python UI libraries including Tkinter, PyQT, and wxWidgets and be ready to configure interactive widgets such as buttons and text entries.
Perks of Course
Certificate: Yes
CPD Points: 78
Compliance Standards: AICC

Developing Apps with Tkinter: Tree View Operations & Login and Sign-up Pages

Price on Request 1 hour 5 minutes
Displaying data using a tree view is useful, but even more useful are interactive tree views which perform actions in response to user inputs, such the selection of an item or a double-click on an item. Financial data is usually sensitive, so login and sign-up pages are great ways to authenticate a user of an app. Begin this course by adding an item-selection event handler to a tree view and create a similar stub handler for the double click. Discover how to modularize your code into different code files. After the modularization, confirm that the app is still functional. Then, you will add login and sign-up pages to the app. Finally, you will make an important change to the app by equipping it to figure out the schema of the relevant database table on the fly by referencing schema and metadata information. After completing this course, you will know how the tree view reacts to user actions, make the tree view robust to changes in the database schema, and add register and sign-in functionality to support authenticated data access.
Perks of Course
Certificate: Yes
CPD Points: 64
Compliance Standards: AICC

Developing Apps with Tkinter: Working with File Dialogs & Tree Views

Price on Request 1 hour 20 minutes
File dialogs are powerful and versatile widgets that allow the user to navigate their local file system and upload a file, which can then be processed by the app. Tkinter offers file dialog functionality out-of-the-box and includes the tree view widget which can be used to represent either tabular or hierarchical data. Begin this course by creating Tkinter applications using an inheritance-based approach where you extend built-in Tkinter classes. Explore the tree view widget where you will represent simple tabular data in a tree view, create an app that displays the data in a Pandas data frame, and add scroll bars to a tree view. Finally, learn how to allow users to navigate and choose files using an upload file dialog, create a file picker, and add various dialogs and alerts related to the user's choice. Upon completion of this courses, you'll know how to allow an app to accept user uploaded files, validate and store files in a pandas data frame, and display the contents using a tree view.
Perks of Course
Certificate: Yes
CPD Points: 78
Compliance Standards: AICC

Effective RAD: Agile Rapid Application Development

Price on Request 1 hour 15 minutes
Agile principles will be reviewed and how they can be applied to Rapid Application Development and also how to manage Agile quality to prevent issues. The effectiveness of rapid software prototyping will be discussed along with methods and processes for delivering software at a higher velocity.
Perks of Course
Certificate: Yes
CPD Points: 74
Compliance Standards: AICC

Effective RAD: Rapid Application Development

Price on Request 1 hour 10 minutes
Rapid Application Development can rapidly deliver software solutions that keep your customers engaged and provide the benefits that they are looking for. In this course, you'll learn about the RAD methodology, including its advantages and disadvantages, and the traditional Waterfall System Development Life Cycle methodology. You'll then examine comparisons of RAD with the traditional Waterfall SDLC methodology and with the Agile framework. Next, you'll learn about the considerations and characteristics of RAD and the best practices when performing rapid software delivery. You'll explore the customer-oriented RAD framework, including best practices, and available RAD tools and frameworks. Lastly, you'll learn about cross-platform RAD tools and frameworks and how to create an application using the Xamarin development tool.
Perks of Course
Certificate: Yes
CPD Points: 70
Compliance Standards: AICC

Encapsulating Business Logic with Jakarta: Advanced Topics in Enterprise Beans

Price on Request 1 hour 40 minutes
Through this course, learn how to perform specialized tasks using advanced forms of enterprise beans, such as message-driven beans, the timer service, and the integration of beans with a relational database. You'll examine how to set up a message queue in an application server, develop both the consumer bean and the producer program, and implement the enterprise beans timer service. This course will also help you explore the steps involved in setting up a data source to connect to a relational database and using it to integrate your enterprise beans to such a database. After finishing this course, you'll have gained a deeper understanding of the different use cases and features of Jakarta Enterprise Beans.
Perks of Course
Certificate: Yes
CPD Points: 99
Compliance Standards: AICC

Encapsulating Business Logic with Jakarta: An Overview of Enterprise Beans

Price on Request 1 hour 55 minutes
An enterprise bean is a server-side component written in the Java programming language that simplifies the development of large, distributed applications. Get familiar with the fundamentals of enterprise beans and the most basic form of such beans, i.e., session beans using this course. You'll get a chance to examine the implementation of enterprise beans, set up an application server that can host enterprise beans, and explore different types of session beans. You'll also investigate how to develop a basic session bean, deploy it to the application server, and access it from a client application. Upon completion of this course, you'll have a foundational understanding of enterprise beans and how they encapsulate the business logic of an application.
Perks of Course
Certificate: Yes
CPD Points: 117
Compliance Standards: AICC

Exception Handling in C++

Price on Request 1 hour 45 minutes
Exceptions are the most popular form of error handling and the try-catch block is superior to all other error handling mechanisms because it forces the invoking function to manage the errors. In this course, learn how exceptions are thrown and caught. Next, practice creating and using custom exception objects and discover why exceptions must be caught by reference. Finally, explore object slicing results, the semantics and limitations of the noexcept keyword, and the pitfalls of exceptions that occur within constructors. Upon completion, you'll be able to correctly throw and handle exceptions using try/catch blocks, enumerate semantics and limitations of the noexcept keyword, and mitigate problems related to exceptions thrown during the construction of an object.
Perks of Course
Certificate: Yes
CPD Points: 107
Compliance Standards: AICC

Faust: Getting Started with Stream Processing

Price on Request 1 hour 45 minutes
Faust is a stream processing library that allows you to write code to process data available as streams. In this course, you'll explore the basics of stream processing and how it fundamentally differs from batch processing. You'll start by examining the components of a stream processing system architecture, specifically the role of stream transport. You'll then investigate the Faust stream processing library, which uses native Python code for transformations on streaming data. Moving on, you'll explore what's meant by producers, consumers, and topics in Apache Kafka. You'll install Faust on your local machine as well as the Apache Kafka messaging service. You'll then use these to write a stream processing application. When you're finished with this course, you'll be able to clearly articulate the characteristics of stream processing and work with Apache Kafka and Faust to perform simple operations on input streams.
Perks of Course
Certificate: Yes
CPD Points: 106
Compliance Standards: AICC

Faust: Performing Operations & Maintaining State Using Tables

Price on Request 1 hour 35 minutes
Faust streams support a wide range of operations. In this course, you'll learn how to perform several of these. You'll also work with Faust tables - which store state in the form of key-value pairs and allow for the recovery of failed processing, making Faust fault-tolerant. You'll start off by using the group by operation to designate a key used to repartition an input stream and create a new topic in Kafka. You'll then use the items() operation to access the key and message value and take() operation to buffer multiple elements in a stream. Next, you'll work with tables to conduct stateful stream processing, illustrating how table data is stored in an embedded RocksDB database. When you've finished this course, you'll be able to apply a wide range of operations on input streams and perform stateful stream processing using tables.
Perks of Course
Certificate: Yes
CPD Points: 97
Compliance Standards: AICC

Faust: Stream Processing Using Models, Agents, & Channels

Price on Request 1 hour 30 minutes
Stream processing in Faust uses native Python code, meaning you don't have to learn a new domain-specific language to perform data transformations. All you need to know is how existing concepts, such as models, work within a Faust context. Faust models allow you to specify fields and their data types and use this well-defined data structure to access streaming data. In this course, you'll learn how to represent the individual elements of a stream using Faust models. You'll work with agents, which are at the heart of every Faust stream processing application. You'll perform operations using agents and invoke agents synchronously and asynchronously from within your application. You'll then work with channels in Faust. At the end of this course, you'll have the confidence to use models, agents, and channels in the right way to build a successful application.
Perks of Course
Certificate: Yes
CPD Points: 91
Compliance Standards: AICC

Faust: Stream Processing Using Windowing Operations

Price on Request 1 hour 30 minutes
When working with data, windows are a handy tool to accumulate data subsets from input streams and perform aggregation operations on this specific data. In this course, you'll learn how to perform stream processing through windowing operations in Faust. You'll start by examining the different windowing operations possible on input streams, including tumbling, sliding, count, session, and global windows. Next, you'll distinguish the three notions of time associated with streaming events: event, ingestion, and processing time. You'll then use Faust window features to perform windowing operations on input streams and emit aggregation results for every window. Finally, you'll use the REST API server, which all Faust applications have, to make streaming code metrics and table data accessible to the user. Once you're done with this course, you'll be able to use windowing operations via Faust and expose metrics using web views.
Perks of Course
Certificate: Yes
CPD Points: 88
Compliance Standards: AICC

File Handling in C++: Performing Advanced File Stream Operations

Price on Request 1 hour 55 minutes
The insertion and extraction operators are very commonly overloaded in custom C++ classes. Such overloads make it easy to write objects out to cout or to file and read objects in from cin or a file. In this course, learn how to correctly overload the insertion and extraction operators for streams and explore different aspects of text data streaming. Next, work with different file open modes, including read, write, append, and ate modes. Finally, practice using the stream state bits contained within stream objects. Upon completion, you'll be able to leverage file open modes, check stream state bits, and correctly use the std::filesystem API.
Perks of Course
Certificate: Yes
CPD Points: 115
Compliance Standards: AICC

File Handling in C++: Working with File Streams

Price on Request 55 minutes
C++ structures different file stream classes into an inheritance hierarchy. Input and output (I/O) operations are performed in C++ through streams, which act as intermediaries between the program and I/O devices, allowing programmers to not focus on how the actual device works. In this course, learn about the different classes and objects for C++ stream handling. Next, discover how to read data from files using objects of the ifstream class. Finally, practice writing out data to files using objects of the ofstream class, including writing out simple integers, floats, strings, and structured data. Upon completion, you'll be able to enumerate C++ file stream classes, read data from files using ifstream, and write data to files using ofstream.
Perks of Course
Certificate: Yes
CPD Points: 57
Compliance Standards: AICC