## Algorithms and Problem Development

An algorithm is a set of steps taken to solve a problem. Of particular importance is that an algorithm is independent of the computer language used to implement it.

Chapter 3: Algorithms

Chapter 10: Program Development

#### Videos

- Problem Solving
Now is a good time to reflect on problem solving -- something we have been working on throughout the course, but it is
important enough to reflect on it. As a foundation for that reflection we refer to "How to solve it" by George Polya -- the best (and shortest!) book on problem solving.

- Problem Solving reflection (Video)

PDF of the Powerpoint.

- Some Every-Day Algorithms

- Radix sort: sorting a deck of cards first by suit, then by rank (link)
- One queue vs. many queues: how you line up for multiple ATM machines
- First-fit vs. best-fit: grab the first parking spot vs. driving around for the closest to the Mall
entrance (link)
- Evolution: survival of the fittest
- Arithmetic: long division (link)
- MP3: compression (link)

- Algorithm Examples:
- OKCupid Ted Talk Video
- Ten algorithms that dominate our world: List

#### Assignments

- Chapter 9 Exercises on Codio due this week.
- Lab08 (do pre-lab first on D2L)
- Tuesday sections will not meet because of break days. Their lab will be due Friday by 11:59PM.
- All other sections will meet at their normal scheduled section.

- Project06 due in 1 week