Syllabus
Program Analysis (CSCI-4450/6450)
Meetings:
MTh 2-3:50pm in Lally 104
Website: http://www.cs.rpi.edu/~milanova/csci4450
Brief Course Description
The course is mostly concerned with the theory of static program analysis and
its application in compilers,
software engineering and security.
Prerequisite: CSCI 4430 Programming Languages
Learning Outcomes
The goal of this course is to introduce students
to program analysis and its many applications in compilers, 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, Ghidra 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 7 homework assignments, which are either problem
sets, programming assignments or writeups. Assignments are individual, unless otherwise specified. Program Analysis carries
the Communication Intensive designation and
therefore 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 writeup.
Assignments are due on the due date at Noon. You have 10 late days for the entire semester without penalty
with a maximum of 5 late days per assignment.
Quizzes
There are 6-8 open-notes in-class quizzes, which can be
completed individually or in small groups. We will drop the lowest quiz from
the final grade.
Exam
There is one take-home final
exam.
Presentation
Each student will give an approximately 20-minute presentation of a technical paper from a
reading list and submit a critique of that paper.
Grading
The final grade for the CSCI-4550 section will be computed
according to the formula:
Quizzes - 20%
Homework assignments - 35%
Presentation and critique - 12%
Take-home final - 25%
Attendance, participation, and contribution to class - 8%
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
The final grade for the CSCI-6450 section will be computed
according to the slightly different formula:
Quizzes - 15%
Homework assignments - 38%
Presentation and critique - 12%
Take-home final - 27%
Attendance, participation, and contribution to class - 8%
Some homework assignments and the take-home final will
contain additional problems. In addition, graduate students registered for
CSCI-6450 will be held to a higher standard, notably, an average of [94-100)
will earn an A, an average of [92-94) will earn an A-, and an average of
[90-92) will earn a B+. Other averages will be assigned letter grades according
to the table above.
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. Discussion with the instructor, TA and other students
in the class is encouraged, 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 submissions or lack of understanding of
own submitted work 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 or lack of understanding of own submitted work will
result in grades of 0 for all students involved and a referral to the Dean of
Students.
Posting your work on public websites such as Github is in violation of the course policy as well.
Disability Services
Rensselaer Polytechnic Institute is committed to
providing equal access to our educational programs and services for students
with disabilities. If you anticipate or experience academic barriers due
to a disability, please contact the Office of Disability Services for Students
(DSS) (dss@rpi.edu; 518-276-8197) to establish reasonable
accommodations. Once you have been approved for accommodations, please
provide your Faculty Memorandum (a letter provided to students by DSS) to all
faculty members for this course.