The course introduces students to principles, concepts and techniques associated with team-based development of large, complex software systems. Major topics include teamwork, configuration management, project management, requirements, and testing. Students will learn to use associated software tools in the context of a Scrum-based Agile development project. It is assumed that students know how to program and debug using the Java language.