Pre-Major

For students interested in exploring computer science at a comfortable pace:
Prior Programming Experience: First COMPSCI Course at Duke: Next COMPSCI Course(s):
None COMPSCI 01 None anticipated, but 04 or 06 are possible
None COMPSCI 04 None anticipated, but 06 is possible

For potential majors or students interested in exploring programming and computer science at a fast(er) pace:
Prior Programming Experience: First COMPSCI Course at Duke: Next COMPSCI Course(s):
Any progamming experience using variables, functions, loops, and arrays (e.g., in high school, self-study, or at Duke) COMPSCI 06 COMPSCI 100
Open to students in the DES-CS program only COMPSCI 18S COMPSCI 100
Open to students with AP credit or those completing COMPSCI 6 at Duke COMPSCI 100 COMPSCI 102 or 104 or 108
Open to students who have completed ENG 53 COMPSCI 100E COMPSCI 102 or 104 or 108

None of these courses teach word-processing, software applications, or creating web pages.

Students earning a 4 or 5 on the AP A exam earn credit for COMPSCI 4 and are placed in COMPSCI 100. Students earning a 4 or 5 on the AP AB exam earn credit for both COMPSCI 4 and 6 and are placed in COMPSCI 100. Students with scores of 5 on the AP AB exam and an extremely strong programming background should discuss placing out of COMPSCI 100 with Prof. Owen Astrachan, the DUS for teaching and learning.

COMPSCI 01 — See course page

Introduction to computer science as a discipline and how it relates to the world and other disciplines.  Some topics are understood via programming, but programming is not the focus of the course.  This is a QS course with an STS designation. The official description from the Duke Bulletin is given below:

Principles of Computer Science. (M, QID) QS, STS An overview for students not intending to major in computer science. Computer programming, algorithms, symbolic and numeric computation, computer systems, basic theoretical foundations, and the effects of computer and information technology on society. Not open to students having credit for Computer Science 6 or higher. Instructors: Biermann, Forbes, or Ramm. One course. C-L: Information Science and Information Studies.

COMPSCI 04 — See course page

A gentle introduction to programming via situated learning such as Lego robots, game programming, virtual worlds, or other areas. See course synopses for details.  In Fall 2004, 4.1 is Java for video games, and sectioni 4.2 is a service-learning course using Lego robots. The official description from the Duke Bulletin is given below:

Programming and Problem Solving. (M, QID) QS Programming and problem solving in a specific domain such as robotics, virtual worlds, web programming, biology, genomics, or computer science. Students learn the basics of programming by studying problems in one application area. Instructor: Staff. One course. C-L: Information Science and Information Studies.

COMPSCI 06 — See course page

Object-oriented and algorithmic programming using Java. Experience is expected, but students with no programming background but willing to work at a fast pace can succeed. The official description from the Duke Bulletin is given below:

Program Design and Analysis I. (M, QID) QS Design and implementation of programs to solve problems in computer science, engineering, and natural sciences. Object-oriented programming using Java, analysis of programs and algorithms, reading, modifying, and designing classes, data structures including arrays, sets, and maps. Intended as an introduction for majors and those interested in programming and computer science with applications in the sciences. Prerequisite: familiarity and experience with programming using variables, loops, functions, and arrays. Mathematics 31 or equivalent (may be taken concurrently). Instructor: Astrachan, Duvall, Forbes, Ramm, or Rodger. One course. C-L: Information Science and Information Studies

COMPSCI 18S — See course page

A new half-credit course. Only open to students in the DES-CS program.

The official description from the Duke Bulletin is given below:

Intro to Problem Solving.  (QID) QS Techniques for solving computational problems in groups and individually. Topics vary every semester course is offered. Course may be repeated once. Consent of instructor required. Co-requisite: Enrollment in Computer Science 4 or Computer Science 6. Instructor: Rodger or staff.

COMPSCI 100 — See course page

Data structures and analysis of algorithms, data abstraction and abstract data types, object-oriented programming, proofs of correctness, and complexity and computability. The official description from the Duke Bulletin is given below:

Program Design and Analysis II. (M, QID) QS A continuation of Computer Science 6. Object-oriented design and programming using Java emphasizing abstract data types and their lower-level implementations. Advanced data structures including balanced trees, hash tables, graphs. Intuitive and rigorous analysis of algorithms. Prerequisite: Computer Science 6. Instructor: Astrachan, Duvall, Forbes, Ramm, or Rodger. One course. C-L: Information Science and Information Studies

COMPSCI 100E — See course page

Data structures, algorithms, and object-oriented programming. The official description from the Duke Bulletin is given below:

Program Design and Analysis II. (M, QID) QS Same as Computer Science 100, for students who have taken Engineering 53. Overview of advanced data structures and analysis of algorithms, data abstraction and abstract data types, object-oriented programming, proofs of correctness, complexity, and computability. Instructor: Astrachan, Duvall, Forbes, Ramm, or Rodger. One course.