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.?
-
2$\begingroup$ Are you referring to CLRS? $\endgroup$– Neelesh VCommented Dec 18, 2020 at 11:27
-
$\begingroup$ Yes. Basically, I need preliminary curricula or something like that to give it out as an additional reading before the course. $\endgroup$– pausCommented Dec 18, 2020 at 12:48
-
$\begingroup$ Already found the answer from Cormen himself: quora.com/What-textbook-did-the-CLRS-authors-use-before-CLRS But it's sill interesting who's using which courseware in their local environments. Because Cormen works with Ivy league students, their background is a way different than of regular students. $\endgroup$– pausCommented Dec 18, 2020 at 12:51
-
2$\begingroup$ What kind of background do the kids have before you get them? If they're coming from absolutely zero, then that is a very different question than if they've taken some sort of cs1 equivalent. $\endgroup$– Ben I. ♦Commented Dec 18, 2020 at 14:53
-
$\begingroup$ Zero background, we don't suppose any background like LOGO or Pascal-based programming foundations before. $\endgroup$– pausCommented Dec 21, 2020 at 13:04
1 Answer
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
6.001 Structure and Interpretation of Computer Programs
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.
6.042J / 18.062J Mathematics for Computer Science
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.
Professor Cormen's answer on this subject
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.
More of Professor Cormen's answers
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.
-
$\begingroup$ Having taken 6.001 and Algorithms (from Leiserson), I disagree with the recommendation of 6.001. Substitute your local programming course. $\endgroup$ Commented Dec 22, 2020 at 3:39