CSE logo University of Washington Computer Science & Engineering
CSE 331 Software Design & Implementation - Course Information and Syllabus - Winter 2012
  CSE Home   About Us    Search    Contact Info 

Logistics and Contact Information: Instructor: Hal Perkins, CSE 548, perkins(at)cs.
Teaching Assistants: Krysta Yousoufian, Jackson Roberts, Zachary Stein, and Laure Thompson.
See www.cs.washington.edu/331/ for information about the course, including office hours, etc.

Communications: A discussion list is linked to the course home page so we can keep in touch outside of class meetings. Please participate. You will also automatically be subscribed to a class mailing list at your uwnetid address. This will primarily be used for announcements, clarifications, hints, and other notices from the course staff, and you are responsible for everything that is mailed there.

Goals: There is a level of programming maturity beyond introductory programming that comes from building larger systems and understanding how to specify them precisely, manage their complexity, and verify that they work as expected. After completing this course successfully students should be able to:

To gain experience we will use Java and associated tools like Eclipse, JUnit, JavaDoc, and Subversion, but the goal is to understand the underlying ideas and concepts that are widely applicable to software construction.

Prerequisite: CSE 143 (i.e., intermediate programming in Java, including basic data structures like lists, queues, and binary search trees)

Grading and Exams:

These numbers are tentative and will be adjusted as the quarter progresses to reflect the relative difficulty of the assignments.

Late Policy: Deadlines will be given with each assignment. These deadlines are strict. It is exceedingly unlikely that skipping class or being late to class because of homework is in your interest. For the entire quarter, you may have four "late days". You are strongly advised to save them for emergencies. You may not use more than two for the same assignment. On group projects you may only use late days if all members of the group have them available, and all members of the group will be charged for each late day used. They must be used in 24-hour (integer) chunks. This policy may not be the same as in your other classes. You are responsible for understanding it if you choose to submit late work.

Academic Integrity: Any attempt to misrepresent the work you submit will be dealt with via the appropriate University mechanisms, and your instructor will make every attempt to ensure the harshest allowable penalty. The guidelines for this course and more information about academic integrity are in a separate document. You are responsible for knowing the information in that document.

Texts: There are two required books for the course:

These books contain a great deal of distilled wisdom about software construction in general and Java best practices, technical details, and style issues. There will be assigned readings from these books during the quarter, and you will be required to complete short online quizzes from time to time about material that should be read before class. We can make much better use of class time if everyone has read the relevant sections ahead of time.

Besides the two required books, two additional books are listed for the course:

Approximate Topics (subject to change): We expect to cover the following topics, but not necessarily in this order.


CSE logo Computer Science & Engineering
University of Washington
Box 352350
Seattle, WA  98195-2350
(206) 543-1695 voice, (206) 543-2969 FAX
[comments to Hal Perkins]