Placing students into the correct introductory programming course can be somewhat of a challenge since students have a wide variety of computing backgrounds before arriving at Williams. The easiest case to deal with is that in which a student has had an Advanced Placement Course in Computer Science and has taken the Computer Science AB Placement exam. If you think that you have a strong background in computer science (whether or not you have had the AP course), your best bet is to take the AP exam if possible. We have found that it provides very good information on students’ backgrounds. Our general policy is that students who get a 4 or 5 on the AB exam are placed in CSCI 136 with no questions asked. We talk carefully to those who get a 3 about their background. In most cases these students are encouraged to try CSCI 136, with the understanding that if they find themselves over their heads, we can easily switch them back to CSCI 134. Those who get a 1 or 2 are encouraged to enroll in CSCI 134. The A exam in computer science does not cover all of the material in CSCI 134, so a good score on that exam does not automatically result in placement in CSCI 136.
We are quite flexible about placement within the first few weeks of the semester. If a student is familiar with the material in the first few weeks of a course and has doubts about whether he or she should be placed in the successor course, we will often encourage them to sign up for the more advanced course. This way, even if a decision is later made to drop back, the student will not have missed anything that he or she did not already know. Even after the end of the official period for adds and drops, we are usually able to move students into more appropriate courses during the first month of the semester. We encourage students not to waste one of their limited number of courses at Williams (and their or their parents’ money) on a course whose material is already familiar to them.