This course examines the underlying concepts and latest topics in software engineering. Potential topics include use of effective open-source software development techniques such as agile methods, automated code generation, testing strategies, development tools and environments, patterns, metrics in the development process, successful teamwork, and training aspects of CMMI. Each student will select and report on a software engineering topic, independently research a topic, and prepare a paper describing a major software engineering issue. The course is taught using a seminar format in which significant portions of the class period are set aside for students to lead and actively participate in discussions.
One software engineering course beyond 605.601 Foundations of Software Engineering or permission of the instructor.