<p>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.</p>
<p><strong>An Excerpt From CLRS</strong></p>
<blockquote>
<p><strong>What are the prerequisites for reading this book?</strong></p>
<blockquote>
<p>You should have some programming experience. In particular, you should understand recursive procedures and simple data structures such as arrays and linked lists.</p>
</blockquote>
</blockquote>
<blockquote>
<p>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.</p>
</blockquote>
<p><strong><a href="https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-introduction-to-algorithms-sma-5503-fall-2005/index.htm" rel="nofollow noreferrer">From a OpenCourseWare course thought by Prof. Charles Leiserson (The L in CLRS) based on CLRS in Fall of 2008</a></strong></p>
<blockquote>
<p>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.</p>
</blockquote>
<blockquote>
<p><strong>Prerequisites</strong>: A strong understanding of programming and a solid background in discrete mathematics, including probability, are necessary prerequisites to this course.</p>
</blockquote>
<p><strong>These are the prerequisite courses recommended for Introduction to Algorithms</strong></p>
<blockquote>
<p><a href="https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/index.htm" rel="nofollow noreferrer">6.001 Structure and Interpretation of Computer Programs</a></p>
<blockquote>
<p>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.</p>
</blockquote>
</blockquote>
<blockquote>
<p><strong><a href="https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-spring-2015" rel="nofollow noreferrer">6.042J / 18.062J Mathematics for Computer Science</a></strong></p>
<blockquote>
<p>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.</p>
</blockquote>
</blockquote>
<p><strong><a href="https://qr.ae/pNZLDA" rel="nofollow noreferrer">Professor Cormen's answer on this subject</a></strong></p>
<blockquote>
<p>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.</p>
</blockquote>
<p><a href="https://qr.ae/pNZL6U" rel="nofollow noreferrer">More of Professor Cormen's answers</a></p>
<blockquote>
<p>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.</p>
</blockquote>

CC BY-SA 4.0
2020-12-22T03:39:19.383Z
Having taken 6.001 and Algorithms (from Leiserson), I disagree with the recommendation of 6.001. Substitute your local programming course.
Ellen Spertus
CC BY-SA 4.0
2020-12-19T05:16:07.573Z
2020-12-19T05:16:07.573Z
Neelesh V
<p>What to recommend as a pre-requisite reading before Cormen's &quot;Algorithms&quot; to make this book easier to get through for 10-12th graders? Any courseware available for kids, books, courses, etc.?</p>

CC BY-SA 4.0
2020-12-18T11:27:38.293Z
Are you referring to **CLRS**?
Neelesh V
CC BY-SA 4.0
2020-12-18T12:48:08.520Z
Yes. Basically, I need preliminary curricula or something like that to give it out as an additional reading before the course.
paus
CC BY-SA 4.0
2020-12-18T12:51:31.160Z
Already found the answer from Cormen himself: https://www.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.
paus
CC BY-SA 4.0
2020-12-18T14:53:20.077Z
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.
Ben I.
CC BY-SA 4.0
2020-12-21T13:04:36.883Z
Zero background, we don't suppose any background like LOGO or Pascal-based programming foundations before.
paus
<secondary-education><algorithms><ap-cs-principles><mathematics>
Cormen's "Algorithms" pre-requisites
# Cormen's "Algorithms" pre-requisites

(Asked by: username_0 on 2020-12-18)

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.?

**Tags:** secondary-education, algorithms, ap-cs-principles, mathematics

> **Comments:**
> **username_1**: Are you referring to **CLRS**?  
> **username_0**: Yes. Basically, I need preliminary curricula or something like that to give it out as an additional reading before the course.  
> **username_0**: Already found the answer from Cormen himself: https://www.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.  
> **username_2**: 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.  
> **username_0**: Zero background, we don't suppose any background like LOGO or Pascal-based programming foundations before.  

---

## 1 answers

### Answer by username_1 on 2020-12-19. Score: 1

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.

**[From a OpenCourseWare course thought by Prof. Charles Leiserson (The L in CLRS) based on CLRS in Fall of 2008](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-introduction-to-algorithms-sma-5503-fall-2005/index.htm)**

> 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](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/index.htm)
>
> > 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](https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-042j-mathematics-for-computer-science-spring-2015)**
>
> > 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](https://qr.ae/pNZLDA)**

> 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](https://qr.ae/pNZL6U)

> 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.

> **Comments:**
> **username_3**: Having taken 6.001 and Algorithms (from Leiserson), I disagree with the recommendation of 6.001. Substitute your local programming course.  

---

