Yes, I’m being facetious. Although we have resources for k-12, if you are a budding programmer many of these books, available online, aren’t for the noob student or programmer. They are, however, available for you to refer to as you grow in your study of computer science and computational thinking!
What are algorithms? Well, they are in everything you do. They are recipes for creation! They are steps in a process. Think about folding a paper airplane. How do you convey the steps involved? Try it! How would you write the steps out for a friend to follow? If not a paper airplane, then what about traveling from your house to the grocery store. Try to write that out for a friend.
Is there more than one way to solve these problems? You bet! Are some ways more efficient for you? Are some ways more efficient for your friend, the “computer,” to solve (your friend is indeed the one who is computing your instructions)? Yes. There are multiple ways to write algorithms.
When you start writing, the typical approach is to make it easy on yourself. As a kid, for example, you may have written your instructions from your point of view based on your limited knowledge or perspective. As a computer scientist, you can expect to have the same experience as you mature. You’ll want to revisit those old directions, and see if you can make them easier for your friend (the “computer”). Maybe you can find a faster way, a clearer approach, based on her needs.
As you grow and want to find better, faster ways to have computers, friends or machines, follow your instructions, learning more about algorithm design becomes more important.
Please share your resources and we will continue to update this listing.
Adult – College:
Kurt Mehlhorn and Peter Sanders. Algorithms and Data Structures The Basic Toolbox October 3, 2007
Corman, Leiserson, Rivest, Stein. Introduction to Algorithms. Third Edition. 2009.
Kleinberg, Tardos. Algorithm Design. 2006