This course introduces students to the science of computation by exploring the representation and manipulation of data and algorithms. We organize and transform information in order to solve problems using algorithms written in a modern object-oriented language. Topics include organization of data using objects and classes, and the description of processes using conditional control, iteration, methods and classes. We also begin the study of abstraction, self-reference, reuse, and performance analysis. While the choice of programming language and application area will vary in different offerings, the skills students develop will transfer equally well to more advanced study in many areas. In particular, this course is designed to provide the programming skills needed for further study in computer science and is expected to satisfy introductory programming requirements in other departments.
Grading: yes pass/fail option,
yes fifth course option
weekly programming projects, weekly written homeworks, and two examinations.
none, except for the standard prerequisites for a (QFR) course; previous programming experience is not required
if the course is over-enrolled, enrollment will be determined by lottery
students with prior experience with object-oriented programming should discuss appropriate course placement with members of the department
This course include regular and substantial problem sets, labs, and/or projects in which quantitative/formal reasoning skills are practiced and evaluated.
COGS Interdepartmental Electives