Summary: CSE331: Software Design and Implementation
Draft of September 5, 2009
Note: This document was written by Dan even though he does not intend to teach the course in the near
term and did not participate in all the discussions about it. After no progress by others for several months,
Dan designed the course outline below.
Structural place in the curriculum
· 4 credits (3 weekly lectures, 1 weekly section)
· Pre-requisites: 143
· A pre-requisite for 403, recommended for several project-oriented 400-level courses, including software
· Taken by: Required for CS and the software-track of CompE, optional for the hardware track of CompE
· Catalog description: To be determined
Course Overview / Goals
The course goal is to develop students' ability to understand, develop, and reason about modern software de-
velopment and programs of moderate size (say 1000-5000 lines, which is bigger than they see in CSE142/143).
Of course, "modern software development" means far too many things for one course. This course generally
favors depth, such as project experience, over breadth. Toward that end, the course primarily builds on
students' familiarity with Java while adding some scripting-language experience near the end. While some
object-oriented methodology is important, the course is much broader than just the OOP paradigm.