CS-540 Software Engineering (Fall 2011; formerly CS-584 in Fall 2009/Fall 2010)
This course became a required graduate course for selected computer science concentrations in 2011.
Syllabus, schedules for various semesters available via: http://www.mathcs.emory.edu/~jsmit52
Content:
Software engineering as a discipline has evolved in conjunction with computer hardware and programming tools. Despite its infancy, SW Engineering has some fundamental processes that are recognized as essential to the production of quality software that meets customer requirements. Both the ACM (as "SE2004") and the IEEE (as "Software Engineering Body of Knowledge" or "SWEBOK") have defined a set of skills that practitioners of software development should possess. These include Requirements, Design, Construction, Testing, Quality Control, and Configuration Management. This course seeks to teach principles of software engineering through hands-on experience in a major project in which the students will fulfill the roles found in typical software engineering teams (designer, developer, tester, planner, etc.). In addition, the student will be introduced to applied concepts in software engineering through the blogs and writings of some of today's most noted practitioners. The projects developed by the class teams will be formally released as part of the University's web products at the end of the semester. The required text is Software Engineering: A Practioner's Approach (7th ed.) by Roger Pressman.