Syllabus

Program Analysis (CSCI-4450/6450)

Meetings: SAGE 3713, MTh 12-1:50pm
Website: http://www.cs.rpi.edu/~milanova/csci4450

Brief Course Description

 

The course is mostly concerned with the theory of program analysis and its applications to software engineering and security.

 

Prerequisite: CSCI 4430 Programming Languages

 

Learning Outcomes

 

The goal of this course is to introduce students to the fundamentals of program analysis and its many applications to software engineering and security.

 

Concretely, students who successfully complete the course should be able to 1) understand and apply well-known program analysis formalisms: dataflow analysis, abstract interpretation, types and type-based analysis, and axiomatic semantics, 2) implement various program analyses in Java and Haskell using tools such as Soot, Checkers and Z3, and 3) demonstrate competence across programming paradigms.

 

No Required Textbook

 

Optional Textbooks

 

Papers (usually publicly available online), lecture notes and handouts will be assigned throughout the course.

 

Principles of Program Analysis by Flemming Nielson, Hanne Riis Nielson, and Chris Hankin, Springer, 1999.

 

Compilers: Principles, Techniques and Tools, by Alfred Aho, Monica Lam, Ravi Sethi, and Jeffrey Ullman (the Dragon Book), Addison-Wesley, 2007.

 

Types and Programming Languages, by Benjamin C. Pierce, The MIT Press, 2002.

 

Homework Assignments

 

There are about 7-8 homework assignments, which will be either problem sets, or larger programming assignments broken into parts. Assignments are individual, unless otherwise specified. Some assignments demand more intensive writing --- on one occasion you will be asked to reproduce results from a classical paper, and analyze your finding in a 2-page paper.

 

Assignments are due on the due date at 2pm. You have 6 late days for the entire semester without penalty with a maximum of 2 late days per assignment. Exceptions to this policy will be allowed only for emergencies sanctioned by your class dean.

 

Quizzes

 

There are 8 open-notes in-class quizzes, which can be completed individually or in small groups.

 

Exam

 

There is one take-home final exam.

 

Presentation

 

Each student will give a 20-30 minutes presentation of a technical paper from a reading list.

 

Grading

 

The final grade will be computed according to the formula:

 

Quizzes – 20%

Assignments – 40%

Presentation – 10%

Take-home final – 25%

Attendance and participation – 5%

 

Letter grade assignment (grade modifiers are subject to adjustments):

 

[92 – 100]: A

[90 – 92): A-

[88 – 90): B+

[82 – 88): B

[80 – 82): B-

[78 – 80): C+

[72 – 78): C

[70 – 72): C-

[60 – 70): D

[0 – 60): F.

 

Graduate Students

 

Graduate students registered for CSCI-6450 are held to higher grading standard and are expected to complete a research paper critique. An average of [96-102) AND a satisfactory research paper critique will earn an A in the course. Average of [92-96) AND a satisfactory research paper critique will earn an A-, and an average of [90-92) AND a satisfactory research paper critique will earn a B+.

 

If your average is < 90, the paper critique will not be taken into account and your grade will be assigned according to the table above, with the exception that [88-90) will be a B. If your average is 90 or higher AND the paper critique is NOT satisfactory, your grade will be B.

 

 

Academic Integrity

 

From The Rensselaer Handbook of Student Rights and Responsibilities (2012-2016): Intellectual integrity and credibility are the foundation of all academic work. A violation of Academic Integrity policy is, by definition, considered a flagrant offense to the educational process. It is taken seriously by students, faculty, and Rensselaer and will be addressed in an effective manner.

If found responsible for committing academic dishonesty, a student may be subject to one or both types of penalties: an academic (grade) penalty administered by the professor and/or disciplinary action through the Rensselaer judicial process described in this handbook.

 

Assignments must be completed individually, unless otherwise stated. We encourage discussion, however, carrying out material (e.g., photos, writing) from a discussion is not allowed. The actual work must be your own. Submitty has advanced plagiarism detection capabilities, which we will use on every homework assignment. Excessive similarities between different submissions will result in grade penalties for all students involved, and a referral to the Dean of Students.

 

Exams are to be completed individually, using only materials allowed by the instructor. Excessive similarities between exams will result in grades of 0 for all students involved and a referral to the Dean of Students.