CS Department   Mt. Holyoke College
CS 341
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:

Xiaoping Jia, Object-Oriented Software Development Using Java, 2nd edition, Addison-Wesley, 2003.

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

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.

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/cs341/.

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.