Interested in taking a Computer Science course at Oberlin but not sure where to start? We can help! Students generally start in one of two courses: CSCI 150 or CSCI 151. To narrow your choices, we first need to know what programming experience you have, if any.

**I have no programming experience!** Great, your should probably start with CSCI 150.

**CSCI 150 (Introduction to Computer Science)**is the standard starting point for the major, and many non-majors take this course as well. It assume zero programming experience. There is no formal mathematics requirement, but the course does require you to work with mathematical notation, logic, and concepts that some students find intimidating.

**I have some programming experience!** Cool, in this case, your decision is probably between CSCI 150 and CSCI 151.

**CSCI 151 (Data Structures)**is the follow-up course to CSCI 150, covering fundamental data structures and their implementation in Java (whereas CSCI 150 is taught in Python). If you have a lot of programming experience, you might be ready to start in CSCI 151, though many students find that the courses they took before college didn’t cover as much material as CSCI 150 does.

If you’d like to better evaluate whether your preparation is sufficient for skipping CSCI 150, you can try solving some preselected coding problems at http://codingbat.com/

To start, go to either one of the following links, and you’ll find four exercises in either Java or Python that we think students would be able to complete after taking CSCI 150. You can try to solve either set of problems (using whichever language you prefer).

**Java:**http://codingbat.com/home/tom.wexler@oberlin.edu/ocjava**Python:**http://codingbat.com/home/tom.wexler@oberlin.edu/ocpython

Keep in mind that some aspects of CSCI 150, e.g. the creation and use of objects, exception handling, file I/O, etc., are not reflected in these questions. We expect these problems to be a little challenging yet doable for students coming out of CSCI 150.