Essential Algorithms: A Practical Approach to Computer Algorithms Using Python and C#

This Course Includes:

Enrol yourself in the Essential Algorithms: A Practical Approach to Computer Algorithms Using Python and C# course and lab to learn algorithms techniques. The course and lab provide expertise over the concepts such as algorithms, linked lists, arrays, stacks and queues, sorting, searching, hash tables, recursion, trees, cryptography, complexity theory and interview puzzles.

Lessons 1: Introduction

  • Why You Should Study Algorithms
  • Algorithm Selection
  • Who This Course Is For
  • Getting the Most Out of This Course
  • How This Course Is Structured
  • What You Need to Use This Course
  • Conventions

Lessons 2: Algorithm Basics

  • Approach
  • Algorithms and Data Structures
  • Pseudocode
  • Algorithm Features
  • Practical Considerations
  • Summary
  • Exercises

Lessons 3: Numerical Algorithms

  • Randomising Data
  • Finding Greatest Common Divisors
  • Performing Exponentiation
  • Working with Prime Numbers
  • Performing Numerical Integration
  • Finding Zeros
  • Gaussian Elimination
  • Least Squares Fits
  • Summary
  • Exercises

Lessons 4: Linked Lists

  • Basic Concepts
  • Singly Linked Lists
  • Doubly Linked Lists
  • Sorted Linked Lists
  • Self-Organising Linked Lists
  • Linked-List Algorithms
  • Multithreaded Linked Lists
  • Linked Lists with Loops
  • Summary
  • Exercises

Lessons 5: Arrays

  • Basic Concepts
  • One-Dimensional Arrays
  • Nonzero Lower Bounds
  • Triangular Arrays
  • Sparse Arrays
  • Matrices
  • Summary
  • Exercises

Lessons 6: Stacks and Queues

  • Stacks
  • Queues
  • Binomial Heaps
  • Summary
  • Exercises

Lessons 7: Sorting

  • O(N2) Algorithms
  • O(N log N) Algorithms
  • Sub O(N log N) Algorithms
  • Summary
  • Exercises

Lessons 8: Searching

  • Linear Search
  • Binary Search
  • Interpolation Search
  • Majority Voting
  • Summary
  • Exercises

Lessons 9: Hash Tables

  • Hash Table Fundamentals
  • Chaining
  • Open Addressing
  • Summary
  • Exercises

Lessons 10: Recursion

  • Basic Algorithms
  • Factorial
  • Fibonacci Numbers
  • Rod-Cutting
  • Tower of Hanoi
  • Graphical Algorithms
  • Koch Curves
  • Hilbert Curve
  • Sierpiński Curve
  • Gaskets
  • The Skyline Problem
  • Backtracking Algorithms
  • Eight Queens Problem
  • Knight's Tour
  • Selections and Permutations
  • Selections with Loops
  • Selections with Duplicates
  • Selections Without Duplicates
  • Permutations with Duplicates
  • Permutations Without Duplicates
  • Round-Robin Scheduling
  • Recursion Removal
  • Tail Recursion Removal
  • Dynamic Programming
  • Bottom-Up Programming
  • General Recursion Removal
  • Summary
  • Exercises

Lessons 11: Trees

  • Tree Terminology
  • Binary Tree Properties
  • Tree Representations
  • Tree Traversal
  • Sorted Trees
  • Lowest Common Ancestors
  • Threaded Trees
  • Specialised Tree Algorithms
  • Interval Trees
  • Summary
  • Exercises

Lessons 12: Balanced Trees

  • Lessons 12: Balanced Trees AVL Trees
  • 2-3 Trees
  • B-Trees
  • Balanced Tree Variations
  • Summary
  • Exercises

Lessons 13: Decision Trees

  • Searching Game Trees
  • Searching General Decision Trees
  • Swarm Intelligence
  • Summary
  • Exercises

Lessons 14: Basic Network Algorithms

  • Network Terminology
  • Network Representations
  • Traversals
  • Strongly Connected Components
  • Finding Paths
  • Transitivity
  • Shortest Path Modifications
  • Summary
  • Exercises

Lessons 15: More Network Algorithms

  • Topological Sorting
  • Cycle Detection
  • Map Colouring
  • Maximal Flow
  • Network Cloning
  • Cliques
  • Community Detection
  • Eulerian Paths and Cycles
  • Summary
  • Exercises

Lessons 16: String Algorithms

  • Matching Parentheses
  • Pattern Matching
  • String Searching
  • Calculating Edit Distance
  • Phonetic Algorithms
  • Summary
  • Exercises

Lessons 17: Cryptography

  • Terminology
  • Transposition Ciphers
  • Substitution Ciphers
  • Block Ciphers
  • Public-Key Encryption and RSA
  • Other Uses for Cryptography
  • Summary
  • Exercises

Lessons 18: Complexity Theory

  • Notation
  • Complexity Classes
  • Reductions
  • 3SAT
  • Bipartite Matching
  • NP-Hardness
  • Detection, Reporting and Optimisation Problems
  • Detection ≤p Reporting
  • Reporting ≤p Optimisation
  • Reporting ≤p Detection
  • Optimisation ≤p Reporting
  • Approximate Optimisation
  • NP-Complete Problems
  • Summary
  • Exercises

Lessons 19: Distributed Algorithms

  • Types of Parallelism
  • Distributed Algorithms
  • Summary
  • Exercises

Lessons 20: Interview Puzzles

  • Asking Interview Puzzle Questions
  • Answering Interview Puzzle Questions
  • Summary
  • Exercises

Appendix A: Summary of Algorithmic Concepts

  • Lesson 1: Algorithm Basics
  • Lesson 2: Numeric Algorithms
  • Lesson 3: Linked Lists
  • Lesson 4: Arrays
  • Lesson 5: Stacks and Queues
  • Lesson 6: Sorting
  • Lesson 7: Searching
  • Lesson 8: Hash Tables
  • Lesson 9: Recursion
  • Lesson 10: Trees
  • Lesson 11: Balanced Trees
  • Lesson 12: Decision Trees
  • Lesson 13: Basic Network Algorithms
  • Lesson 14: More Network Algorithms
  • Lesson 15: String Algorithms
  • Lesson 16: Cryptography
  • Lesson 17: Complexity Theory
  • Lesson 18: Distributed Algorithms
  • Lesson 19: Interview Puzzles

Exam FAQs

FAQ's are not Available for this course.

Summary

Standard:

Lessons:

21+ Lessons

Delivery Method:

Online

Language:

English

Scroll to Top