Algorithms For Beginners

(ALGO.AE1) / ISBN : 978-1-64459-539-8
This course includes
Lessons
Lab

The Algorithms For Beginners course helps you explore fundamental algorithmic concepts, such as time complexity, sorting techniques, and recursive problem-solving. With this course you will learn how to design, analyze, and implement efficient algorithms to tackle a wide range of real-world challenges. Additionally, you'll have the skills and confidence to apply algorithmic principles to your own projects, setting you up for success in any coding-centric career or further studies in computer science.

Interactive Lessons

23+ Interactive Lessons | 40+ Exercises | 150+ Quizzes | 116+ Flashcards | 116+ Glossary of terms

1

Introduction

• False Assumptions
• Icons Used in This Course
• Where to Go from Here
2

Introducing Algorithms

• Describing Algorithms
• Using Computers to Solve Problems
• Distinguishing between Issues and Solutions
• Structuring Data to Obtain a Solution
3

Considering Algorithm Design

• Starting to Solve a Problem
• Dividing and Conquering
• Learning that Greed Can Be Good
• Computing Costs and Following Heuristics
• Evaluating Algorithms
4

• Working with Notebooks
• Using Hardware Acceleration
• Executing the Code
• Getting Help
5

Performing Essential Data Manipulations Using Python

• Performing Calculations Using Vectors and Matrixes
• Creating Combinations the Right Way
• Getting the Desired Results Using Recursion
6

Developing a Matrix Computation Class

• Avoiding the Use of NumPy
• Understanding Why Using a Class is Important
• Building the Basic Class
• Manipulating the Matrix
7

Structuring Data

• Determining the Need for Structure
• Stacking and Piling Data in Order
• Working with Trees
• Representing Relations in a Graph
8

Arranging and Searching Data

• Sorting Data Using Merge Sort and Quick Sort
• Using Search Trees and the Heap
• Relying on Hashing
9

Understanding Graph Basics

• Explaining the Importance of Networks
• Defining How to Draw a Graph
• Measuring Graph Functionality
• Putting a Graph in Numeric Format
10

Reconnecting the Dots

• Traversing a Graph Efficiently
• Sorting the Graph Elements
• Reducing to a Minimum Spanning Tree
• Finding the Shortest Route
11

Discovering Graph Secrets

• Envisioning Social Networks as Graphs
• Navigating a Graph
12

Getting the Right Web page

• Finding the World in a Search Engine
• Explaining the PageRank Algorithm
• Implementing PageRank
• Going Beyond the PageRank Paradigm
13

Managing Big Data

• Transforming Power into Data
• Streaming Flows of Data
• Sketching an Answer from Stream Data
14

Parallelizing Operations

• Managing Immense Amounts of Data
• Working Out Algorithms for MapReduce
15

Compressing and Concealing Data

• Making Data Smaller
• Hiding Your Secrets with Cryptography
16

Working with Greedy Algorithms

• Deciding When It Is Better to Be Greedy
• Finding Out How Greedy Can Be Useful
17

Relying on Dynamic Programming

• Explaining Dynamic Programming
• Discovering the Best Dynamic Recipes
18

Using Randomized Algorithms

• Defining How Randomization Works
• Putting Randomness into your Logic
19

Performing Local Search

• Understanding Local Search
• Presenting Local Search Tricks
• Solving Satisfiability of Boolean Circuits
20

Employing Linear Programming

• Using Linear Functions as a Tool
• Using Linear Programming in Practice
21

Considering Heuristics

• Differentiating Heuristics
• Routing Robots Using Heuristics
• Explaining Path Finding Algorithms
22

Ten Algorithms That Are Changing the World

• Using Sort Routines
• Looking for Things with Search Routines
• Shaking Things Up with Random Numbers
• Performing Data Compression
• Keeping Data Secret
• Changing the Data Domain
• Spotting Data Patterns
• Dealing with Automation and Automatic Responses
• Creating Unique Identifiers
23

Ten Algorithmic Problems Yet to Solve

• Solving Problems Quickly
• Solving 3SUM Problems More Efficiently
• Making Matrix Multiplication Faster
• Determining Whether an Application Will End
• Creating and Using One-Way Functions
• Multiplying Really Large Numbers
• Dividing a Resource Equally
• Reducing Edit Distance Calculation Time
• Playing the Parity Game
• Understanding Spatial Issues

Performing Essential Data Manipulations Using Python

• Performing Logical Operations
• Using Comparison Operators
• Performing Data Manipulations
• Finding the Factorial of a Number Using Recursion

Developing a Matrix Computation Class

• Using Matrix Operations
• Flattening a Matrix

Structuring Data

• Dealing with Missing Values
• Removing the Duplicate Records
• Creating and Traversing a Binary Tree

Arranging and Searching Data

• Implementing Quick Sort
• Implementing Merge Sort
• Building and Searching a Binary Heap

Understanding Graph Basics

• Implementing a Graph
• Adding a Graph to a Matrix
• Using Sparse Representations

Reconnecting the Dots

• Creating a Minimum Spanning Tree
• Adding a Negative Edge to a Graph
• Using the Floyd-Warshall Algorithm

Getting the Right Web page

• Creating a Network with a Spider Trap

Managing Big Data

• Demonstrating the Bloom Filter

Parallelizing Operations

• Using the lambda Function
• Setting up a MapReduce Simulation

Compressing and Concealing Data

• Using Compression
• Using Encryption

Working with Greedy Algorithms

• Using the change Function

Relying on Dynamic Programming

• Printing a Fibonacci Sequence Using Recursion
• Using Dynamic Programming

Using Randomized Algorithms

• Creating a Histogram
• Creating a Monte Carlo Simulation
• Implementing the Quick Select Algorithm
• Computing the Median of a Series

Employing Linear Programming

• Visualizing Data Using Python Plotting Functions

Considering Heuristics

• Creating a Maze