Advanced Software Engineering


Credit Hours:



Software engineering is a complex endeavor. Software engineers work in diverse teams to create and comprehend complex information, such as: code structure, implementation rationale, dynamic software behavior, change implications, and team dynamics. In this class, we will learn modern software engineering practices and discuss state-of-the-art research in software engineering. The students will work on research projects to understand and extend the state of the art in software engineering.

Topics Covered:

  1. Software process and lifecycle: Requirements analysis, design, testing, release, maintenance
  2. Empirical software engineering; socio-technical approaches and findings
  3. Reuse-oriented programming and open-source software (e.g. code search, trust)
  4. Security and automated testing tools (static/dynamic/fuzzing)
  5. Software improvement (code clones, similarity detection)
  6. Software archaeology and code comprehension
  7. Software 2.0; AI and machine learning


Undergraduates: ECE 368 and another programming-intensive course: One of ECE 30862 (OOP), 461 (SE), 463 (Networks) 468 (Compilers), 469 (OS), comparable course from CS with instructor approval, or comparable experience (e.g. programming-intensive internship; substantial outside projects

Graduate students: No formal prerequisites, but appropriate programming experience will be essential to understand the material.

Applied / Theory:

Web Address:


Approximately 6 homework assignments


1 semester-long project


1 midterm exam


Winters, Titus, Tom Manshreck, Hyrum Wright, and Safari, an O???Reilly Media Company. Software Engineering at Google. 1st ed. 2020. Available online in full-text through the Purdue Libraries.

Sommerville, Ian. Software Engineering. 10th ed. Pearson India; 2018. ISBN-10: 9332582696

Recommended Reference:
Brooks, Frederick P. The Mythical Man-month: Essays on Software Engineering. Anniversary ed. Reading, Mass.: Addison-Wesley Pub., 1995. Web. Available online in full-text through the Purdue Libraries.

Computer Requirements:

ProEd Minimum Requirements: