ICS 31 • UC Irvine

Placing out of ICS 31 by Exam

If you come to UCI with some college-level programming experience (including AP CS A) but without a background in the Python language, you have the opportunity to skip ICS 31 and start with ICS 32: You just need to learn the Python from ICS 31 on your own (resources are available) and take and pass the ICS 31 Placement Exam.

Should you consider this? There's no risk; taking the exam doesn't obligate you to anything. If you haven't done the equivalent of at least one introductory programming class (in school or by self-study), this path probably isn't for you. But if you have, then taking and passing the placement exam provides these advantages:

Exam format: The ICS 31 Placement Exam is a two-hour, pencil-and-paper, multiple-choice, machine-scored exam. You will need a pencil and a Scantron form F-288, available at the UCI bookstore and Zot'n'Go stores on campus. You may bring with you to the exam any printed materials you like: textbooks, notes, code, printed web pages. You may not use any electronics, including cellphones and smart watches. [If you're not used to open-materials exams, be careful: We expect that you know programming and Python before taking the exam. There will be time to look up the occasional detail; there will not be time to look something up for every question and the questions will mostly ask you to apply your knowledge rather than to recite some fact that can be looked up.]

Your score on the exam will translate to a letter grade. You have the choice whether to take that letter grade as your grade for ICS 31 (and go right on to ICS 32), or to discard the grade and enroll in ICS 31 for real.

Logistical details: It's best (but not absolutely required) that you take the ICS 31 Placement Exam before your SPOP session. Of course that will depend on when your SPOP session is and how long it takes you to learn. Here are the steps:

Prerequisite programming concepts: From your previous experience or course work, we expect you will be familiar with these programming concepts in some modern programming language: Data types and structures (integers, floating point or real numbers, character strings, booleans, arrays or lists) and basic operations on them (arithmetic, comparisons, assignment, logical operators [and, or, not], indexing and traversing an array or list); basic control structures and patterns (sequence, selection (if/else), repetition/looping (for, while), nesting); function or procedure definition, calling and return, parameter passing; text input and output.

Python knowledge: We expect you to be familiar with most of the Python 3 concepts covered in ICS 31. Here is a summary of those concepts: