Covid-19 Adjustments (subject to change)

This class will be online, with asynchronous lectures and synchronous labs.


This course will explore state-of-the-art techniques that make the analysis of various software artifacts cost-effective. Topics include dynamic and static program analysis techniques, such as automated test generation, fault localization and debugging, model inferencing,and type checking. The course includes the utilization of research tools and the development of aclass project that builds and improves on existing techniques.


We will alternate lectures and labs, and sprinkle a few research talks. There will be plenty of room to roam as the assignments will leave space to grow in areas less covered by the course. A heavywork-load can be expected when the assignments/project are due. There will be little hand-holding in terms of support to set the tools and complete the assignments as I expect for everyone to have the technical and programming skills of an undergraduate CS major.


Advanced Software Development Techniques or Software Engineering course orequivalent, expertise in at least one modern programming language. For undergraduates, instructor's permission is required.

Credit Hours:


Requirement Designation:

Software Systems Area


  • No textbook is required. Instructor will provide necessary reading material as part of the course.
  • Laptop/workstation is required for class work.

    Grade Distribution

  • Assignments 40%
  • Quizzes on readings 20%
  • Lightning Tool Talk 10%
  • Project (proposal, presentation, report) 30% (10%,10%,10%)