Duration 3 Days 18 CPD hours This course is intended for Incoming attendees are required to have current, hands-on experience in developing basic web applications. Student should have some experience with HTML and CSS and be well versed in JavaScript. Experience with coding for the server side would be helpful. Overview This skills-focused course is approximately 50% hands-on. Our engaging instructors and mentors are highly experienced practitioners who bring years of current 'on-the-job' experience into every classroom. Working in a hands-on learning environment, guided by our expert team, attendees will learn to: Learn server-side JavaScript coding through Node.js Explore the latest JavaScript features, and ECMAScript modules Walk through different stages of developing robust applications using Node.js Install and use Node.js for development Use the Express application framework Work with REST service development using the Restify framework Use data storage engines such as MySQL, SQLITE3, and MongoDB Node.js is a server-side JavaScript platform using an event-driven, non-blocking I/O model allowing users to build fast and scalable data-intensive applications running in real time.This fast-paced hands-on course provides the core skills required to develop web applications with Node.js. You will progress from a rudimentary knowledge of JavaScript and server-side development to being able to create, maintain and test your own Node.js applications. You will explore the importance of transitioning to functions that return Promise objects, and the difference between fs, fs/promises and fs-extra, as well as how to use the HTTP Server and Client objects, and data storage with both SQL and MongoDB databases. Overview of Node.js The capabilities of Node.js Why should you use Node.js? The Node.js event-driven architecture Embracing advances in the JavaScript language Developing microservices or maxiservices with Node.js Setting Up Node.js System requirements Installing Node.js using package managers Installing from the source on POSIX-like systems Installing multiple Node.js instances with nvm Requirements for installing native code modules Choosing Node.js versions to use and the version policy Choosing editors and debuggers for Node.js Running and testing commands Advancing Node.js with ECMAScript 2015, 2016, 2017, and beyond Using Babel to use experimental JavaScript features Exploring Node.js Modules Defining a Node.js module Finding and loading modules using require and import Using npm ? the Node.js package management system The Yarn package management system HTTP Servers and Clients Sending and receiving events with EventEmitter Understanding HTTP server applications HTTP Sniffer ? listening to the HTTP conversation Web application frameworks Getting started with Express Creating an Express application to compute Fibonacci numbers Making HTTPClient requests Calling a REST backend service from an Express application Your First Express Application Exploring Promises and async functions in Express router functions Architecting an Express application in the MVC paradigm Creating the Notes application Theming your Express application Scaling up ? running multiple Notes instances Implementing the Mobile-First Paradigm Understanding the problem ? the Notes app isn't mobile friendly Learning the mobile-first paradigm theory Using Twitter Bootstrap on the Notes application Flexbox and CSS Grids Mobile-first design for the Notes application Using third-party custom Bootstrap themes Data Storage and Retrieval Remembering that data storage requires asynchronous code Logging and capturing uncaught errors Storing notes in a filesystem Storing notes with the LevelDB datastore Storing notes in SQL with SQLite3 Storing notes the ORM way with Sequelize Storing notes in MongoDB Additional course details: Nexus Humans Introduction to Node.js (TT4153) training program is a workshop that presents an invigorating mix of sessions, lessons, and masterclasses meticulously crafted to propel your learning expedition forward. This immersive bootcamp-style experience boasts interactive lectures, hands-on labs, and collaborative hackathons, all strategically designed to fortify fundamental concepts. Guided by seasoned coaches, each session offers priceless insights and practical skills crucial for honing your expertise. Whether you're stepping into the realm of professional skills or a seasoned professional, this comprehensive course ensures you're equipped with the knowledge and prowess necessary for success. While we feel this is the best course for the Introduction to Node.js (TT4153) course and one of our Top 10 we encourage you to read the course outline to make sure it is the right content for you. Additionally, private sessions, closed classes or dedicated events are available both live online and at our training centres in Dublin and London, as well as at your offices anywhere in the UK, Ireland or across EMEA.
Join our webinar to discover our best practice advice on how to effectively promote and sell your educational services. Don't miss this opportunity to enhance your course marketing skills and boost your sales. Join us for this engaging webinar and take your educational offerings to new heights.
Duration 4 Days 24 CPD hours This course is intended for This course is designed for platform developers, UI developers, solution architects, and technical architects who are responsible for the setup, configuration, or maintenance of OmniStudio applications or Salesforce Industry Cloud apps. You should have a solid understanding of basic Salesforce concepts and functionality, including Lightning Web Components (LWC), as well as experience working with relational databases and familiarity with JSON. Ideally, you hold the Salesforce Administrator or Salesforce Platform Developer I credential. This class is recommended for anyone looking to earn their Salesforce Certified OmniStudio Developer credential. Overview Create FlexCards and build an OmniStudio Interaction Console to improve customer experience. Create OmniScripts to ensure productive, consistent user engagement. Use Integration Procedures to execute complex operations on the server and incorporate external data sources. Create and modify DataRaptors to get data from Salesforce, transform data, and save data back to Salesforce. Create Calculation Matrices and Calculation Procedures to execute data lookups and calculations. Discover how to develop engaging, digital-first guided experiences using OmniStudio tools. In this class, our OmniStudio experts will show you how to use FlexCards, OmniScripts, and the OmniStudio Interaction Console to configure applications that elevate the user experience. You?ll learn how to retrieve and transform internal and external data using declarative OmniStudio data tools to get a 360-degree view of customer accounts, empowering you to quickly deliver high-quality, consumer-grade experiences that your users expect. Introduction to OmniStudio Explore OmniStudio Tools and Resources OmniStudio LWC Learn the Benefits and Features of OmniStudio LWC and Component Types FlexCards and Omnistudio Interaction Consoles Design and Build Parent and Child FlexCards Assign Data Sources to FlexCards, Including External Data Sources Configure Fields to Display Data and Configure Actions to Launch OmniScripts from FlexCards Configure FlexCard Flyouts to Display Additional Data Configure Conditions to Display Different Flexcard States Build an OmniStudio Interaction Console OmniScripts Design and Build Simple and Complex OmniScripts Configure OmniScript Elements such as Type Ahead Blocks Configure Element Properties such as Branching Conditions Configure Simple Error Checking Add External Data to an OmniScript Connect an Interaction Launcher to a Console Toolbar Integration Procedures and OmniStudio Data Tools Learn How OmniStudio uses Salesforce sObjects and Fields Learn How Data Flows Between OmniScripts and Integration Procedures Build Integration Procedures and DataRaptors for OmniScripts and FlexCards Use a DataRaptor to Transform FlexCard Data JSONs Build Calculation Matrices and Procedures Test and Troubleshoot Components in the OmniStudio Interaction Console Additional course details: Nexus Humans Salesforce Build Guided Experiences with OmniStudio (OMS435) training program is a workshop that presents an invigorating mix of sessions, lessons, and masterclasses meticulously crafted to propel your learning expedition forward. This immersive bootcamp-style experience boasts interactive lectures, hands-on labs, and collaborative hackathons, all strategically designed to fortify fundamental concepts. Guided by seasoned coaches, each session offers priceless insights and practical skills crucial for honing your expertise. Whether you're stepping into the realm of professional skills or a seasoned professional, this comprehensive course ensures you're equipped with the knowledge and prowess necessary for success. While we feel this is the best course for the Salesforce Build Guided Experiences with OmniStudio (OMS435) course and one of our Top 10 we encourage you to read the course outline to make sure it is the right content for you. Additionally, private sessions, closed classes or dedicated events are available both live online and at our training centres in Dublin and London, as well as at your offices anywhere in the UK, Ireland or across EMEA.
Duration 5 Days 30 CPD hours This course is intended for This course is designed for programmatic developers looking to write programmatic customizations to both business logic and UI layers using Apex and Visualforce. You should have a good understanding of core object-oriented programming concepts and experience building declarative solutions on the Salesforce Platform. This course is also a great foundation builder if you're looking to earn your Salesforce Platform Developer I credential. IMPORTANT: Students are expected to follow the steps detailed in the Computer Set-up Guide for this class if you'll be using your own computer when attending a virtual or in-person class. Overview Learn modern tools for developing on the Salesforce Platform using Visual Studio Code, the Salesforce Extension Pack, and the Salesforce CLI. Write business logic customizations using Apex triggers and classes; those customizations will use SOQL and DML. Design programmatic solutions that take advantage of declarative customizations. Describe how your trigger code works within the basics of the Save Order of Execution. Describe some of the fundamental aspects of designing programs on a multi-tenant platform. Write Visualforce markup and code to customize the user interface. Use the built-in testing framework to test Apex and Visualforce. Learn how to customize and design applications programmatically on the Salesforce Platform. In this 5-day class, our platform experts will introduce you to Apex (Salesforce?s programming language) and Visualforce markup, so you can customize your Salesforce applications using code and explore how Apex interacts with declarative customizations on the platform. Learn how to retrieve, manipulate, and store data programmatically in data objects (sObjects), write and test custom logic, write Visualforce pages to customize your user interface, and deploy your solutions to another environment. Get an overview of the declarative automation tools available on the platform and a brief introduction to the Lightning Component framework. Plus, explore the nuances of working on a multi-tenant platform so you can extend the platform to meet business demands. Declarative Automation Create Formula Fields Create Roll-Up Summary Fields Understand Record Types Review Other Automation Tools Build a Data Model on the Salesforce Platform Programming with Apex Describe Key Aspects of Apex That Differentiate It from Other Languages, Such as Java and C# Describe Why Apex Transactions and Governor Limits Must Be Considered When Writing Apex Execute Simple Apex Use the sObject Data Type, the Primitive Data Types, and Basic Control Statements in Apex Using SOQL and SOSL to Retrieve Your Org?s Data Write a Basic Query Using Salesforce?s Query Language, SOQL Process the Result of a Query in Apex Create a Query Dynamically at Run-Time Use SOQL to Query Parent-Child Relationships Describe a Relationship Query Write a Query That Traverses a Child-to-Parent Relationship Write a Query That Traverses a Parent-to-Child Relationship Use SOSL to Search Data Using DML to Manipulate Your Org?s Data List the Differences Between the Ways You Can Invoke DML Operations Write Apex to Invoke DML Operations and Handle DML Errors Deployment What Is Deployment? Deploy Code Using Change Sets Use the Ant Migration Tool Review Managed and Unmanaged Packages Explore Salesforce DX Trigger Essentials Describe What a Trigger Is Used For Describe the Syntax of a Trigger Definition Use Trigger Context Variables Apex Class Essentials Describe How Apex Classes Are Used Define an Apex Class Determine What Data an Apex Class Can Access The Save Order of Execution, Apex Transactions, and Platform Events Describe Key Points in the Order of Execution Describe How Triggers Fit Into and Can Be Impacted by the Order of Execution Describe the Lifecycle of an Apex Transaction Describe the Memory Lifecycle for Static Attributes Use Platform Events for Immediate Error Logging Apex Testing Describe the Apex Testing Framework Create Test Data Write and Run an Apex Test Test Best Practices Strategies for Designing Efficient Apex Solutions Describe Best Practices for Writing Code That Is Easy to Maintain and Extend Write Triggers and Classes That Assume Batches of Data as Input Write Code That Works Efficiently with the Database, Both in Querying and Using DML Trigger Design Strategies List Declarative Mechanisms You Can Use to Implement Complex Business Logic, What Types of Problems They?re Best Used for, and Their Limitations Describe Ways in Which You Can Use Declarative Functionality to Improve Your Programmatic Solutions Working with Visualforce Create a Visualforce Page Reference a Standard Controller Launch a Visualforce Page Using a Custom Button Display Data from a Record in a Visualforce Page Reference Custom Controllers and Controller Extensions Work with List Controllers Visualforce Development Considerations and Testing Describe Common Limit Issues and Security Concerns Describe Strategies for Testing Visualforce Controllers Write Tests for Controller Constructors Write Tests for Action Methods, Getters, Setters, and Properties Lightning Components Create and Surface an Aura Component Create and Surface a Lightning Web Component Additional course details: Nexus Humans Salesforce Build Applications Programmatically on the Salesforce Platform (DEX450) training program is a workshop that presents an invigorating mix of sessions, lessons, and masterclasses meticulously crafted to propel your learning expedition forward. This immersive bootcamp-style experience boasts interactive lectures, hands-on labs, and collaborative hackathons, all strategically designed to fortify fundamental concepts. Guided by seasoned coaches, each session offers priceless insights and practical skills crucial for honing your expertise. Whether you're stepping into the realm of professional skills or a seasoned professional, this comprehensive course ensures you're equipped with the knowledge and prowess necessary for success. While we feel this is the best course for the Salesforce Build Applications Programmatically on the Salesforce Platform (DEX450) course and one of our Top 10 we encourage you to read the course outline to make sure it is the right content for you. Additionally, private sessions, closed classes or dedicated events are available both live online and at our training centres in Dublin and London, as well as at your offices anywhere in the UK, Ireland or across EMEA.
In partnership with Mercy Corps, DisasterReady developed a no-cost certificate program comprised of online courses, interactive scenarios, and a test covering best practices of procurement, warehousing, fleet management, and asset management. https://www.disasterready.org/procurement-logistics-certificate
In partnership with Save the Children, DisasterReady developed a free assessment-based certificate program comprised of ten online courses and a test to help you prepare for, mitigate, and respond to risks in order to deliver on your mission. https://www.disasterready.org/certificate-safety-security
Duration 3 Days 18 CPD hours This course is intended for This is an introductory level React development course for web developers. Overview Our engaging instructors and mentors are highly experienced practitioners who bring years of current 'on-the-job' experience into every classroom. Working in a hands-on learning environment, guided by our expert team, attendees will learn about and explore: A basic and advanced understanding of React components An advanced, in-depth knowledge of how React works A complete understanding of using Redux How to build, validate, and populate interactive forms How to use inline styles for perfect looking components How to test React components How to build and use components How to get control of your build process Introduction to React | React Basics is a three-day hands-on course designed to get students quickly up and running with Core React skills. Geared for more experienced web developers new to React, this course provides students with the core knowledge and hands-on skills they require to build reliable, powerful React apps.Throughought the course students will explore React fundamentals with a progressive, example-driven approach. You?ll create your first apps, learn how to write components, start handling user interaction, and manage rich forms. We end the first part by exploring the inner workings of Create React App (Facebook?s tool for running React apps), and building a multi-page app that uses client-side routing.Every project in this course was built using Create React App. Create React App is based on Webpack, a tool which helps process and bundle our various JavaScript, CSS, HTML, and image files. We explore Create React App in-depth in the module ?Using Webpack with Create React App.?Students will build Single Page Applications (SPA), create robust routing with error handling, and both class and functional reusable components.The lab project will also include the use of form validation.NOTE: This is a foundational course that explores how to build your first React application. Students who want a deeper dive, withmore intermediate level topics such as Redux, REST, Unit Testing and more might consider the TT4195 Mastering React five-daysuperset of this class as an alternative. ES6 Primer Prefer const and let over var Arrow functions Modules Object.assign() Template literals The spread operator and Rest parameters Enhanced object literals Default arguments Destructuring assignments Your First React Web Application Setting up your development environment JavaScript ES6 /ES7 What?s a component? Building The App Making The App data-driven Your app?s first interaction JSX and the Virtual DOM React Uses a Virtual DOM Why Not Modify the Actual DOM? What is a Virtual DOM? Virtual DOM Pieces ReactElement JSX
Duration 2 Days 12 CPD hours This course is intended for This course is most valuable for individuals who have been given responsibilities to create or maintain a website. It will also be valuable for new web designers, web developers, and graphic artists who want to extend their skills in creating complete websites. Learning how to use Dreamweaver CC will enable the practitioner to create web pages and sites in the most efficient manner. This course can also be used to help prepare students to take the Adobe Certified Associate (ACA) exam. Overview Upon successful completion of this course, you will be able to develop interactive and engaging websites that are compatible with multiple display devices. You will: ?Identify website requirements.?Create layouts.?Format web pages.?Create forms.?Integrate media files with Dreamweaver.?Manage website files. In this course, you will use Adobe Dreamweaver CC to create fluid CSS layouts, implement mobile integration techniques, and share files over a server to work in a collaborative manner. Identifying Website Requirements Examine Website Design Considerations Examine Website Performance Parameters Creating Layouts Create a Fluid Layout Manage a Layout by Using CSS Formatting Web Pages Format Content in Code View Apply Advanced CSS Tools Add Behaviors Manage Links and Files Creating Forms Add a Form Container and Elements Validate a Form Integrating Media Files with Dreamweaver Integrate Photoshop Files in Dreamweaver Insert Video, Audio, and Mobile Files Implement PhoneGap Integration Managing Website Files Preview and Test a Website Share Website Files with Other Users Synchronize Website Files Additional course details: Nexus Humans Adobe Dreamweaver CC - Part 2 training program is a workshop that presents an invigorating mix of sessions, lessons, and masterclasses meticulously crafted to propel your learning expedition forward. This immersive bootcamp-style experience boasts interactive lectures, hands-on labs, and collaborative hackathons, all strategically designed to fortify fundamental concepts. Guided by seasoned coaches, each session offers priceless insights and practical skills crucial for honing your expertise. Whether you're stepping into the realm of professional skills or a seasoned professional, this comprehensive course ensures you're equipped with the knowledge and prowess necessary for success. While we feel this is the best course for the Adobe Dreamweaver CC - Part 2 course and one of our Top 10 we encourage you to read the course outline to make sure it is the right content for you. Additionally, private sessions, closed classes or dedicated events are available both live online and at our training centres in Dublin and London, as well as at your offices anywhere in the UK, Ireland or across EMEA.
Duration 5 Days 30 CPD hours This course is intended for This introductory-level, fast-paced course is for skilled web developers new to React who have prior experienced working HTML5, CSS3 and JavaScript. Overview Our engaging instructors and mentors are highly experienced practitioners who bring years of current 'on-the-job' experience into every classroom. Working in a hands-on learning environment, guided by our expert team, attendees will learn about and explore: A basic and advanced understanding of React components An advanced, in-depth knowledge of how React works A complete understanding of using Redux How to build, validate, and populate interactive forms How to use inline styles for perfect looking components How to test React components How to build and use components How to get control of your build process A deep understanding of data-driven modeling with props and state How to use client-side routing for pages in your apps How to debug a React application Mastering React is a comprehensive hands-on course that aims to be the single most useful resource on getting up to speed quickly with React. Geared for more experienced web developers new to React, this course provides students with the core knowledge and hands-on skills they require to build reliable, powerful React apps. After the first few modules, you?ll have a solid understanding of React?s fundamentals and will be able to build a wide array of rich, interactive web apps with the framework. The first module is an introduction to the new functionality in ECMAScript 6 (JavaScript). Client-side routing between pages, managing complex state, and heavy API interaction at scale are also covered. This course consists of two parts. In the first part of the course students will explore all the fundamentals with a progressive, example-driven approach. You?ll create your first apps, learn how to write components, start handling user interaction, and manage rich forms. We end the first part by exploring the inner workings of Create React App (Facebook?s tool for running React apps), writing automated unit tests, and building a multi-page app that uses client-side routing. The latter part of the course moves into more advanced concepts that you?ll see used in large, production applications. These concepts explore strategies for data architecture, transport, and management: Redux is a state management paradigm based on the Flux architecture. Redux provides a structure for large state trees and allows you to decouple user interaction in your app from state changes. GraphQL is a powerful, typed, REST API alternative where the client describes the data it needs. Hooks is the powerful, new way to maintain state and properties with functional components and the future of React according to Facebook. ES6 Primer (Optional) Prefer const and let over var Arrow functions Modules Object.assign() Template literals The spread operator and Rest parameters Enhanced object literals Default arguments Destructuring assignments Your first React Web Application Setting up your development environment JavaScript ES6 /ES7 Getting started What?s a component? Our first component Building the App Making the App data-driven Your app?s first interaction Updating state and immutability Refactoring with the Babel plugin transform-class-properties JSX and the Virtual DOM React Uses a Virtual DOM Why Not Modify the Actual DOM? What is a Virtual DOM? Virtual DOM Pieces ReactElement JSX JSX Creates Elements JSX Attribute Expressions JSX Conditional Child Expressions JSX Boolean Attributes JSX Comments JSX Spread Syntax JSX Gotchas JSX Summary Components A time-logging app Getting started Breaking the app into components The steps for building React apps from scratch Updating timers Deleting timers Adding timing functionality Add start and stop functionality Methodology review Advanced Component Configuration with props, state, and children ReactComponent props are the parameters PropTypes Default props with getDefaultProps() context state Stateless Components Talking to Children Components with props.children Forms Forms 101 Text Input Remote Data Async Persistence Redux Form Modules Unit Testing & Jest Writing tests without a framework What is Jest? Using Jest Testing strategies for React applications Testing a basic React component with Enzyme Writing tests for the food lookup app Writing FoodSearch.test.js Routing What?s in a URL? React Router?s core components Building the components of react-router Dynamic routing with React Router Supporting authenticated routes Intro to Flux and Redux Why Flux? Flux is a Design Pattern Flux implementations Redux & Redux?s key ideas Building a counter The core of Redux The beginnings of a chat app Building the reducer() Subscribing to the store Connecting Redux to React Intermediate Redux Using createStore() from the redux library Representing messages as objects in state Introducing threads Adding the ThreadTabs component Supporting threads in the reducer Adding the action OPEN_THREAD Breaking up the reducer function Adding messagesReducer() Defining the initial state in the reducers Using combineReducers() from redux React Hooks Motivation behind Hooks How Hooks Map to Component Classes Using Hooks Requires react 'next' useState() Hook Example useEffect() Hook Example useContext() Hook Example Using Custom Hooks Using Webpack with Create React App JavaScript modules Create React App Exploring Create React App Webpack basics Making modifications Hot reloading; Auto-reloading Creating a production build Ejecting Using Create React App with an API server When to use Webpack/Create React App Using GraphQL Your First GraphQL Query GraphQL Benefits GraphQL vs. REST GraphQL vs. SQL Relay and GraphQL Frameworks Chapter Preview Consuming GraphQL Exploring With GraphiQL GraphQL Syntax 101 . Complex Types Exploring a Graph Graph Nodes ; Viewer Graph Connections and Edges Mutations Subscriptions GraphQL With JavaScript GraphQL With React
Duration 5 Days 30 CPD hours This course is intended for In order to be successful in this course you should have incoming hands-on experience with another programming language. This course is not for non-developers or new developers. Possible roles that may attend this course include: Software Developers: Professionals who have been working with other programming languages and want to expand their skillset by learning Java and its object-oriented features. Web Developers: Those who work on web applications and want to enhance their back-end development capabilities with Java. Mobile App Developers: Developers who wish to enter the world of Android app development, where Java is a widely used language for creating mobile applications. Overview This 'skills-centric' course is about 50% hands-on lab and 50% lecture, designed to train attendees in core OO coding and Java development skills, coupling the most current, effective techniques with the soundest industry practices. Our engaging instructors and mentors are highly experienced practitioners who bring years of current 'on-the-job' experience into every classroom. Working in a hands-on learning environment, guided by our expert team, attendees will learn to: Understand what OO programming is and what the advantages of OO are in today's world Work with objects, classes, and OO implementations Understand the basic concepts of OO such as encapsulation, inheritance, polymorphism, and abstraction Understand not only the fundamentals of the Java language, but also its importance, uses, strengths and weaknesses Understand the basics of the Java language and how?it relates to OO programming and the Object Model Learn to use Java exception handling Understand and use classes, inheritance and polymorphism Understand and use collections, generics, autoboxing, and enumerations Become familiar with the concept of functional programming using Lambda Expressions Process large amounts of data using the Stream API introduced in Java 8 Discover the new Date/Time API Use the JDBC API for database access Work with annotations Take advantage of the Java tooling that is available with the programming environment being used in the class Java 8 Features: Lambda Expressions, Method and Constructor references, The Streams API, Collectors, The Optional class Geared for experienced developers, Basic Java Programming for Developers New to OO, this hands-on, workshop-style course will provide you with an immersive learning experience that will expand your skillset and open doors to new opportunities within the ever-growing technology landscape. Mastering Java and its powerful capabilities will provide you with the competitive edge you need to stand out in today's fast-paced development world. Working in a hands-on learning environment led by our expert coach, you?ll thoroughly explore the foundations of the Java platform, essential programming concepts, and advanced topics, ensuring you acquire a strong understanding of the language and its ecosystem. The object-oriented programming principles taught in this course promote code reusability and maintainability, enabling you to streamline development processes and reduce long-term costs. As you progress through the course, you will also gain familiarity with using an IDE, enhancing your development workflow and collaboration with other Java developers, enabling you to integrate seamlessly into new projects and teams. You?ll also gain practical experience in applying the concepts and techniques learned, solidifying your newly acquired skills and facilitating their direct application in real-world scenarios. You?ll exit this course empowered to create robust, scalable, and efficient Java-based applications that drive innovation and growth for your organization The Java Platform The Java Platform Lifecycle of a Java Program Responsibilities of JVM Documentation and Code Reuse Using the JDK Explain the JDK?s file structure Use the command line compiler to compile a Java class Use the command line Java interpreter to run a Java application class The IntelliJ Paradigm Introduce the IntelliJ IDE The Basics of the IntelliJ interface IntelliJ Projects and Modules Creating and running Java applications Writing a Simple Class Write a Java class that does not explicitly extend another class Define instance variables for a Java class Create object instances Primitives vs Object References Implement a main method to create an instance of the defined class Adding Methods to the Class Write a class with accessor methods to read and write instance variables Write a constructor to initialize an instance with data Write a constructor that calls other constructors of the class to benefit from code reuse Use the this keyword to distinguish local variables from instance variables Object-Oriented Programming Real-World Objects Classes and Objects Object Behavior Methods and Messages Inheritance, Abstraction, and Polymorphism Encapsulation Inheritance Method Overriding Polymorphism Essential Java Programming Essential Java Programming Language Statements Arithmetic operators Operators to increment and decrement numbers Comparison operators Logical operators Return type of comparison and logical operators Use for loops Switch Expressions Switch Expressions and yield Using Strings and Text Blocks Create an instance of the String class Test if two strings are equal Get the length of a string Parse a string for its token components Perform a case-insensitive equality test Build up a string using StringBuffer Contrast String, StringBuffer,and StringBuilder Compact Strings Text Blocks Specializing in a Subclass Constructing a class that extends another class Implementing equals and toString Writing constructors that pass initialization data to parent constructor Using instanceof to verify type of an object reference Pattern matching for instanceof Overriding subclass methods Safely casting references to a more refined type Fields and Variables Discuss Block Scoping Rules Distinguish between instance variables and method variables within a method Explain the difference between the terms field and variable List the default values for instance variables Final and Static fields and methods Local Variable type inference Using Arrays Declaring an array reference Allocating an array Initializing the entries in an array Writing methods with a variable number of arguments Records Data Objects in Java Introduce records as carrier of immutable data Defining records Java Packages and Visibility Use the package keyword to define a class within a specific package Discuss levels of accessibility/visibility Using the import keyword to declare references to classes in a specific package Using the standard type naming conventions Visibility in the Java Modular System Correctly executing a Java application class The Java modular system Defining Modules Inheritance and Polymorphism Write a subclass with a method that overrides a method in the superclass Group objects by their common supertype Utilize polymorphism Cast a supertype reference to a valid subtype reference Use the final keyword on methods and classes to prevent overriding Interfaces and Abstract Classes Define supertype contracts using abstract classes Implement concrete classes based on abstract classes Define supertype contracts using interfaces Implement concrete classes based on interfaces Explain advantage of interfaces over abstract classes Explain advantage of abstract classes over interfaces Static, default and private methods in interfaces Sealed classes Introduce Sealed classes The sealed and permits modifiers Sealed Interfaces Exception Handling Introduction to Exception Handling Introduce the Exception architecture Defining a try/catch blocks Checked vs Unchecked exceptions Exceptions Defining your own application exceptions Automatic closure of resources Suppressed exceptions Handling multiple exceptions in one catch Helpful Nullpointers Enhanced try-with-resources Java Developer's Toolbox Developing applications Introduce the wrapper classes Explain Autoboxing and Unboxing Converting String representations of primitive numbers into their primitive types Defining Enumerations Using static imports Deprecating methods Advanced Java Programming Introduction to Generics Generics and Subtyping Bounded Wildcards Generic Methods Legacy Calls To Generics When Generics Should Be Used Lambda Expressions and Functional Interface Understanding the concept of functional programming Writing lambda expressions Understanding functional interfaces Collections Provide an overview of the Collection API Review the different collection implementations (Set, List and Queue) Explore how generics are used with collections Examine iterators for working with collections Using Collections Collection Sorting Comparators Using the Right Collection Lambda expressions in Collections Bonus Topics: Time Permitting Streams Understanding the problem with collections in Java Thinking of program solutions in a declarative way Use the Stream API to process collections of data Understand the difference between intermediate and terminal stream operations Filtering elements from a Stream Finding element(s) within a Stream Collecting the elements from a Stream into a List takeWhile and dropWhile intermediate operations Collectors Using different ways to collect the items from a Stream Grouping elements within a stream Gathering statistics about numeric property of elements in a stream