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.
Required Background: This is a course for Computer Science majors and assumes familiarity and experience with programming using variables, conditionals, loops, functions, and collections. Additionally, students should have familiarity with the material covered in Mathematics 31 (or take it concurrently with this course).