10601A/C Prerequisites

 

1.    You need to have, before starting this course, significant experience programming in a general programming language like JAVA or Python.  Specifically, you need to have written from scratch programs consisting of several hundred lines of code.  For undergraduate students, this will be satisfied for example by having passed 15-122 (Principles of Imperative Computation) with a grade of ‘B-’ or higher, or comparable courses or experience elsewhere.

 

2.    You need to have, before starting this course, basic familiarity with probability and statistics, as can be achieved at CMU by having passed 36-217 (Probability Theory and Random Processes) or 36-225 (Introduction to Probability and Statistics I), or 15-359, or 21-325, or comparable courses elsewhere, with a grade of ‘B-’ or higher.

 

3.    You need to have, before starting this course, college-level maturity in discrete mathematics, as can be achieved at CMU by having passed 21-127 (Concepts of Mathematics) or 15-151 (Mathematical Foundations of Computer Science), or comparable courses elsewhere, with a grade of ‘B-’ or higher.

 

You must strictly adhere to these prerequisites!     Even if CMU’s registration system does not prevent you from registering for this course, it is still your responsibility to make sure you have all of these prerequisites before you register.

 

If you are not sure whether or not you have these prerequisites, or if you know you don’t have any of them but wonder whether you could take this course anyway, please read this FAQ before emailing me.

 

As an additional tool for you to gauge your readiness, here's a 10-601 Readiness Self-Assessment Test (courtesy of Aarti Singh, Yiming Yang and Tom Mitchell).