Material covered on the exam
Studying computer science at Reed typically begins with CSCI 121. This course assumes no programming background at all, and it teaches Python programming as well as some more conceptual early topics in computer science. If you have a substantial computer science background you might be best skipping CSCI 121 entirely and instead starting in CSCI 221. (If you have a very extensive CS background, please contact one of the faculty members to discuss the possibility of skipping CSCI 221 as well, but that is very rare.)
There is also a half-unit class, CSCI 122, which is meant for students with some significant programming background but not enough to skip CSCI 121 entirely. This course begins with a brief overview of Python (meant for those who have seen basic programming before, but possibly in a different language) and then covers some of the more advanced topics from CSCI 121.
You can opt to take a shorter placement test that covers only introductory programming and potentially allows you to place into CSCI 122, or you can take a longer version that also potentially allows you to skip CSCI 121. If you think there is any chance you should place into CSCI 122 or 221, please take a placement exam. If you think there is any chance you should place into CSCI 221, please opt for the longer exam. There is no downside to taking an exam. It is a low-stakes test and we encourage you not to study extensively for it. Brushing up briefly on stuff you know but haven’t seen in a while is more than sufficient.
The topics covered on the shorter exam (which can only place you into CSCI 122) are:
• Variables and value types (integers, floats, strings, etc.)
• If statements
• Arithmetic operations (including integer division and its remainder operation)
• Function definitions
• Loops (both while and for loops)
• Lists (or “arrays” or whatever the equivalent is in your programming language)
• Dictionaries (or “maps” or whatever the equivalent is in your programming language)
• Recursion (functions that call themselves)
If most of those topics seem familiar to you (even if there’s one or two that don’t) you should take at least the shorter placement exam. In addition to those topics, the longer exam also covers:
• Objects (in the sense of object-oriented programming)
• Higher-order functions (functions that take other functions as input or return functions as output)
• Linked lists
• Binary search trees
• Asymptotic running time analysis (“big-O” notation)
• Basic sorting algorithms (insertion sort, merge sort, and quicksort)
If those topics seem familiar, you should opt for the longer placement exam. (Again, if most but not all seem familiar, still try to take the longer exam.)
Select your exam below. You will be emailed about the details of taking the exam.