3) Differentiate between a generalized expression of an algorithm in pseudocode and its concrete implementation in a programming language.
a. Explain that some algorithms do not lead to exact solutions in a reasonable amount of time and thus approximations are acceptable.
b. Compare and contrast the difference between specific control structures such as sequential statements, conditional, iteration, and explain the benefits and drawbacks of choices made.
Examples: Tradeoffs involving implementation, readability, and program performance.
c. Distinguish when a problem solution requires decisions to be made among alternatives, such as selection constructs, or when a solution needs to be iteratively processed to arrive at a result, such as iterative 'loop' constructs or recursion.
d. Evaluate and select algorithms based on performance, reusability, and ease of implementation.
e. Explain how more than one algorithm may solve the same problem and yet be characterized with different priorities.
Examples: All self-driving cars have a common goal of taking a passenger to a designation but may have different priorities such as safety, speed, or conservation; web search engines have their own algorithms for search with their own priorities.