This course covers software engineering fundamentals, including software life cycle, process models, requirements engineering, software design, coding, testing, team software development, and application of engineering tools. Central to the course, student teams develop projects to practice engineering knowledge and skills in a realistic development setting.