Skip to main content

Computer Science Placement Exam

The Computer Science Department Placement Exam is managed by the CS Department Placement Coordinator, currently Professor Webb. General information about the exam is below. If you have further questions, please contact the Placement Coordinator.  Students should first read about our First Course Recommendations and a brief overview of our policy on Placement Exams as well as Advanced Placement (AP) .

The CS placement exam is only necessary for students who think that they may place out of our introductory course (CPSC 21) and start with either one of our two intermediate-level courses (CPSC 31 or 35) instead. Students who want to start with CPSC 21 do not need to take the CS placement exam.  Students who think they may place out of both CPSC 21 and CPSC 35 should take the placement exam and also contact the Department Placement Coordinator about their placement.  

Students that take the placement exam usually have taken an introductory computer science course previously, or have had some self study with basic programming. Though CPSC 21 uses python as the programming language, students with prior programming experience who want to learn python should not take our intro course just to learn the python language. If you are unsure if you should take the placement exam, please review the Course descriptions or contact the Placement Coordinator.  Please note that the placement process is designed to advise you on where to start in our curriculum; thus, students are only permitted to take the exam once.

Exam Format

The placement exam is a written exam that should be completed in 90 minutes or less. Students should be able to write code in at least one of the following languages: Python, Java, C, or C++. The exam will test your ability to design and write code to solve a small sample problem. You should be familiar with coding concepts of variables, functions/methods, loops, and decision structures/if statements.
After taking the CS placement exam, students should follow up with the Placement Coordinator to discuss your results.

When to Take the Exam

The placement exam and meeting with the Placement Coordinator must be completed prior to registering for either 31 or 35. The placement exam is offered during fall orientation week. Incoming first year students should take it then. Students who do not take it during orientation should contact the Placement Coordinator schedule a time to take the exam.

Advice for Passing Students

Most students with prior programming experience that take the placement exam pass the exam. Students with a strong performance on the CS placement exam should skip CS21 and take CS31 or CS35 as their first CS course at Swarthmore.

CS35 continues your prior CS experience and provides a general background for further study in the field. Topics to be covered include object-oriented programming in C++, advanced data structures (trees, priority queues, hash tables, graphs, etc.) and algorithms, and software design and verification.

CS31 is a broad introduction to computer science that focuses on how a computer works and how programs run on computers. We examine the hardware and software components required to go from a program expressed in a high-level programming language like C or Python to the computer actually running the program. This course takes a bottom-up approach to discovering how a computer works. Topics include theoretical models of computation, data representation, machine organization, assembly and machine code, memory, I/O, the stack, the operating system, compilers and interpreters, processes and threads, and synchronization.

These courses can be taken in any order, or even concurrently, and both are required for the CS major/minor. For first year students, we recommend only taking one of these courses in your first semester. Students who place into Math 15 or Math 25 may want to consider taking CS31 over CS35 while taking a Math course concurrently.    Students wanting to take any CS course should pre-register for the course during new student registration or the pre-registration window. The Computer Science Department currently has heavy enrollment pressures and CS21, CS31, and CS35 are regularly lotteried due to over-enrollment.

Advice for Non-Passing Students

The CS placement exam is designed to identify students that are comfortable with a majority of topics and concepts covered in CPSC 21. If you take the CS placement exam, but do not pass, don't worry. You should take CPSC 21 as your first CS course at Swarthmore to prepare you for our intermediate and upper level courses. The majority of our CS majors and minors take CPSC 21 as their first CS course.  Students wanting to take CPSC 21 should pre-register for the course during new student registration or the pre-registration window. The Computer Science Department currently has heavy enrollment pressures and regularly lotteries courses due to over-enrollment.

Students may only take the placement exam once.  Our placement program is designed to advise students on where to start in our curriculum and is not designed to accommodate repeated requests.

Policy on obtaining credit

Students who place out of introductory courses are able to satisfy pre-requisites for higher-level courses (e.g., placing out of CPSC 21 allows a student to satisfy that pre-requisite for CPSC 31 and CPSC 35).  This, however, does not confer any type of course credit for the course that has been placed out of.  Students who are planning on majoring or minoring in CPSC will be expected to replace the credit from this course (or courses) with additional upper-level electives (see the Major and Minor requirements page). 

There are two options for obtaining credit with placement:

  1. If students place out of a course and have earned the requisite Advanced Placement score, they may be eligible for college credit.  See details here.
  2. A student placing out of CPSC 21 may also apply to earn credit.  Please contact the Placement Coordinator or your CPSC course advisor to discuss this if you are interested.  If approved, you will have the opportunity to take the CPSC 21 final exam for a Credit/No Credit (CR/NC) grade on your transcript.  Students must apply by the end of their Sophomore year and have had completed at least one other CPSC course to be eligible. 

Who to Contact

Questions regarding the placement exam should be directed to the CS Department Placement Coordinator, currently Professor Webb.