Course Overview

Data analysis is crucial to accurately predict the performance of an application. The course begins by getting you started with R, including basic programming and data import, data visualization, pivoting, merging, aggregating, and joins. Once you are comfortable with the basics, you will read ahead and learn all about data visualization and graphics. You will learn data management techniques such as pivots, aggregations, and dealing with missing values. With this various case studies and examples, this course gives you the knowledge to confidently start your career in the field of data science.

This is a hands-on guide that walks you through concepts with examples using built-in R data. Every topic is enriched with a supporting example that highlights the concept, followed by activities that will gradually build into a full data science project to showcase skills learned. You will perform an end-to-end analysis, starting a data science portfolio.

Course Objectives

The course begins by getting you started with R, including basic programming and data import, data visualization, pivoting, merging, aggregating, and joins. You will learn how to:

  • Use the basic programming concepts of R such as loading packages, arithmetic functions, data structures, and flow control
  • Import data to R from various formats, such as CSV, Excel, and SQL
  • Clean data by handling missing values and standardizing fields
  • Perform univariate and bivariate analysis using ggplot2
  • Create statistical summary and advanced plots, such as histograms, scatter plots, box plots, and interaction plots
  • Apply data management techniques, such as factors, pivots, aggregation, merging, and dealing with missing values, on the example data sets

Course Content

Lesson 1: INTRODUCTION TO R

  • Using R, RStudio, and Installing Useful Packages
  • Variable Types and Data Structures
  • Basic Flow Control
  • Data Import and Export
  • Getting Help with R

Lesson 2: DATA VISUALIZATION AND GRAPHICS

  • Creating Base Plots
  • ggplot2
  • Interactive Plots

Lesson 3: DATA MANAGEMENT

  • Factor Variables
  • Summarizing data
  • Splitting, Combining, Merging, and Joining Datasets

Course Overview


The Programming for Network Engineers (PRNE) course is designed to equip you with fundamental skills in Python programming. Through a combination of lectures and lab experience in simulated network environments, you will learn to use Python basics to create useful and practical scripts with Netmiko to retrieve data and configure network devices. Upon completion of this course, you should have a basic understanding of Python, including the knowledge to create, apply, and troubleshoot simple network automation scripts.

This course will help you:

– Explain the need for network engineers to learn how to program

– Explain how programming relates to the journey into network automation and programmability

– Create useful and practical scripts to retrieve data and configure network devices

– Create, apply, and troubleshoot simple network automation scripts

– Gain hands-on experience with Python programming

Course Objectives

After completing this course, you should be able to:

  • Create a Python script
  • Describe data types commonly used in Python coding
  • Describe Python strings and their use cases
  • Describe Python loops, conditionals, operators, and their purposes and use cases
  • Describe Python classes, methods, functions, namespaces, and scopes
  • Describe the options for Python data manipulation and storage
  • Describe Python modules and packages, their uses, and their benefits
  • Explain how to manipulate user input in Python
  • Describe error and exception management in Python
  • Describe Python code debugging methods

Course Content

Introducing Programmability and Python for Network Engineers

  • Programmability
  • Continued Importance of the CLI
  • Need for Python
  • First Python Program

Scripting with Python

  • Running a Python Script
  • Python Interactive Shell
  • Editors and IDEs

Examining Python Data Types

  • String Data Type
  • Integer Data Type
  • Float Data Type
  • Boolean Data Type
  • type() Function 
  • Python Variables
  • List Analysis
  • Tuple Data Analysis
  • Data Set Types
  • Python Dictionary
  • Nested Data Types
  • Navigating Complex Data Structures

Manipulating Strings

  • String Manipulation
  • String Splitting
  • Modifying Strings
  • String Contacenation
  • Whitespace Stripping
  • Formatting and Templating
  • Escape Characters
  • Regular Expressions
  • String Methods

Describing Conditionals, Loops, and Operators

  • Whitespace and PEP 8
  • Conditionals
  • Operators
  • Example of Using Conditionals
  • Loops
  • Loops with Lists, Dicts and Ranges

Exploring Classes, Methods, Functions, Namespaces, and Scopes

  • Practical Reuse of Codes
  • Functions
  • Code Commenting
  • Namespaces and Scopes
  • Classes and Methods
  • Using Inheritance to Extend Functionality
  • Main Construct

Exploring Data Storage Options

  • Data Formats
  • Readng Data from a Simple Text and CSV File
  • Writing Data to a Simple Text and CSV File
  • Reading Data from a JSON Text File
  • Writing Data to a JSON Text File
  • Data Access in a RAW or Unstructured Format

Exploring Python Modules and Packages

  • Python Standard Library Modules
  • Reusable code with Modules and Packages 

Gathering and Validating User Input

  • Obtaining User Input
  • Command-Line Arguments

Analyzing Exceptions and Error Management

  • Errors and Exceptions
  • Managing Exceptions
  • Assertions

Examining Debugging Methods

  • Code Debugging Process
  • Python Debugging Functions
  • Debuggers
  • Python Debugger
  • Pdb Commands

Labs

  • Execute Your First Python Program
  • Use the Python Interactive Shell
  • Explore Foundation Python Data Types
  • Explore Complex Python Data Types
  • Use Standard String Operations
  • Use Basic Pattern Matching
  • Reformat MAC Addresses
  • Use the if-else Construct
  • Use for Loops
  • Use while Loops
  • Create and Use Functions
  • Create and Use Classes
  • Use the Python main() Construct
  • Traverse the File Structure
  • Read Data in Comma-Separated Values (CSV) Format
  • Read, Store, and Retrieve Data in XML Format
  • Read, Store, and Retrieve Date in JavaScript Object Notation (JSON) Format
  • Read, Store, and Retrieve Data in a Raw or Unstructured Format
  • Import Modules from the Python Standard Library
  • Import External Libraries
  • Create a Python Module
  • Prompt the User for Input
  • Use Command-Line Arguments
  • Manage Exceptions with the try-except Structure
  • Manage Exceptions with the try-except-finally Structure
  • Use Assertions
  • Use Simple Debugging Methods
  • Use the Python Debugger
  • Code a Practical Debugging Script

Course Overview

We begin the course by learning about value types (structs and enums), and when they are preferable over classes. We also learn about the copy-on-write technique and how to implement it ourselves. Then we learn how to load JSON from web APIs into our custom types, and how to export that content out again. Finally we learn how to create frameworks, and import other frameworks using CocoaPods or Carthage.

We move on to learn advanced uses of Swift protocols and how protocol-oriented development improves efficiency and leads to more maintainable and reusable code. Then we learn about generics, and how they enable us to support multiple types without duplication. Later in the course, we discover different ways to structure a complete iOS app from scratch. We begin the discussion with the well-known MVC pattern and cover every other trending architecture in the iOS world.

Course Objectives

  • Load content from web APIs into structs
  • Use methods to store structs to files
  • Implement the copy-on-write technique
  • Describe protocols and protocol-oriented programming in depth
  • Write code with less duplication using generics
  • Evaluate different architectural patterns for iOS apps
  • Create an iOS app using Redux.

Course Content

LESSON 1: VALUE TYPES

  • Reference versus Value Types
  • Structs
  • Enums

LESSON 2: ENCODING AND DECODING

  • JSON Decoding
  • JSON Encoding

LESSON 3: SWIFT FRAMEWORKS

  • Creating a framework
  • CocoaPods
  • Carthage

LESSON 4: SWIFT PROTOCOLS

  • Protocol Syntax Basics
  • Using Protocols as Types
  • Mutating Method Requirements

LESSON 5: TRANSITIONING TO PROTOCOL-ORIENTED PROGRAMMING

  • Comparing Object-Oriented and Protocol-Oriented Programming
  • Implement Employee as a Simple Swift Struct
  • Refactoring Employee with an Object-Oriented Approach
  • Refactoring Employee with a Protocol-Oriented Approach

LESSON 6: GENERICS

  • Basics of Generics
  • Creating Generic Types
  • Generic Extensions
  • Associated Types

LESSON 7: SOFTWARE DESIGN

  • The Need for Architectural Patterns
  • The Original MVC Report
  • Apple’s MVC

LESSON 8: MVC ALTERNATIVES

  • Apple’s MVC in Practice
  • MVVM (Model-View-ViewModel)
  • VIPER

LESSON 9: UNIDIRECTIONAL DATA FLOW

  • Identifying Side Effects of Functions
  • Unidirectional Data Flow
  • Redux in iO

Course Overview

Equip yourself with writing efficient and powerful code which can be easily managed. This fast-paced guide to Scala leads you through the functional and object-oriented concepts that are used in Scala.

You’ll learn how to write safer and stable code by using pure functions and immutable data structures.

Scala is a general-purpose programming language, combining elements of object-oriented with functional programming. It is backed by a strong type system and is designed to be concise.

Course Objectives

  • Write Scala applications
  • Effectively participate in existing Scala projects
  • Recognize and use typical idioms and patterns
  • Identify the principles of functional programming and know the essence of advanced functional patterns

Course Content

Day One – Getting Started with Scala
 
We begin our day by easing ourselves into the world of Scala. We setup our development environment and learn some basics of Scala language.

Lesson One – Setting up the Development Environment

Before starting with the Scala language itself, we will identify how to setup our development environment. we will learn the basics of Scala, such as what the simple Scala program looks like and what a typical developer flow is. We will identify how to structure the Scala program. We will also cover some aspects of testing your Scala program by using Unit testing.

  • Recognize the structure of a Scala project
  • Identify the use of Scala’s sbt tool (interactive build tool) for building and running your project
  • Identify how to use the IDE
  • Implement interactions with a simple chatbot

Lesson Two – Basic Language Features

We will explore the so-called ‘OO’ part of Scala such as Java or C++. The object-oriented part of Scala will cover classes and objects, traits, pattern matching, case class, and so on. Finally, we will implement the object-oriented concepts that we learn to our chatbot application.

  • Identify the structure of non-trivial Scala programs
  • Identify how to use main object-oriented facilities: objects, classes, and traits
  • Recognize the details of function call syntax and parameter-passing modes

Lesson Three – Functions

We will cover functional programming with Scala and how object-oriented and functional approaches complete each other. We will cover generic classes and also cover how to create user-defined pattern matching and why is it useful.

  • Identify the basics of functional programming
  • Identify the basics of generic types in Scala
  • Implement user-defined pattern matching
  • Recognize and use functional compositional patterns
  • Day Two – Scala Collections and Type System
  • We begin our day by learning various scala collections and then we will cover types.

Lesson One – Scala Collections

We will start by learning how to work with lists. Afterwards, we’ll generalize to sequences and cover some more relevant data structures. Finally, we’ll look at how collections relate to monads and how we can use that knowledge to make some powerful abstractions in our code.

  • Identify the Scala collections available in the standard library
  • Identify how to abstract on sequences by using higher-order Functions
  • Implement the important design principles for working with Scala collections

Lesson Two – Scala Type System

In this lesson, we will cover the type system and polymorphism. We will also cover the different types of variance, which provides a way to constrain parameterized types. Finally, we will cover some advanced types such as abstract type members, option, and so on.

  • Identify the Scala type hierarchy
  • Use the features the Scala type system provides
  • Identify abstractions that the Scala type system enables

Lesson Three – Implicits

We will cover implicit parameters and implicit conversions. We’ll be learning about how they work, how to use them, and what kind of benefits and perils they provide.

  • Describe implicits and how the Scala compiler handles them
  • Explain the design patterns that implicits enable
  • Analyze the common issues that may arise by overusing implicits

Day Three – Building Code using Functional Programming

We begin our day by focusing on the functional programming aspects of Scala. We will then cover Cats and Doobie, which are the two popular functional programming libraries.

Lesson One – Functional Idioms

We’ll cover the core concepts of functional programming like Pure functions, immutability, and higher-order functions. We’ll introduce some of the design patterns that are prevalent in large functional programs. Finally, we’ll cover two popular functional programming libraries called Cats and Doobie, and use them to write some interesting programs.

  • Identify the core concepts of functional programming
  • Recognize and implement the popular functional programming design patterns
  • Implement Cats and Doobie in your own Scala projects

Lesson Two – Domain Specific Languages

We will cover how Scala makes it possible to write powerful DSLs by providing a few interesting language features. We’ll have a brief look at what DSLs are in general terms. We’ll also cover a DSL that you’ll very likely be using if you’re going to work with Scala professionally. Finally, we will implement our own DSL.

  • Identify the use of Domain Specific Languages (DSLs)
  • Use the DSL that ScalaTest, a popular testing library for Scala, provides
  • Design your own DSLs in Scala

Course Overview

Node.js is considered a game changer. It is the biggest shift of the decade in web development. Node.js applications are written in JavaScript, which enables scenarios such as single-language application stacks and the sharing of code between the server and the client.

The goal of this course is to guide you through the emerging world of patterns, techniques, and practices, helping you to understand proven solutions to common problems.

Throughout the course, you will be presented with several libraries and technologies. They will be used to demonstrate a pattern or technique, and will also give you great exposure to the Node.js ecosystem and its set of solutions.

Course Objectives

This course will uncover a set of patterns to solve common problems encountered in Node.js design and coding. Finally, you will explore writing modular and efficient Node.js applications.

Course Content

Lesson 1: Welcome to the Node.js Platform

  • The Node.js Philosophy
  • Introduction to Node.js 6 and ES2015
  • The Reactor Pattern

Lesson 2: Node.js Essential Patterns

  • The Callback Pattern
  • The Module System and its Pattern
  • The Observer Pattern

Lesson 3: Asynchronous Control Flow Patterns with Callbacks

  • The Difficulties of Asynchronous Programming
  • Using Plain JavaScript
  • The async Library

Lesson 4: Asynchronous Control Flow Patterns with ES2015 and Beyond

  • Promise
  • Generators
  • Async/Await Using Babel
  • Comparison

Lesson 5: Coding with Streams

  • Discovering the Importance of Streams
  • Getting Started with Streams
  • Asynchronous Control Flow with Streams
  • Piping Patterns

Lesson 6: Design Patterns

  • Factory
  • Revealing Constructor
  • Proxy
  • Decorator
  • Adapter
  • Strategy
  • State
  • Template
  • Middleware
  • Command

Lesson 7: Wiring Modules

  • Modules and Dependencies
  • Patterns for Wiring Modules
  • Wiring Plugins

Lesson 8: Universal JavaScript for Web Applications

  • Sharing Code with the Browser
  • Introducing Webpack
  • Fundamentals of Cross-Platform Development

Course Overview

This course is geared for developers who have little or no prior working knowledge of object-oriented (OO) programming languages (such as C, COBOL, 4GL, and so forth). Throughout the course, you will learn the best practices for writing great OO programs in Java 8, using sound development techniques, improved features for better performance, and new capabilities for addressing rapid application development. Special emphasis is placed on OO concepts and best practices.

Course Objectives

  • OO programming and its advantages in today’s world
  • Objects, classes, and OO implementations
  • Basic concepts of OO such as encapsulation, inheritance, polymorphism, and abstraction
  • Fundamentals of the Java language, its importance, uses, strengths, and weaknesses
  • How Java language relates to OO programming and the object model
  • Use classes, inheritance and polymorphism
  • Use collections, generics, autoboxing, and enumerations
  • Use Lambda expressions
  • Use the stream application programming interface (API)
  • Discover the new date/time API
  • Use the Java Database Connectivity (JDBC) API for database access
  • Work with annotations
  • Java tooling

Specific Java 8 features that are covered in the course include:

  • The new date/time API
  • Lambda expressionsMethod and constructor references
  • The stream API
  • Collectors
  • The optional class

Course Content

  • 1. Java 8: A First Look
  • The Java Platform
  • Java Platforms
  • Lifecycle of a Java Program
  • Responsibilities of JVM
  • Documentation and Code Reuse
  • Using the JDK
  • Setting up Environment
  • Locating Class Files
  • Compiling Package Classes
  • Source and Class Files
  • Java Applications
  • The Eclipse Paradigm
  • Workbench and Workspace
  • Views
  • Editors
  • Perspectives
  • Projects
  • 2. OO Concepts
  • Object-Oriented Programming
  • Real-World Objects
  • Classes and Objects
  • Object Behavior
  • Methods and Messages
  • Inheritance, Abstraction, and Polymorphism
  • Encapsulation
  • Inheritance
  • Method Overriding
  • Polymorphism
  • 3. Getting Started with Java
  • Writing a Simple Class
  • Classes in Java
  • Class Modifiers and Types
  • Class Instance Variables
  • Primitives vs. Object References
  • Creating Objects
  • Adding Methods to the Class
  • Passing Parameters into Methods
  • Returning a Value from a Method
  • Overloaded Methods
  • Constructors
  • Optimizing Constructor Usage
  • Language Statements
  • Operators
  • Comparison and Logical Operators
  • Looping
  • Continue and Break Statements
  • The Switch Statement
  • The For-Each() Loop
  • For-Each Loop Restrictions
  • Using Strings
  • Strings
  • String Methods
  • String Equality
  • StringBuffer
  • StringBuilder
  • Java 8: String Joiner
  • Specializing in a Subclass
  • Extending a Class
  • Casting
  • The Object Class
  • Default Constructor
  • Implicit Constructor Chaining
  • 4. Essential Java Programming
  • Fields and Variables
  • Instance vs. Local Variables: Usage Differences
  • Data Types
  • Default Values
  • Block Scoping Rules
  • Final and Static Fields
  • Static Methods
  • Using Arrays
  • Arrays
  • Accessing the Array
  • Multidimensional Arrays
  • Copying Arrays
  • Variable Arguments
  • Java Packages and Visibility
  • Class Location of Packages
  • The Package Keyword
  • Importing Classes
  • Executing Programs
  • Java Naming Conventions
  • 5. Advanced Java Programming
  • Inheritance and Polymorphism
  • Polymorphism: The Subclasses
  • Upcasting vs. Downcasting
  • Calling Superclass Methods from Subclass
  • The Final Keyword
  • Interfaces and Abstract Classes
  • Separating Capability from Implementation
  • Abstract Classes
  • Implementing an Interface
  • Abstract Classes vs. Interfaces
  • Exceptions
  • Exception Architecture
  • Handling Multiple Exceptions
  • Automatic Closure of Resources
  • Creating Your Own Exceptions
  • Throwing Exceptions
  • Checked vs. Unchecked Exceptions
  • 6. Java Developer’s Toolbox
  • Utility Classes
  • Wrapper Classes
  • The Number Class
  • Random Numbers
  • Autoboxing/Unboxing
  • The Date Class
  • Enumerations and static imports
  • Enumeration Syntax
  • When You Should Use Enumerations
  • Using Static Imports
  • When You Should Use Static Imports
  • Java 8 – The Date/Time API
  • The Core Date/Time classes
  • Formatting Dates
  • Working with Time Zones
  • Manipulate Date/Time Values
  • 7. Collections and Generics
  • Generics
  • Generics and Subtyping
  • Bounded Wildcards
  • Generic Methods
  • Legacy Calls to Generics
  • When Generics Should Be Used
  • Collections
  • Characterizing Collections
  • Collection Interface Hierarchy
  • Iterators
  • The Set Interface
  • The List Interface
  • Queue Interface
  • Map Interfaces
  • Using the Right Collection
  • Collections and Multithreading
  • 8. Lambda and Streams
  • Java 8: Introduction to Lambda
  • Functional vs OO Programming
  • Anonymous Inner-classes
  • Lambda Expression Syntax
  • Functional Interfaces
  • Method references
  • Constructor references
  • Java 8: Streams
  • Processing Collections of data
  • The Stream interface
  • Reduction and Parallelism
  • Filtering collection data
  • Sorting Collection data
  • Map collection data
  • Find elements in Stream
  • Numeric Streams
  • Create infinite Streams
  • Sources for using Streams
  • Java 8: Collectors
  • Creating Collections from a Stream
  • Group elements in the Stream
  • Multi-level grouping of elements
  • Partitioning Streams
  • 9. Java Application Development
  • Introduction to Annotations
  • Annotations Overview
  • Working with Java Annotations
  • JDBC
  • Connecting to the Database
  • Statement and PreparedStatement
  • ResultSet
  • Executing Inserts, Updates, and Deletes
  • Controlling Transactions and Concurrency

Course Overview

Build distributed applications that resolve data ownership issues when working with transactions between multiple parties. Blockchain applications provide a single-shared ledger to eliminate trust issues involving multiple stakeholders. With the help of Introduction to Blockchain and Ethereum, you’ll learn how to create distributed blockchain applications which do not depend on a central server or datacenter.

Course Objectives

The course begins by explaining Bitcoin, Altcoins, and Ethereum, followed by taking you through distributed programming using the Solidity language on the Ethereum blockchain. By the end of this course, you’ll be able to write, compile, and deploy your own smart contracts to the Ethereum blockchain

Course Content

Lesson 1: Ethereum Blockchain

  • Introducing the Ethereum Blockchain
  • Cryptology and Keys
  • Opening an Ethereum Account
  • The Ethereum Network, Nodes, and Mining
  • Transactions and Blocks
  • Sending and Checking Transactions

Lesson 2: Learning Solidity 

  • The Solidity Language
  • Your First Smart Contract
  • Basic Solidity
  • Testing Solidity 

Lesson 3: Solidity Contracts

  • Your First dApp
  • Using an Oracle

Course Overview

This is a 2-day course packed with the right balance of theory and hands-on activities to help you take your TypeScript skills to the next level.

This course complies with instructional designing principles for all the 4 lessons. This will ensure that you frequently repeat and reinforce the knowledge you gain. Having been designed for the development of large applications, TypeScript is being widely incorporated into popular projects such as Angular.

TypeScript is the future of JavaScript. TypeScript offers a sliding scale of how much or how little effort you want to put into your declarations: the more effort you put in, the more type safety and code intelligence you get. TypeScript allows developers to write readable and maintainable web applications. Adopting TypeScript results in more robust software, while still being deployable in apps where regular JavaScript is running.

Pure JavaScript lacks certain language features that are taken for granted in languages such as C# and Java. For example, it has no built-in module system, meaning that there’s no standard way of producing self-contained blocks of code that present well-defined interfaces to developers.

Course Objectives

In this course, we will begin by learning the fundamentals of TypeScript and eventually move toward advanced concepts. Learn how TypeScript relates to JavaScript that you may have written before. We will understand the benefits of TypeScript and how it can help you avoid software defects. We will learn to use type guards, check null and undefined, create tagged union types, and compare the performance of algorithms.

We will use TypeScript to build a weather forecast widget with Angular. We will then progress by building a note-taking client/server application using Angular, Node.js, and MongoDB. Finally, we will create a real-time chat application with React.

By completing this course, you will be able to build interesting TypeScript projects. This course will take your current TypeScript knowledge to the next level.

Here are the important topics that this course will cover:

  • Learn the fundamentals of TypeScript
  • Build a weather forecast widget with Angular
  • Create building a note-taking client/server application using Angular, Node.js, and MongoDB
  • Create a real-time chat application with React

Course Content

Lesson 1: TypeScript Fundamentals

  • Introduction to TypeScript
  • Type Checking
  • Advanced Type Analysis Features
  • Comparing Performance of Algorithms

Lesson 2: Building a Weather Forecast Widget with Angular 4

  • Using Modules
  • Creating the First Component
  • Using the Component in Other Components
  • Using the Main Component

Lesson 3: Note-Taking Client/Server App

  • Setting up the Server
  • Integrating with MongoDB
  • Creating the Client Side with Angular

Lesson 4: Real-Time Chat

  • Setting up the Project
  • Writing the Server
  • Creating the Chat Room

Course Overview

This course complies with instructional design principles in all eight lessons. This will ensure that you repeat and reinforce your gained knowledge at every step. Each and every minute spent on this 3-day course will incrementally take you to the next level.

Course Objectives

If you are interested in gaining a good grasp of Vue.js in a systematic and hands-on way by working through a real-world project, then this course is for you.
 
The course will provide you with knowledge of the following:

  • Creating dynamic and animated lists
  • Identifying how to use computed properties
  • Animating with JavaScript instead of CSS
  • Packaging reusable transitions into components
  • Creating basic AJAX requests with Axios
  • Utilizing Jasmine for testing Vue and Karma workflow
  • Utilizing single-page applications and Webpack

Course Content

LESSON ONE- Getting Started With Vue.Js

  • A Simple Vue.js Program
  • Lists and their Types
  • Creating a Dynamic and Animated List
  • Reacting to Events Such as Clicks and Keystrokes
  • Choosing a Development Environment
  • Formatting Your Text with Filters

LESSON TWO- Basic Vue.Js Features

  • Learning How to Use Computed Properties
  • Filtering a List with a Computed Property
  • Sorting a List with a Computed Property
  • Formatting Currencies with Filters
  • Formatting Dates with Filters
  • Displaying and Hiding an Element Conditionally
  • Adding Styles Conditionally
  • Adding Some Fun to Your App with CSS Transitions
  • Outputting Raw HTML
  • Creating a Form with Checkboxes
  • Creating a Form with Radio Buttons
  • Creating a Form with a Select Element

LESSON THREE- Transitions And Animations

  • Integrating with Third-Party CSS Animation Libraries
  • Adding Your Own Transition Classes
  • Animating with JavaScript Instead of CS
  • Transitioning on the Initial Render
  • Transitioning Between Elements
  • Letting an Element Leave Before the Enter Phase in a Transition
  • Adding Entering and Leaving Transitions for Elements of a List
  • Transitioning Elements That Move in a List
  • Animating the State of Your Components
  • Dynamic Transitions

LESSON FOUR- All About Components

  • Creating and Registering a Component
  • Passing Data to Your Components with Props
  • Making Components Talk to Each Other
  • Making Components Talk with Vuex
  • Reading a Child’s State
  • Using Components in Your Own Components
  • Content Distribution with Slots
  • Single File Components with Webpack
  • Loading Your Components Asynchronously
  • Having Recursive Components

LESSON FIVE- Vue Communicates With The Internet

  • Sending Basic AJAX Requests with Axios
  • Validating User Data before Sending It
  • Recovering from an Error during a Request
  • Creating a REST Client (and Server!)
  • Implementing Infinite Scrolling
  • Processing a Request before Sending It Out
  • Preventing XSRF Attacks on Your App

LESSON SIX- Single-Page Applications

  • Creating an SPA with Vue-Router
  • Fetching Data before Switching Route
  • Managing Errors for Your Routes
  • Adding a Progress Bar to Load Pages
  • Using Named Dynamic Routes
  • Having More Than One Router-View in Your Page
  • Composing Your Routes Hierarchically
  • Adding Transitions between Your Routes
  • How to Redirect to Another Route
  • Saving Scrolling Position When Hitting Back

LESSON SEVEN- Unit Testing And End-To-End Testing

  • Using Jasmine for Testing Vue
  • Adding Karma to Your Workflow
  • Testing Your Application State and Methods
  • Testing DOM Asynchronous Updates
  • End-to-end testing with TestCafe
  • Stubbing External API Calls with Sinon.JS
  • Measuring the Coverage of Your Code

LESSON EIGHT- Organize + Automate + Deploy = Webpack

  • Extracting Logic from Your Components to Keep the Code Tidy
  • Organizing Your Dependencies with Webpack
  • Using External Components in Your Webpack Project
  • Developing with Continuous Feedback with Hot Reloading
  • Running a Code Linter While Developing
  • Releasing Your Components to the Public

Course Overview

Swift greatly simplifies the process of developing applications for Apple devices. This course provides you with the essential skills to help you get started with developing applications using Swift.

After completing this course, you will be able to:

– Explore the fundamental Swift programming concepts, language structure, and the Swift programming syntax

– Transform your thinking to leverage new concepts, such as optionals and protocols

– Use key language elements, such as strings and collections in Swift

– Grasp how Swift supports modern application development using advanced features, such as built-in Unicode support and higher-order functions.

Course Objectives

This course is aimed at developers seeking fundamental Swift programming skills in preparation for learning how to develop native applications for iOS and macOS.

Course Content

Lesson 1: Swift Basics

  • Swift Program Structure
  • Swift Variables and Constants
  • Swift Data Types
  • Enums

Lesson 2: Swift Operators and Control Flow

  • Swift Operators
  • Branching
  • Loops

Lesson 3: Functions, Classes, and Structs

  • Functions
  • Error Handling
  • Object-Oriented Features

Lesson 4: Collections

  • Arrays
  • Sets
  • Dictionaries

Lesson 5: Strings

  • String Fundamentals
  • Using Strings
  • Substring

Lesson 6: Functional Programming and Lazy Operations

  • Functional Methods
  • Lazy Operations
  • Swifty Code