CS 6888 - Fall 2020

Program Analysis
and its Applications

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

Covid-19 Adjustments (subject to change): This is going to be another weird semester, with remote learning and covid-struggles of different types, so 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.

Instruction

Sebastian Elbaum

http://www.virginia.edu/~se4ja
Office Hours: by appointment

TA: Trey Woodlief

Office Hours: Wednesday 10AM-12PM
Email: adw8dm at virginia dot edu

Scope

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.

Delivery

This class will be online and with synchronous, meaning that you do *not* come to Grounds, but are expected to virtually attend the course.
The course will consist of lectures on the first course day of the week and often Q&A, quizzes, and presentations on the second day of the week. Your presence and active participation are required and important to creating the most effective and engaging learning experience. If you have troubles meeting the online 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.

Prerequisite(s)

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:

3

Graduate Requirement Designation:

Software Engineering

Materials:

  • 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% (10%,10%,10%)
  • 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’s 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.

    Grading.

    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.

    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.