CS 6888 - Fall 2021

Program Analysis
and its Applications

T/Th 2:00PM to 3:15PM

Mechanical Engr Bldg 213

As we face Covid-related struggles, let's be patient with each other, let's be honest with each other, and let's strive to learn as much as possible within our means. And let's definitely be safer by complying with the University policies including the mask mandate!


Instructor: Sebastian Elbaum

Office Hours: Virtual - Tuesday from 3:30PM to 5:00PM of by appointment (check collab for Zoom session)

TA: Trey Woodlief

Office Hours: Virtual - Wednesday 10AM-12PM (check collab for Zoom session)
Email: adw8dm at virginia dot edu

TA: Felipe Toledo

Office Hours: Virtual - Monday 9AM-11AM (check collab for Zoom session)
Email: ft8bn at virginia dot edu


As software technology has become increasingly pervasive causing software systems to affect all aspects of our society, there is an urgent need for the development of efficient techniques for creating high-quality software. To help meet these challenges, software analyses, a body of work that discovers and predicts facts about a program, has been developed. This course will cover traditional and state-of-the-art techniques. 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 a class project that builds and improves on existing techniques.


The course will consist of lectures on Tuesdays and mostly Q&A, quizzes, and presentations on Thursdays. Your presence and active participation are important to creating the most effective and engaging learning experience.

However, if you have troubles meeting the attendance requirement due to covid-19 or other issues, promptly reach the instructor by email to discuss potential alternatives.

A heavy workload 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 or equivalent, expertise in at least one modern programming language. For undergraduates, instructor's permission is required.

Credit Hours:


Graduate Requirement Designation:

Software Engineering


  • No textbook is required.
  • Instructor will provide necessary reading material as part of the course through UVA Collab.
  • Grade Distribution

  • Assignments 40%
  • Quizzes on materials and readings 20% -- drop lowest
  • Lightning Tool Talk 10%
  • Project (proposal, presentation, report) 30% (5%,10%,15%)
  • Course Policies

    Letter Grade Distribution.

    [98,100]: A+
    [93, 98): A
    [90, 93): A-
    [87, 90): B+
    [83, 87): B
    [80, 83): B-
    [77, 80): C+
    [73, 77): C
    [70, 73): C-
    [67, 70): D+
    [63, 67): D
    [60, 63): D-
    [0, 60): F

    Honor Code Compliance.

    Every student in this course must fully comply with all the provisions of the University Honor Code (http://honor.virginia.edu). All graded assignments and quizzes must be pledged.

    Independent work.

    Students are expected to work independently unless instructed otherwise. *Offering* and *Accepting* solutions (e.g., code, tests, text, quiz answers) from others is a serious offense. All suspected violations will be forwarded to the Honor Committee, and you may, at the instructor discretion, receive an immediate zero on that assignment and fail the course regardless of any action taken by the Honor Committee.

    Late Assignments.

    Late assignments will earn partial credit so you are encouraged to submit them even if late, weighting the late penalty against the completeness of your assignment. Unless otherwise stated, late assignments will be penalized 20% off the total possible points per late day. If you anticipate having troubles finishing an assignment in time please email me to discuss it.


    If you are dissatisfied with a grade please consult me directly within a week of the day the graded assignment was returned to you. No regrade requests will be considered after this week period.


    Our class will diligently follow all University regulations in effect. If masks are required during a certain period, then they are absolutely required for class. If policy changes, then we will adjust accordingly. Failure to mask if a regulation is in effect will result in reporting to UJC and a professionalism penalty for the class. While mask regulations are in effect, we ask that while in class you remain masked the entire time. This means no food or drink in the classroom.

    Managing other Challenges.

    If you anticipate any issues related to the format, materials, or requirements of this course, please email me so we can explore potential options. Students with disabilities may also wish to work with the Student Disability Access Center (sdac.studenthealth.virginia.edu). If you are struggling with violence or discrimination, I am ready to provide support and guide you towards the many resources available at the University of Virginia. If you need academic accommodation for a religious observance, please submit an email request to me as far in advance as possible.