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.

Readings from the book The Practice of Computing Using Python.

Chapter 3: Algorithms

Videos

  1. Problem Solving
  2. 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.

    1. Problem Solving reflection (Video)
      PDF of the Powerpoint.
  3. Some Every-Day Algorithms
    1. Radix sort: sorting a deck of cards first by suit, then by rank (link)
    2. One queue vs. many queues: how you line up for multiple ATM machines
    3. First-fit vs. best-fit: grab the first parking spot vs. driving around for the closest to the Mall entrance (link)
    4. Evolution: survival of the fittest
    5. Arithmetic: long division (link)
    6. MP3: compression (link)

  4. Algorithm Examples:
    1. OKCupid Ted Talk Video
    2. Ten algorithms that dominate our world: List

Assignments

  1. Project03 due in 1 weeks

Exam 1

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