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

  • 1
    $\begingroup$ Are you referring to CLRS? $\endgroup$
    – Neelesh V
    Dec 18 '20 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$
    – paus
    Dec 18 '20 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$
    – paus
    Dec 18 '20 at 12:51
  • 1
    $\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.
    Dec 18 '20 at 14:53
  • $\begingroup$ Zero background, we don't suppose any background like LOGO or Pascal-based programming foundations before. $\endgroup$
    – paus
    Dec 21 '20 at 13:04

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

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$ Dec 22 '20 at 3:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.