Large software systems are crucial to the world around us: air traffic
control, medical systems, and the Internet all depend upon complex software
systems. Software failure has lead to several major network outages, the
loss of unmanned rockets, and the death of patients using the Therac 25
X-Ray machine.
Large software systems are built by teams over a period of years. No team member can understand the entire system. How can be build software that will work in this setting?
We will study techniques and tools used to develop larger software projects. Students will improving their skills in designing, writing, debugging and testing software. Topics include design patterns, UML, designing for maintainability, software architecture, and testing.
Students will work together to design and implement a series of projects.
Prerequisites: CS 102 (or concurrently), CS 201
Suggested course(s) to take next: CS 313, CS 314


