Software Design Principles
Articulate the principles of effective software design.
Know when and how to apply various design patterns.
Document and Communicate Designs
Demonstrate how to effectively document and communicate software designs.
Understand what quality assurance is, know how to build quality into software using review techniques, and demonstrate quality evaluation through testing.
Software Development Tools
Use a variety of software development tools, including IDEs, automation tools, static analysis tools, source code control systems, unit testing tools, and documentation tools.
Work effectively in a group to produce quality software using 1-5 above.