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