This course is an introduction to object-oriented programming designed for students with prior coding experience. The course emphasizes program design, problem-solving, and introductory software engineering techniques. Students will master the fundamental concepts and structures of object-oriented design and apply them to solve significant computational problems. Students not satisfying one of the listed prerequisites but with prior programming experience, such as in high school or through independent project work, are welcomed in the course and should contact the instructor to register.