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.

This course will be taught in a workshop format with computers in the classroom.

Required Background

This is a course for computer science majors and assumes familiarity and experience with programming using variables, loops, functions, and collections. Additionally, students should have familiarity with the material covered in Mathematics 31 (or take it concurrently with this course). 


The Computer Science department at Duke University aims to excel in education and research. To ensure that our courses fulfill student needs and expectations, you can submit comments about this course anonymously here. These comments will be read only by the Director of Undergraduate Studies for Teaching and Learning and the professor.