CSE 331

Software Design and Implementation

Credits
4.0
Lead Instructor
Michael Ernst
Textbook
Course Description
Explores concepts and techniques for design and construction of reliable and maintainable software systems in modern high-level languages; program structure and design; program-correctness approaches, including testing; and event-driven programming (e.g., graphical user interface). Includes substantial project and software-team experience.
Prerequisites
CSE 143.
CE Major Status
Selected Elective
Course Objectives

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.

ABET Outcomes
No outcomes registered
Course Topics