CS 1101 (Introduction to Program Design)


CS 1102 (Accelerated Introduction to Program Design)

Frequently Asked Questions

  • How are these two courses similar?

    Both courses are taught in A term (7 weeks) every year and are primarily intended for first-year students planning to major in Computer Science. (For non-majors, see information regarding beginning CS courses.)

    Both courses cover all of the material needed to successfully continue to the second-level courses in Computer Science (i.e., CS 2102 and CS 2303), in essentially the same fashion. These topics include the design, implementation and testing of programs that use a variety of data structures (such as structures, lists, and trees), functions, conditionals, recursion and higher-order functions

    No particular prior language is assumed; both courses teach functional programming using the Racket language, which is new to almost all students.

  • What is the difference between the two courses?

    The accelerated course, CS 1102, covers the 7 weeks of material in CS 1101 in the first 3 1/2 weeks, i.e., CS 1102 moves at twice the pace of CS 1101. The second half of the term in CS 1102 is a preview of selected advanced Computer Science topics, such as the design and implementation of application-specific languages, macros, programming with the HTTP protocol and continuation-passing style. Also, CS 1102 includes a somewhat open-ended individual programming project, which CS 1101 does not.

    CS 1101 is taught again in C term, whereas CS 1102 is only taught in A term.

  • How should I decide which course to take?

    Most first-year Computer Science students (about 75%) take CS 1101. The accelerated course is primarily targeted at students with substantial prior programming experience (including functions, recursion, and lists or trees, as would be covered in high-school Advanced Placement courses) and/or strong mathematical skills and the desire for a challenge.

    Up to 1/4 of the students who initially enroll in CS 1102 transfer to CS 1101 in the first few weeks.

    Also, since CS 1102 is taught at 9am and CS 1101 is taught at both 9am and 10am (and some years, also at 1pm), it may be possible to attend both lectures for a few days before making a final decision.

  • Can I transfer between these courses?

    It is not recommended to transfer from CS 1101 to CS 1102 (unless you have been attending both courses in parallel), because it will be too difficult to catch up with the accelerated course.

    It is easy to transfer from CS 1102 to CS 1101 and is allowed without penalty until the day of the first midterm exam in CS 1101 (the exact date will be announced in class). If you do transfer into CS 1101, your grade will depend only on your subsequent performance (quizzes, exams, and homework) in CS 1101.

    Furthermore, there will be a diagnostic (pass/fail) in-class quiz in CS 1102 a few days before the transfer deadline. If you do not pass this quiz, we will strongly recommend you transfer to CS 1101.