YoVDO

Introduction to Algorithms Course (How To)

Offered By: Treehouse

Tags

Algorithms and Data Structures Courses Binary Search Courses Algorithms Courses Data Structures Courses Algorithmic Thinking Courses Big O Notation Courses Time Complexity Courses Space Complexity Courses Linear Search Courses

Course Description

Overview

Algorithms are a fundamental topic in computer science, power many of the largest companies today and are used in making many decisions that affect our day to day lives - in obvious places like Google's PageRank algorithm to more obscure use cases like national security and local policing.

In this introductory course, we're going to take our first steps towards understanding the world of algorithms and data structures. Before we can study individual algorithms we're going to spend time learning how to evaluate algorithms, how to make comparisons and how to develop algorithmic thinking

What you'll learn

  • Algorithmic thinking
  • Time and space complexity
  • Big O notation
  • Linear and binary search

Syllabus

Playing a Counting Game

Let's get a gentle introduction to algorithms by playing a simple game with two of my friends! Over the next few videos, we talk about algorithmic thinking, what an algorithm is and take our first look at two popular search algorithms

Chevron 7 steps
  • What Is an Algorithm?

    6:30

  • Guess the Number

    5:56

  • Defining an Algorithm

    8:27

  • Quiz: Defining an Algorithm?

    3 questions

  • Evaluating Linear Search

    8:43

  • Evaluating Binary Search

    6:13

  • Recap: Playing a Counting Game

    3 questions

Time Complexity

Over the last few videos we watched two of my friends play a game with different strategies and different end results. These strategies were examples of real world algorithms but we still don't have a good understanding of which one was better.

In this stage we're going to take a look at time complexity and measuring the efficiency of algorithms.

Chevron 8 steps
  • Efficiency of an Algorithm

    6:28

  • Constant and Logarithmic Time

    6:32

  • Linear & Quadratic Time

    4:37

  • Common Complexities

    5 questions

  • Quasilinear Time

    2:35

  • Exponential Time

    7:58

  • Determining Complexity

    3:59

  • Recap: Time Complexity

    3 questions

Algorithms in Code

So far we've only been looking at algorithms in the abstract but you're here to learn how to implement them as well!

Over the next few videos let's write code to implement both linear and binary search.

Chevron 6 steps
  • Linear Search in Code

    9:40

  • instruction

    Linear Search Implementations

  • Binary Search in Code

    10:03

  • Recursive Binary Search

    13:07

  • instruction

    Binary Search Implementations

  • Recap: Algorithms in Code

    3 questions

Recursion and Space Complexity

We've seen how the runtime of algorithm can vary depending on the implementation and the size of the input but there's one measure of efficiency we haven't explored yet.

All algorithms run on computers and computers don't have infinite memory. Over the next few videos let's take a look at the memory cost of an algorithm as the input size grows, also known as space complexity.

Chevron 4 steps
  • Recursive Functions

    5:03

  • Space Complexity

    6:49

  • Recap

    4:37

  • Recap: Recursion and Space Complexity

    4 questions


Related Courses

Algorithmic Thinking (Part 1)
Rice University via Coursera
Aprendiendo Python con circuitos digitales
Coursera Project Network via Coursera
Cisco: Python Programming (OpenEDG) 
The Open University via FutureLearn
Fundamentals of Computing
Rice University via Coursera
CS50's Introduction to Computer Science
Harvard University via edX