NOTE that this is the pre-2023 placement test; if you have been given a link to it, please email placement@cs.haverford.edu and ask for access to the current test instead.
This test will help us place you in the correct computer science class, but in some cases further discussion between student and faculty will cause us to revise this initial placement. You can also enroll in CMSC 104 or 105 without taking this test or having a discussion of placement. Note that anyone receiving a grade of 2.0 or higher in CMSC 104 can enroll in CMSC 107 without taking this test.
Throughout this test, please leave blank any questions that seem to involve concepts that you have not seen. You may also just leave something blank if you aren't sure of the answer. While the first few questions should make sense to everyone with programming experience, they do get more involved and harder, and we expect that many of you will leave some questions blank.
There is no explicit time limit on this test, and you may take breaks in the middle if you like. However, once you start, you may not write or "try out" programs, or read about or discuss programming topics, until you have completed the test. You may make whatever notes/drawings you like on paper or on a plain-text document of notes, or use (non-programmable features of) a calculator to do simple four-function arithmetic (add, subtract, multiply, divide). We envision that most of you will need an hour or two for the basic questions (not counting the final page of *optional* questions for those hoping to place into the second *year* rather than second semester of CS).
Remember that this test is designed to help identify those students who have had enough prior programming experience to place out of our first semester course and begin in 106, 107, or a 200-level course. If you don't have experience with computer programming, or just want to start in CMSC 104 or 105, you are welcome to enroll in CMSC 104 or 105 without taking this test.