CS 246 System Design

In this course, students will learn to design software and plan a software development project. Topics covered will include requirements gathering, design and documentation, UX (User Experience) testing, OOP (Object-Oriented Programing) design and Agile project management. By the end of the course, students will have produced a design and project plan for a significant software project in a team environment.

Credits

4

Prerequisite

CS 295R

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