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 Worcester Polytechnic Institute, with research interests in software engineering. He coedited Component-Based Software Engineering: Putting the Pieces Together and coauthored Algorithms in a Nutshell: A Desktop Quick Reference (with Gary Pollice and Stanley Selkow), now in its second edition. He also developed several online courses for the O’Reilly School of Technology, including Java 5: Distributed Java Applications and Data Structures and Algorithms.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. Books published include Sudoku on the Half Shell: 150 Addictive Sujiken Puzzles (Puzzlewright Press). He also invented Trexagon, a Ken-Ken variation involving triangles instead of a square arrangement and wrote Trexagon Puzzles: Mathematically Logical. See more at sujiken.com and trexagon.com.

## 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