This document discusses data structures and algorithms. It defines data structures as how data is organized in memory and algorithms as computational steps to solve problems. The first step to solve a problem is obtaining an abstract model by defining relevant entities and operations. Data structures model static data and algorithms model dynamic changes to data. Properties of good algorithms include being finite, definite, feasible, correct, and efficient. Analyzing algorithms involves determining their time and space complexity using theoretical and empirical methods. Complexity is classified based on how resource needs grow relative to problem size.
Related topics: