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 2024)
- COMPSCI 101 - offered in the Fall and Spring semesters (offered this Fall 2024)
- COMPSCI 201 - offered in the Fall and Spring semesters (offered this Fall 2024)
Interested in a background in Computer Science, exploring the possibility of a major, minor, or simply wanting to understand the field? If so, pick one: COMPSCI 101 or 102. None of these courses requires any previous programming experience or understanding of computer science, and all are taught with Python.
COMPSCI 101 is a typical introduction to computer science. COMPSCI 102 is an interdisciplinary version of COMPSCI 101 which combines computer science with three disciplines: neuroscience, psychology/affective computing, and digital humanities.
Both 101 and 102 have an associated lab. COMPSCI 101, 102, or AP Computer Science A will prepare students for COMPSCI 201.
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 want to do more, you could then take one of our COMPSCI 100 level courses.
Note: COMPSCI 110 is a course on Information, Society and Culture that is cross-listed in computer science and does not prepare students for COMPSCI 201. It is not an introductory programming course and does not have a QS attribute.
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 the 100-level courses. If a student wants to continue in computer science then they would need to take one of the 100-level programming courses 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 101 - Intro to Computer Science
We currently use the Python programming language in this course. There is a required 75-minute lab associated with COMPSCI 101.
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 101 and take COMPSCI 201. Students without AP credit, but with experience in programming and Computer Science, can talk to the Director of Undergraduate studies about whether taking COMPSCI 201 as the first course is appropriate. Students with a full course of programming in high school, regardless of whether the course is an AP course, succeed and thrive in COMPSCI 201 — it's often a better course than 101 for those with programming experience. 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, 102, 103, or AP Computer Science A, or some prior programming experience.
Which Course?
If you have questions about which course is right for you, email the Computer Science Director of Undergraduate Studies.