Duration 2 Days 12 CPD hours This course is intended for This Introductory-level course is targeted for aspiring web developers who have software development experience or background. The course can also be adjusted for non-developers upon request. Overview This 'skills-focused' course is approximately 50% hands-on, combining expert lecture, real-world demonstrations and group discussions with machine-based practical labs and exercises. Our instructors are highly experienced practitioners who bring years of current 'on-the-job' experience into every classroom. Introduction to HTML5/ CSS3 and Responsive Design Basics is a hands-on basic web development course geared for developers who need to understand what the latest in web technologies and responsive design practices that are central to targeting the entire spectrum of user platforms and browsers. This comprehensive course provides a balanced mixture of theory and practical labs designed to take students through HTML5 and CSS3. Students who attend this course will leave this course armed with the new skills to design, implement, and deploy robust, flexible, and safe web applications. HTML Define HTML and review its history Look at XHTML and its relationship to HTML Identify HTML limitations and improvements HTML5 HTML5 Overview HTML5 Semantic Structure HTML5 Forms HTML5 Media Delivery CSS Learn the basics of CSS Meaning of cascading in CSS Declaring CSS within your HTML page Creating styles in an external CSS file Control how to display and position HTML elements Overriding standard tag behavior Adding new classes Using custom classes in your page CSS3 Overview What is new in CSS3 The Advantages of CSS3 Browser Support for CSS3 CSS3 Advanced Selectors Selecting Using Attributes Selecting Using DOM Structure Complex Selecting using Pseudo-Classes Selecting Using UI Components and State CSS3 Visual Effects Font Options, Opacity, and Color Distributing Content Across Columns Working with Borders and Boxes Working with Vendor Prefixes Functional Techniques HTML5 JavaScript API Cross-Domain Messaging Working with Web Storage Offline with Application Cache Geolocation: What, Why, and How Responsive Web Design (RWD) Adapting to Varying Screen Sizes Scaling Page and Text Content Scaling and Adapting for Media Options for Adjusting Media Additional course details: Nexus Humans Web Essentials | Introduction to HTML5, CSS3 and Responsive Design (TT4002) 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 Web Essentials | Introduction to HTML5, CSS3 and Responsive Design (TT4002) 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 3 Days 18 CPD hours This course is intended for This is an introductory level course for experienced software developers seeking to enhance and extend their core web development skillset leveraging JavaScript. Attendees should have practical experience developing basic software applications. This course provides an excellent foundation for continued learning to gain in-demand skills in in-demand skills and technologies such as NodeJS, Angular, React, Redux and more. This course can also be tailored for less experienced or non-developers as needed. Please inquire for details. Overview Throughout this course, students will explore the practical use of the umbrella of technologies that work in conjunction with JavaScript as well as some of the tools, toolkits, and frameworks that can be used in conjunction with web development and deployment. The course thoroughly explores JavaScript and how it is used within the context of web applications, walking students through the different technologies that are used with JavaScript and exploring core aspects of JavaScript in terms of web applications, security, tools, and frameworks. This skills-focused course is approximately 50% hands-on lab to lecture ratio. Our instructors are highly experienced practitioners who bring years of current 'on-the-job' experience into every classroom. Working within in a hands-on learning environment guided by our expert team, attendees will learn to: Understand what JavaScript is and how it is used within the context of web applications Work with the different technologies that are the foundation for web applications. Understand and work with the fundamental aspects of JavaScript in terms of web applications, security, tools, and frameworks Learn to how to effectively work with the newest advances in JavaScript such as ES6 and TypeScript Develop code using conventions and optimal constructs for performance Introduction to JavaScript | Modern JavaScript Essentials is a hands-on geared for web developers who need to learn basic JavaScript to use with today's systems and architectures to build sophisticated web interfaces. The training will guide students through a balanced mixture of theory and practical labs to gain core JavaScript development skills and have them explore its related technologies through to the use of tools and libraries to ease the development of advanced web applications. Course attendees will be able to hit the ground running right after class, applying essential JavaScript to projects at both an architectural as well as a line by line coding level. HTML Refresher (optional) HTMLÿ HTML5 CSS Refresher (optional) CSSÿ CSS3 Overview Introduction to JavaScript JavaScript Basics Debugging Tools JavaScript Functions JavaScript Arrays, Math and Date JavaScript Event Handling and the DOM Object-Oriented JavaScript Advanced JavaScript Topics The Next Step TypeScript Introduction to JSON and Ajax JavaScript Best Practices JavaScript Scheduling, Execution, and Security HTML5 JavaScript API Working with XML (Optional) XML DOM Mechanics XSLT Applied Additional course details: Nexus Humans Introduction to JavaScript | Modern JavaScript Essentials (TT4110) 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 JavaScript | Modern JavaScript Essentials (TT4110) 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 In order to be successful in this class, incoming attendees are required to have current, hands-on experience in developing basic web applications, and be versed in HTML5, CSS3 and JavaScript. This is an intermediate level web development class, designed for experienced web developers, new to Angular, that need to further extend their skills in modern web development. Overview At the end of this five-day course, students will have an application up and running that incorporates components, directives, custom pipes, reactive forms, routes, services, unit testing, and the REST API. They will add authentication, implement the Material library, and learn how to maintain state with NgRX. They will then take a deeper dive including making their own custom directives, lazy loading modules, and E2E testing. They will learn how to enhance their application with animations and create their own Angular library. Working within in an engaging, hands-on learning environment, guided by our expert team, attendees will learn explore: What Angular is and why should you use it How Angular reduces the amount of code that you must write to add rich functionality to both existing and new web pages What TypeScript is, why it is useful, and how to use it with Angular How to facilitate development and deployment using Angular CLI How to work with the various aspects of the Angular architecture to implement clean, responsive web interfaces How Routers can support navigation within a Single Page Application What the best practices are for using Angular so that it works unobtrusively and performs well How to use Angular with HTTP to support JSON, REST, and other services Working with the Ahead of Time compiler including its impact of developers and the development process How to defend against DOM-based XSS How to manage routing decisions based on pre-defined criteria such as a successful authentication How to meet huge data requirements by processing asynchronous data streams with RxJS Simplify server-side rendering How to facilitate unit testing Enhance an Angular user interface with animations and other advanced features Optimize Angular applications with various tools and techniques Maintain state within an Angular application What Angular 9 brings to the table and its relationship to Angular 8 Mastering Angular is a five-day, hands-on course that thoroughly explores the latest Angular features and advances, demonstrating how to solve the traditional challenges of JavaScript web application development. Throughout the course students will build custom components using application routes, form validation, and unit-testing. The course starts with an introduction of Angular CLI and TypeScript, and then delves into component-driven development with Angular components, covering data-binding, directives, services, routing, HTTP, the RxJS library, forms unit testing, and REST. Students will also learn how to add authentication, use the Material library, learn the NgRX design pattern to implement the NgRX store, make custom directives, enhance their application with animations, write an E2E test, and increase their application's efficiency by lazy loading modules and creating their own Angular library Angular Overview Overview of Angular Architecture Getting Started with Angular Getting Started with TypeScript Bootstrapping with Angular CLI Angular Project Structure Working with Angular Components and Events Third Party Libraries Dynamic Views Pipes Angular Forms Forms and the Forms API Single Page Applications and Routes Single Page Applications Services and Dependency Injection Modules Using RESTful Services Overview of REST Angular and REST Angular Best Practices Angular Style Guide What is New in Angular 9 Reactive Programming in Angular Working with RxJS Security and Authentication DomSanitizer JSON Web Tokens Route Guards Enhancing the Angular App Angular Animations Angular Material Angular Elements Deep Dive into Angular Testing and Angular Deep Dive into Components and Directives Deep Dive into Services and Dependency Injection Optimizing for the Enterprise Lazy Loading Optimizing with Universal Creating Your Own Angular Library Maintain State with NgRX NgRX Store Lesson: ES6+ Sass and SCSS for Angular and Material
Duration 2 Days 12 CPD hours This course is intended for The intended audience for this comprehensive course on Information Assurance and STIGs includes professionals with roles such as: IT professionals - System administrators, network engineers, and security analysts who are responsible for maintaining and securing IT infrastructure and web applications. Developers - Software engineers and web developers who design, implement, and maintain web applications, and need to integrate security best practices throughout the development process. Project teams - Cross-functional teams that collaborate on application development projects, including members from development, testing, and deployment teams. Technical leads - Senior software engineers or architects who oversee technical aspects of projects and ensure the implementation of secure design and coding practices. Project managers - Professionals responsible for planning, executing, and closing projects, ensuring that security requirements are met throughout the project lifecycle. Overview Working in an interactive learning environment, guided by our application security expert, you'll explore: The concepts and terminology behind defensive coding Threat Modeling as a tool in identifying software vulnerabilities based on realistic threats against meaningful assets The entire spectrum of threats and attacks that take place against software applications in today's world The role that static code reviews and dynamic application testing to uncover vulnerabilities in applications The vulnerabilities of programming languages as well as how to harden installations The basics of Cryptography and Encryption and where they fit in the overall security picture The requirements and best practices for program management as specified in the STIGS The processes and measures associated with the Secure Software Development (SSD) The basics of security testing and planning Understand the concepts and terminology behind defensive coding Understand Threat Modeling as a tool in identifying software vulnerabilities based on realistic threats against meaningful assets Learn the entire spectrum of threats and attacks that take place against software applications in today's world Discuss the role that static code reviews and dynamic application testing to uncover vulnerabilities in applications Understand the vulnerabilities of programming language as well as how to harden installations Understand the basics of Cryptography and Encryption and where they fit in the overall security picture Understand the fundamentals of XML Digital Signature and XML Encryption as well as how they are used within the web services arena Understand the requirements and best practices for program management as specified in the STIGS Understand the processes and measures associated with the Secure Software Development (SSD) Understand the basics of security testing and planning The Information Assurance (STIG) Overview is a comprehensive two-day course that delves into the realm of Information Assurance, empowering you to enhance your cybersecurity skills, understand the essentials of STIGs, and discover cutting-edge web application security practices. This immersive experience is tailored for IT professionals, developers, project teams, technical leads, project managers, testing/QA personnel, and other key stakeholders who seek to expand their knowledge and expertise in the evolving cybersecurity landscape. The course focuses on the intricacies of best practices for design, implementation, and deployment, inspired by the diverse and powerful STIGs, ultimately helping participants become more proficient in application security.The first half of the course covers the foundations of DISA's Security Technical Implementation Guides (STIGs) and learn the ethical approach to bug hunting, while exploring the language of cybersecurity and dissecting real-life case studies. Our expert instrtors will guide you through the importance of respecting privacy, working with bug bounty programs, and avoiding common mistakes in the field.The next half delves into the core principles of information security and application protection, as you learn how to identify and mitigate authentication failures, SQL injections, and cryptographic vulnerabilities. You?ll gain experience with STIG walkthroughs and discover the crucial steps for securing web applications.Throughout the course, you'll also explore the fundamentals of application security and development, including checklists, common practices, and secure development lifecycle (SDL) processes. You?ll learn from recent incidents and acquire actionable strategies to strengthen your project teams and IT organizations. You'll also have the opportunity to explore asset analysis and design review methodologies to ensure your organization is prepared to face future cybersecurity challenges. DISA's Security Technical Implementation Guides (STIGs) The motivations behind STIGs Requirements that the various software development roles must meet Implementing STIG requirements and guidelines Why Hunt Bugs? The Language of CyberSecurity The Changing Cybersecurity Landscape AppSec Dissection of SolarWinds The Human Perimeter Interpreting the 2021 Verizon Data Breach Investigation Report First Axiom in Web Application Security Analysis First Axiom in Addressing ALL Security Concerns Lab: Case Study in Failure Safe and Appropriate Bug Hunting/Hacking Working Ethically Respecting Privacy Bug/Defect Notification Bug Bounty Programs Bug Hunting Mistakes to Avoid Principles of Information Security Secuity Is a Lifecycle Issue Minimize Attack Surface Area Layers of Defense: Tenacious D Compartmentalize Consider All Application States Do NOT Trust the Untrusted Identification and Authentication Failures Applicable STIGs Quality and Protection of Authentication Data Proper hashing of passwords Handling Passwords on Server Side Session Management HttpOnly and Security Headers Lab: STIG Walk-Throughs Injection Applicable STIGs Injection Flaws SQL Injection Attacks Evolve Drill Down on Stored Procedures Other Forms of Server-Side Injection Minimizing Injection Flaws Client-side Injection: XSS Persistent, Reflective, and DOM-Based XSS Best Practices for Untrusted Data Lab: STIG Walk-Throughs Applications: What Next? Common Vulnerabilities and Exposures CWE/SANS Top 25 Most Dangerous SW Errors Strength Training: Project Teams/Developers Strength Training: IT Organizations Cryptographic Failures Applicable STIGs Identifying Protection Needs Evolving Privacy Considerations Options for Protecting Data Transport/Message Level Security Weak Cryptographic Processing Keys and Key Management Threats of Quantum Computing Steal Now, Crack Later Threat Lab: STIG Walk-Throughs Application Security and Development Checklists Checklist Overview, Conventions, and Best Practices Leveraging Common AppSec Practices and Control Actionable Application Security Additional Tools for the Toolbox Strength Training: Project Teams/Developers Strength Training: IT Organizations Lab: Recent Incidents SDL Overview Attack Phases: Offensive Actions and Defensive Controls Secure Software Development Processes Shifting Left Actionable Items Moving Forward Lab: Design Study Review Asset Analysis Asset Analysis Process Types of Application-Related Assets Adding Risk Escalators Discovery and Recon Design Review Asset Inventory and Design Assets, Dataflows, and Trust Boundaries Risk Escalators in Designs Risk Mitigation Options
Duration 5 Days 30 CPD hours This course is intended for This course is intended for students new to computer programming or experienced programmers who are new to client-side web development. Overview After completing this course, you will be able to: Describe the technologies involved in web development. Create HTML pages with links and images. Explain the benefits of CSS. Style HTML pages with CSS. Explain the concepts of objects, methods, and properties. Work with JavaScript variables. Create their own custom functions in JavaScript. Write flow control logic in JavaScript. Write JavaScript code that listens for and handles events, such as mouse clicks and page loads. Create forms with HTML and validate them with JavaScript. Use regular expressions in JavaScript for advanced form validation. This course is intended for IT professionals interested in becoming client-side web developers. who need to get a jump start on all three technologies. The course includes more than 30 exercises, providing a rapid hands-on introduction to the three major client-side languages: HTML, CSS, and JavaScript. Students should be prepared to cover a lot of ground quickly.This material updates and replaces course Microsoft course 20480 which was previously published under the title Programming in HTML5 with JavaScript and CSS3. Module 1: A Quick Overview of Web Development HTML is Part of a Team Client-side Programming Server-side Programming Web Development Technologies Module 2: Introduction to HTML Exercise: A Simple HTML Document Getting Started with a Simple HTML Document HTML Elements, Attributes, and Comments The HTML Skeleton Viewing the Page Source Special Characters HTML Elements and Special Characters History of HTML The lang Attribute Module 3: Paragraphs, Headings, and Text Paragraphs Heading Levels Breaks and Horizontal Rules Exercise: Paragraphs, Headings, and Text The div Tag Creating an HTML Page Quoted Text Preformatted Text Inline Semantic Elements Exercise: Adding Inline Elements Module 4: HTML Links Links Introduction Text Links Absolute vs. Relative Paths Targeting New Tabs Email Links Exercise: Adding Links Lorem Ipsum The title Attribute Linking to a Specific Location on the Page Targeting a Specific Location on the Page Module 5: HTML Images Inserting Images Image Links Adding Images to the Document Exercise: Adding Images to the Page Providing Alternative Images Module 6: HTML Lists Unordered Lists Ordered Lists Definition Lists Exercise: Creating Lists Module 7: Crash Course in CSS Benefits of Cascading Style Sheets CSS Rules Selectors Combinators Precedence of Selectors How Browsers Style Pages CSS Resets CSS Normalizers External Stylesheets, Embedded Stylesheets, and Inline Styles Exercise: Creating an External Stylesheet Exercise: Creating an Embedded Stylesheet Exercise: Adding Inline Styles div and span Exercise: Styling div and span Media Types Units of Measurement Inheritance Module 8: CSS Fonts font-family @font-face font-size font-style font-variant font-weight line-height font shorthand Exercise: Styling Fonts Module 9: Color and Opacity About Color and Opacity Color and Opacity Values Color Opacity Exercise: Adding Color and Opacity to Text Module 10: CSS Text letter-spacing text-align text-decoration text-indent text-shadow text-transform white-space word-break word-spacing Exercise: Text Properties Module 11: JavaScript Basics JavaScript vs. EcmaScript The HTML DOM JavaScript Syntax Accessing Elements Where Is JavaScript Code Written? JavaScript Objects, Methods, and Properties Exercise: Alerts, Writing, and Changing Background Color Module 12: Variables, Arrays, and Operators JavaScript Variables A Loosely Typed Language Google Chrome DevTools Storing User-Entered Data Exercise: Using Variables Constants Arrays Exercise: Working with Arrays Associative Arrays Playing with Array Methods JavaScript Operators The Modulus Operator Playing with Operators The Default Operator Exercise: Working with Operators Module 13: JavaScript Functions Global Objects and Functions Exercise: Working with Global Functions User-defined Functions Exercise: Writing a JavaScript Function Returning Values from Functions Module 14: Built-In JavaScript Objects Strings Math Date Helper Functions Exercise: Returning the Day of the Week as a String Module 15: Conditionals and Loops Conditionals Short-circuiting Switch / Case Ternary Operator Truthy and Falsy Exercise: Conditional Processing Loops while and do?while Loops for Loops break and continue Exercise: Working with Loops Array: forEach() Module 16: Event Handlers and Listeners On-event Handlers Exercise: Using On-event Handlers The addEventListener() Method Anonymous Functions Capturing Key Events Exercise: Adding Event Listeners Benefits of Event Listeners Timers Typing Test Module 17: The HTML Document Object Model CSS Selectors The innerHTML Property Nodes, NodeLists, and HTMLCollections Accessing Element Nodes Exercise: Accessing Elements Dot Notation and Square Bracket Notation Accessing Elements Hierarchically Exercise: Working with Hierarchical Elements Accessing Attributes Creating New Nodes Focusing on a Field Shopping List Application Exercise: Logging Exercise: Adding EventListeners Exercise: Adding Items to the List Exercise: Dynamically Adding Remove Buttons to the List Items Exercise: Removing List Items Exercise: Preventing Duplicates and Zero-length Product Names Manipulating Tables Module 18: HTML Forms How HTML Forms Work The form Element Form Elements Buttons Exercise: Creating a Registration Form Checkboxes Radio Buttons Exercise: Adding Checkboxes and Radio Buttons Fieldsets Select Menus Textareas Exercise: Adding a Select Menu and a Textarea HTML Forms and CSS Module 19: JavaScript Form Validation Server-side Form Validation HTML Form Validation Accessing Form Data Form Validation with JavaScript Exercise: Checking the Validity of the Email and URL Fields Checking Validity on Input and Submit Events Adding Error Messages Validating Textareas Validating Checkboxes Validating Radio Buttons Validating Select Menus Exercise: Validating the Ice Cream Order Form Giving the User a Chance Module 20: Regular Expressions Getting Started Regular Expression Syntax Backreferences Form Validation with Regular Expressions Cleaning Up Form Entries Exercise: Cleaning Up Form Entries A Slightly More Complex Example
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