Desired outcomes have knowledge of the most common abstractions for data collections(e. g stacks, queues, lists, trees, maps) understand algorithmic strategies for producing efficient realizations of common data structures analyze algorithmic performance both theoretically and experimentally and recognize common trade-offs between competing strategies wisely use existing data structures and algorithms found in modern programming language libraries have experience working with concrete implementations for most foundational data structures and algorithmsDesired outcomes • have knowledge of the most common abstractions for data collections (e.g., stacks, queues, lists, trees, maps). • understand algorithmic strategies for producing efficient realizations of common data structures. • analyze algorithmic performance, both theoretically and experimentally, and recognize common trade-offs between competing strategies. • wisely use existing data structures and algorithms found in modern programming language libraries. • have experience working with concrete implementations for most foundational data structures and algorithms