CS 246 System Design

In this course, students will learn to design and plan software. Topics covered will include requirements gathering, design evaluation and documentation, testing, and object-oriented program design. By the end of the course, students will have produced a design for a significant software project in a team environment.

Credits

4

Prerequisite

CS 295N and CS296N (CS 296N may be taken as a prerequisite OR as a corequisite with CS 246)

Course Learning Outcomes

Upon successful completion of this course, the student will be able to:
1. Explain what is meant by software engineering and why it is valued
2. Discuss the differences between peer-to-peer and server based version control systems and give an example of each
3. Demonstrate the use of an issue tracking system
4. Explain the advantages and disadvantages of waterfall and agile development paradigms
5. Create effective system design documentation