Live Online training

# Introduction to Algorithms and Data Structures

## What you'll learn-and how you can apply it

By the end of this live, hands-on, online course, you’ll understand:

• Seven fundamental data structures in computer science (Queue, Stack, Dequeue, Bag, Symbol Table, Heap, and Graph)
• Asymptotic analysis and its application to modeling run-time performance in terms of memory (space) and CPU (time)
• How to install third-party Python libraries using pip

And you’ll be able to:

• Write more efficient and dependable code using high-quality third-party libraries
• Assess the run-time and space performance of a data structure and associated algorithms
• Choose the most efficient data structures to use for your programs

## This training course is for you because...

• You’re a Python programmer seeking to improve your skills. You would like some advice on choosing useful third-party Python libraries
• You want to learn the most efficient structures to use when processing large amounts of data
• You want to become a more efficient and productive programmer. Where possible, you want to use trusted, independently developed open-source code libraries so you can be more efficient and avoid “reimplementing the wheel.”
• You want to learn the reasons behind the efficiency of key data structures and algorithms

Prerequisites

• Familiarity with Python

Recommended preparation:

Recommended follow-up:

• George T. Heineman is an Associate Professor of Computer Science at WPI. His research interests are in Software Engineering and modularity. He is co-author of Algorithms in a Nutshell, 2nd Edition and the video course Working with Algorithms in Python. Aside from his professional pursuits, George is an avid puzzler. He invented Sujiken®, a Sudoku variation played on a right-triangle arrangement of cells in which numbers cannot repeat in a horizontal row, vertical column or diagonal in any direction.

## Schedule

The timeframes are only estimates and may vary according to how the class is progressing

Algorithm to describe Log(n) behavior (30 mins)

• Presentation: Introduction to terms
• Presentation: BinaryArraySearch, an O(log n) algorithm
• Exercise: Write the binary array search code
• Q&A

Basic Data Structures (30 mins)

• Presentation: Data structures (Queue / Stack / Dequeue/ Bag/ Symbol Table/ Heap/ Graph/ Sorted Containers)
• Exercise: Python lists
• Q&A
• Break – 5 minutes

Sorting algorithms (30 mins)

• Presentation: Python TimSort
• Exercise: Code InsertionSort and MergeSort
• Q&A

Graph Algorithms (45 mins)

• Presentation: Graph algorithms
• Exercise: Using a GUI program to construct sample graphs
• Q&A
• Break – 5 minutes

Skip List Implementation (30 mins)

• Presentation: Skip Lists
• Exercise: Working with lists
• Q&A