What to recommend as a pre-requisite reading before Cormen's "Algorithms" to make this book easier to get through for 10-12th graders? Any courseware available for kids, books, courses, etc.?
Basically some experience with Discrete Mathematics and Probability , elementary Calculus is also recommend. And students are expected to be familiar with mathematical proofs, proofs by induction and good knowledge of a programming language.
An Excerpt From CLRS
What are the prerequisites for reading this book?
You should have some programming experience. In particular, you should understand recursive procedures and simple data structures such as arrays and linked lists.
You should have some facility with mathematical proofs, and especially proofs by mathematical induction. A few portions of the book rely on some knowledge of elementary calculus.
This course teaches techniques for the design and analysis of efficient algorithms, emphasizing methods useful in practice. Topics covered include: sorting; search trees, heaps, and hashing; divide-and-conquer; dynamic programming; amortized analysis; graph algorithms; shortest paths; network flow; computational geometry; number-theoretic algorithms; polynomial and matrix calculations; caching; and parallel computing.
Prerequisites: A strong understanding of programming and a solid background in discrete mathematics, including probability, are necessary prerequisites to this course.
These are the prerequisite courses recommended for Introduction to Algorithms
This course introduces students to the principles of computation. Upon completion of 6.001, students should be able to explain and apply the basic methods from programming languages to analyze computational systems, and to generate computational solutions to abstract problems.
This course covers elementary discrete mathematics for computer science and engineering. It emphasizes mathematical definitions and proofs as well as applicable methods. Topics include formal logic notation, proof methods; induction, well-ordering; sets, relations; elementary graph theory; integer congruences; asymptotic notation and growth of functions; permutations and combinations, counting principles; discrete probability. Further selected topics may also be covered, such as recursive definition and structural induction; state machines and invariants; recurrences; generating functions.
We assume that the reader has some programming experience, including recursion, and knows how to read and write rigorous mathematical proofs. The discrete mathematics facts needed to analyze the algorithms in the book appear in the appendices.
First, it’s possible that you do not have the mathematical sophistication to follow all the mathematics in the book. You should have had a discrete mathematics course or, at the very least, know how to read and write proofs. The mathematical foundations appear in the four appendix chapters.