Haverford CS Placement Test
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.
) email address
This may be used to give you your results, so be sure to get it right!
I agree to be bound by the Haverford Honor Code in the taking of this placement exam.
I certify that I will not look for any answers online, run any of the sample programs, talk with anyone about the content or difficulty of this exam, or violate the honor code in any other way. I understand that it is in my best interest (as well as required by the honor code) to be bound by these restrictions (if you disagree but want to take this test, please contact
to explain why).
List the programming languages you know well enough to answer programming-based questions.
Most of the questions below involve reading brief programs written in Python (often described as "executable pseudo-code"), with comments for those more familiar with C++ or Java; some questions invite you to write software in a language of your choice. If Python isn't on your comfort list, we'll take this into consideration on the program-reading questions. We'd also just like to know what languages you know well.
Page 1 of 5
Never submit passwords through Google Forms.
This form was created inside of Haverford College.