Algorithms (2019)

Go to class
Write Review

Algorithms (2019) provided by Brilliant is a comprehensive online course, which lasts for 8-12 hours worth of material. Upon completion of the course, you can receive an e-certificate from Brilliant. The course is taught in Englishand is Paid Course. Visit the course page at Brilliant for detailed price information.

Overview
  • An algorithm is a step-by-step process to achieve some outcome. When algorithms involve a large amount of input data, complex manipulation, or both, we need to construct clever algorithms that a computer can work through quickly.

    By the end of this course, you’ll know methods to measure and compare performance, and you’ll have mastered the fundamental problems in algorithms.

Syllabus
    • Algorithms: A quick introduction to what an algorithm is and how to measure its performance.
      • Intro to Computation: As a computer scientist, you think about how hard it is to come up with the answer, not just about the answer itself.
      • Using Recursion: With recursion, you can solve big problems by using solutions to small problems.
      • Algorithms in the World: Clever algorithms may be needed for simple tasks, like helping new social network users pick a username.
    • Sorting: A powerful tool for organizing data, from the basic intuition with insertion sort to practical algorithms like Mergesort.
      • Introduction to Sorting: Why do computer scientists worry so much about sorting?
      • Insertion Sort: Start slow! Insertion sort is a simple and effective way of sorting a small list of numbers.
      • Mergesort: What's easier than sorting one big sequence? Creating a sorted sequence from two smaller sorted sequences!
      • Quicksort: Quicksort, like Mergesort, uses the divide-and-conquer strategy to quickly sort arrays.
      • Radix Sort: By sorting digits and characters—instead of numbers and words—radix sort can outpace all the rest.
    • Graphs: Algorithms for these useful representations of connections among data.
      • Introduction to Graphs: Graphs are a fundamental tool for representing the world around you on a computer.
      • Trees: Trees are graphs without cycles, making them much easier to navigate.
      • Breadth-First Search: Breadth-first search is a way of finding the shortest connections in a graph.
      • Minimum Spanning Trees: Minimum spanning trees help you find the most helpful tree in a complicated graph.
    • Strings: Strings are simple, but the algorithms to analyze them are not!
      • Introduction to String Algorithms: Strings are sequences of characters.
      • Substring Search Algorithms: Finding one string inside another string is tricker than it first appears!
      • Deterministic Finite Automaton: Finite automata are an important tool for writing algorithms on strings.
      • Knuth-Morris-Pratt Algorithm: The very best way to search for substrings.
    • Dynamic Programming: Remembering what you already know to solve problems faster.
      • Dynamic Programming Introduction: A little memory goes a long way towards solving problems quickly.
      • Tiling Problem: How many ways can different tiles decorate a floor? Find out with dynamic programming.
      • Binary Tree: The dynamic programming solution to a binary tree puzzle.
      • Envelopes: Bring dynamic programming into the second dimension with this envelope fitting puzzle.