Introduction to Algorithms and Data Structures


Overview/Description
Target Audience
Prerequisites
Expected Duration
Lesson Objectives
Course Number
Expertise Level



Overview/Description
This course introduces the basics of algorithms and data structures with examples in C++. This course focuses on what the working programmer should know about algorithms and data structures without getting bogged down in mathematical formalism.

Target Audience
Individuals with some programming experience who wish to learn the basics of algorithms and data structures

Prerequisites
None

Expected Duration (hours)
2.9

Lesson Objectives

Introduction to Algorithms and Data Structures

  • start the course
  • recognize the definition of a data structure and its importance in computer science
  • define what an algorithm is informally and discuss a few aspects of algorithms we need to consider as programmers
  • define the complexity of an algorithm in terms of Big O notation
  • define and use static arrays in C++
  • define and use dynamic arrays in C++
  • use a recursive binary search in C++
  • implement a fixed-size stack of integers in C++
  • implement a fixed-size queue of integers in C++
  • implement a linked list in C++
  • construct and destruct a Binary Search Tree (BST) in C++
  • perform a search using recursion on a BST in C++
  • insert elements into a BST in C++
  • delete elements from a BST in C++
  • implement a Bubble sort to sort a list of integers in C++
  • implement a Merge sort in C++
  • implement a Quicksort in C++
  • define a graph as an adjacency list in C++
  • define a graph as an adjacency matrix in C++
  • perform a Breadth First Search (BFS) on a graph represented by an adjacency list in C++
  • perform a Depth First Search (DFS) on a graph represented by an adjacency matrix in C++
  • implement a Topological Sort in C++ to sort a graph represented by an adjacency list
  • define a hashed data structure and discuss when to best use them
  • implement a custom hash function in C++
  • discuss the difference between perfect and non-perfect hashing, and implement a perfect hash in C++
  • discuss the method of handling collisions using separate chaining
  • learn the use of the fundamental basics of algorithms and data structures
  • Course Number:
    sd_alds_a01_it_enus

    Expertise Level
    Beginner