Computer Science offers incredible opportunities as both a field of study and as a foundation for continued work in academic and professional areas. Computation and computer science are helping to change nearly all aspects of the world we live in, including science, business, society, communication, the humanities and social sciences. Students who have taken computer science courses at Duke have helped change the world and continue to do so.
We offer three courses that can be a student's first course in computer science:
- COMPSCI 94 - offered in the Fall semesters (offered this Fall 2026)
- COMPSCI 101L - offered in the Fall and Spring semesters (offered this Fall 2026)
- COMPSCI 201 - offered in the Fall and Spring semesters (offered this Fall 2026)
Interested in obtaining a background in computer science, exploring the possibility of a major or minor, or simply wanting to understand the field?
If so, take COMPSCI 101L. This course does not require previous programming experience or understanding of computer science, and is taught with Python.
COMPSCI 101L is a typical Introduction to Computer Science. It has an associated lab. COMPSCI 101 or AP Computer Science A will prepare students for COMPSCI 201.
Alternatively, taking COMPSCI 94 as your first course allows you to explore computer science for the first time at a slower pace and in the context of animation. If you like COMPSCI 94 and would like to go further, you could then take COMPSCI 101L
COMPSCI 94 - Intro to Programming via Animation and Virtual Worlds
This course meets twice a week and students create an animation in each lecture. This course is a slower introduction to programming than COMPSCI 101L. If a student wants to continue in computer science then they would need to take COMPSCI 101L next.
Course Description:
COMPSCI 94 is an introductory programming course that teaches fundamental computer science concepts. This version of COMPSCI 94 uses the tool Alice to create 3-D virtual worlds. You will learn programming constructs such as repetition (calculating how many steps a person needs to walk to their car), selection (deciding which animal is the tallest), and organizing data (grouping penguins to waddle together), along with how to control objects (raise hands, flap wings, move, turn, spin, walk, etc.). No previous programming experience required.
COMPSCI 101L - Intro to Computer Science
We currently use the Python programming language in this course. There is a required 75-minute lab associated with COMPSCI 101L.
Course Description:
Introduction to the practices and principles of computer science and programming and their impact on and potential to change the world. Algorithmic, problem-solving, and programming techniques in domains such as art, data visualization, mathematics, natural and social sciences. Programming using high-level languages and design techniques emphasizing abstraction, encapsulation, and problem decomposition. Design, implementation, testing, and analysis of algorithms and programs. No previous programming experience required.
Students with credit via the AP CS A exam can get credit for COMPSCI 101L and take COMPSCI 201.
Students without AP credit, but with experience in programming and Computer Science, can talk to the Director of Undergraduate Studies (DUS) about whether taking COMPSCI 201 as the first course is appropriate. We recommend COMPSCI 201 for those students with a year or more of formal study of computer science or programming who are contemplating further study in computer science.
COMPSCI 201 - Intro to Data Structures & Algorithms
There is a mandatory 75-minute discussion section associated with this course. We currently use the Java programming language in this course.
Course Description:
Analysis, use, and design of data structures and algorithms using an object-oriented language like Java to solve computational problems. Emphasis on abstraction including interfaces and abstract data types for lists, trees, sets, tables/maps, and graphs. Implementation and evaluation of programming techniques including recursion. Intuitive and rigorous analysis of algorithms. Prerequisite: COMPSCI 101 OR AP Computer Science A, OR some prior programming experience.
Questions?
If you still have questions about which course is right for you, email the Computer Science Director of Undergraduate Studies (DUS) at dus@cs.duke.edu.
For a more complete breakdown of our CS degree requirements, see the Computer Science (BS) - Academic Requirements and the Computer Science (AB) - Academic Requirements respectively.