Algorithmic Theory and Practice

(UOP-CSS430.AE2)
Lessons
Lab
TestPrep
Get A Free Trial

Skills You’ll Get

1

Algorithm Basics and Linked Lists

  • Approach
  • Algorithms and Data Structures
  • Pseudocode
  • Algorithm Features
  • Practical Considerations
  • Randomizing Data
  • Finding Greatest Common Divisors
  • Performing Exponentiation
  • Working with Prime Numbers
  • Performing Numerical Integration
  • Finding Zeros
  • Gaussian Elimination
  • Least Squares Fits
  • Basic Concepts
  • Singly Linked Lists
  • Doubly Linked Lists
  • Sorted Linked Lists
  • Self-Organizing Linked Lists
  • Linked-List Algorithms
  • Multithreaded Linked Lists
  • Linked Lists with Loops
  • Exercises
2

Arrays, Stacks, Queues, and Sorting

  • Basic Concepts
  • One-Dimensional Arrays
  • Nonzero Lower Bounds
  • Triangular Arrays
  • Sparse Arrays
  • Matrices
  • Stacks
  • Queues
  • Binomial Heaps
  • O(N2) Algorithms
  • O(N log N) Algorithms
  • Sub O(N log N) Algorithms
  • Exercises
3

Searching, Hash Tables, and Recursion

  • Linear Search
  • Binary Search
  • Interpolation Search
  • Majority Voting
  • Hash Table Fundamentals
  • Chaining
  • Open Addressing
  • 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
  • Exercises
4

Trees, Decision Trees, Network Algorithms

  • Tree Terminology
  • Binary Tree Properties
  • Tree Representations
  • Tree Traversal
  • Sorted Trees
  • Lowest Common Ancestors
  • Threaded Trees
  • Specialized Tree Algorithms
  • Interval Trees
  • Searching Game Trees
  • Searching General Decision Trees
  • Swarm Intelligence
  • Topological Sorting
  • Cycle Detection
  • Map Coloring
  • Maximal Flow
  • Network Cloning
  • Cliques
  • Community Detection
  • Eulerian Paths and Cycles
  • Exercises
5

Cryptography, Complexity Theory, and Distributed Algorithms

  • Terminology
  • Transposition Ciphers
  • Substitution Ciphers
  • Block Ciphers
  • Public-Key Encryption and RSA
  • Other Uses for Cryptography
  • Notation
  • Complexity Classes
  • Reductions
  • 3SAT
  • Bipartite Matching
  • NP-Hardness
  • Detection, Reporting, and Optimization Problems
  • Detection ≤p Reporting
  • Reporting ≤p Optimization
  • Reporting ≤p Detection
  • Optimization ≤p Reporting
  • Approximate Optimization
  • NP-Complete Problems
  • Types of Parallelism
  • Distributed Algorithms
  • Exercises
A

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

1

Algorithm Basics and Linked Lists

  • Discussing about Algorithms, Numerical Algorithms, and Arrays
  • Learning Common Run Time Functions
  • Understating about Big O Notation
  • Creating Pseudorandom Numbers
  • Making Random Walks
  • Calculating Greatest Common Divisors
  • Testing of Primality
  • Performing Numerical Integration
  • Using Back Substitution
  • Finding Cells
2

Arrays, Stacks, Queues, and Sorting

  • Discussing about Arrays, Stacks and Queues, and Sorting
  • Finding Median
  • Finding Average
  • Learning about Array Types
  • Adding Matrices
  • Reversing An Array
  • Understanding Stacks
  • Understanding Queues
  • Merging Trees
  • Understanding Binomial Trees
  • Understanding the Heap Sort Algorithm
  • Understanding Sorting Algorithm
  • Summarizing the Algorithms
3

Searching, Hash Tables, and Recursion

  • Understanding the Linear Search Algorithm
  • Understanding Binary Search
  • Understanding Interpolation Search
  • Discussing about Searching, Hash Tables, and Recursion
  • Understanding Open Addressing
  • Understanding the Factorial
  • Learning about the Koch Curves
  • Understanding Eight Queens Problem
4

Trees, Decision Trees, Network Algorithms

  • Understanding about Balanced and Decision Trees
  • Understanding Tree Terminology
  • Calculating Number of Nodes
  • Learning About Tree Traversal
  • Understanding Random Search
  • Using the Brute Force Approach
5

Cryptography, Complexity Theory, and Distributed Algorithms

  • Calculating the Euler's Totient Function
  • Discussing about Cryptography, Complexity Theory, and Distributed Algorithms

Related Courses

All Courses
scroll to top