Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I just finished the AP Computer Science course in high school and since my schoo

ID: 651753 • Letter: I

Question

I just finished the AP Computer Science course in high school and since my school does not have any further classes, I was thinking about getting a textbook and continuing my study. APCS goes through Big O, Arrays + ArrayLists, Recursion, Linked Lists, a rough overview of some other data structures and some sorting and searching algorithms (all in Java).

I will start Calculus in school next year (if that helps to determine math level).

Since I was thinking about participating in CS tournaments, I thought it would be useful to learn more about algorithms and data structures.

I was looking at two textbooks, The Algorithm Design Manual by Steven S Skiena and Introduction to Algorithms by Cormen et. al. I was wondering which one, if any of these, would best fit my situation.

Explanation / Answer

Personally, I recommend either Algorithms by Dasgupta, Papadimitriou, and Vazirani, or The Algorithm Design Manual by Skiena.

The Algorithm Design Manual is super-practical and full of excellent pragmatic advice, useful stories, and is well-written and easy to read. If you want to help get ready for programming contests, I strongly recommend that one.

I think Dasgupta has a better introduction from the perspective of learning the conceptual material, the theory, the proofs underneath the algorithms, etc. So, if you want to learn the theory, I recommend Dasgupta.

You won't go wrong with either; they are both outstanding.

Personally, I think they are better than Cormen. I learned from Cormen, and it's a perfectly fine book, but it can be a bit dense in places and a bit challenging to learn from, so it wouldn't be my first recommendation. Still, it's a reasonable contender and you wouldn't be led astray by it; I just think the others are better.