ENGR2510 Software Design

This course is an introduction to software design. It focuses on a model of computation as a set of simultaneous ongoing entities embedded in and interacting with a dynamic environment, for example: computation as it occurs in spreadsheets, video games, web applications, and robots. A major component of the class is a weekly three-hour, in class laboratory. Much of this laboratory is spent in collaborative work on program development, with an emphasis on student-student interaction and student-student teaching, facilitated and enriched by the course staff. In addition, design and implementation work is supplemented with observational laboratory assignments, inviting students to consider not only how to build a program, but how to anticipate its behavior and how to modify that behavior. Both students with no prior background and students with background comparable to the CS AP should both find this course interesting and worthwhile.