A project-based course that covers the tools and processes used in modern software development. Students work as a team to design, implement, test and document a software system for an outside client. Lecture topics include software development strategies, requirements elicitation, analysis and modeling, patterns, and team communication.