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

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

- Project03 due in 1 weeks

#### Exam 1

- The exam will be this week on Thursday. It will be on zoom. Check the syllabus for more information