CS Department   Mt. Holyoke College
CS 315
Software Design

Prerequisites

The student is expected to be familiar with common data types and algorithms, including, but not limited to stacks, queues, searching, and sorting. The prerequisites are satisfied by Computer Science 102. We will use Java in this course, but familiarity with Java is not required. Familiarity with C++ or another C-based object-oriented language is expected.

Course Structure

There will be a midterm, weekly programming/design assignments, a software design presentation, and a software project. Assignments must be submitted electronically. All assignments are due by class time of the specified due date.

Class meetings will be a mix of discussions and student presentations.

Grading

Your final grade is computed as follows:

Readings

This course relies primarily on one textbook:

Dale Skrien, Object-Oriented Design Using Java, McGraw-Hill, 2009.

I also encourage you to get a good Java book if you are not already familiar with Java. The books I recommend are:

Cay Horstmann and Gary Cornell, Core Java, 7th edition, Prentice-Hall, 2005. Unfortunately, this is actually 2 books, both of which you would find useful. On the positive side, they have stood the test of time and remain both good at introducing Java and as a reference as you become more familiar with Java.
Kathy Sierra and Bert Bates, Head First Java, 2nd edition, O'Reilly, 2005. This book is available online through Safari Books provided by LITS at http://proquest.safaribooksonline.com/0596009208.

These books will be supplemented with additional readings made available throughout the semester.

Policies

Class participation is essential. Software design is not a spectator sport. There is rarely one correct design to solve a problem. Rather, there are tradeoffs between designs that may make one design more appropriate for a situation than another. We will spend a great deal of class time creating designs and identifying tradeoffs among competing design solutions. As a result, you are expected to attend class.

Announcements related to issues that arise between class meetings will be made electronically. In particular, clarifications of assignments, changes to due dates, etc. may be reported to you via electronic mail. It is your responsibility to login and check your mail regularly.

In addition to electronic mail, copies of handouts and homework assignments will be available on the course web site. The home page for this course is http://www.mtholyoke.edu/~blerner/cs315/.

The work submitted for grading must be your own work unless an assignment's instructions explicitly state otherwise. Submission of work that is not your own is considered a violation of the honor code.