Introductory Courses


The department offers a variety of introductory courses that are appropriate for students of all backgrounds. Most students interested in Computer Science start with one of the following courses, all of which provide an introduction to core concepts in CSCI:

  • CSCI 1101: Introduction to Computer Science (every semester)
  • CSCI 1103: Programming with Data (previously Accelerated Intro to Computer Science; every Fall)
  • CSCI 1055: The Digital World (every Spring)

In unusual cases, students may jump directly into CSCI 2101 (Data Structures; every semester). Students should select one of these courses based on existing background as summarized below:

  • No programming background: CSCI 1101 or CSCI 1055.

    Students planning to major/minor, or those interested in taking additional CS courses, should begin with CSCI 1101 (although 1055 may also be used to subsequently bridge into 1103). Students not intending to major/minor may take either course. CSCI 1101 involves more programming and has a lab component, while CSCI 1055 involves less programming and has no lab. Neither course assumes any prior exposure to computer science, and both introduce students to programming using Python.

  • Some programming background: CSCI 1103.

    Students with some programming background should enroll in CSCI 1103, which covers the same core material of 1101 but at an accelerated pace through basic material and with some additional topics. Examples of programming background appropriate for CSCI 1103 include:

    • AP or IB coursework in computer science
    • Completion of CSCI 1055 or DCS 1100 or DCS 1200
    • Informal programming experience or experience from other science courses
    While students in 1103 are expected to have basic comfort with programming concepts, experience with Python specifically is not required or expected.

    Students taking 1103 as their first CSCI/DCS course must email Professor Eric Chown (echown@bowdoin.edu) to request a routine registration override.

    Students with some programming background that wish to enroll in 1101 instead of 1103 must meet with a professor in the department to discuss their situation.

  • Substantial programming background: CSCI 2101.

    In exceptional cases, students with a strong computer science and/or programming background may skip 1101/1103 and enroll directly into 2101. Students interested in this option must consult with the department to determine whether the student is adequately prepared to do so. This courses uses Java, but does not assume any prior Java experience (most students enter with Python experience only).

Note that introductory computer science classes regularly fill to capacity, and registration priority is given to first years. You are encouraged to take these courses early, as you will have a smaller chance to enroll as an upper-class student.

Prior knowledge of computer science is used for placement only and does not count as credit towards the major. Students with any questions about appropriate placement should consult with a member of the department prior to registration.