CSC 2125, Fall'06

Syllabus

Coursework

There are no exams or even assignments in this class. Throughout the term, we will go over a large part of the textbook, supplementing it with a few recent papers from the program analysis literature.

Your workload will consist of completing an assigned weekly reading BEFORE class (I am guestimating, it will take about 6 hours a week to do well). You may be also assigned some small exercises, to enhance your understanding of the material. Those are not to be handed in but can be discussed in class. Bring to class questions, comments, suggestion for going over some aspects in more detail, as well as be prepared to step in to explain some material to your fellow classmates.

You are also responsible for leading the discussion during at least one lecture in the semester. In addition, you might be called to present an algorithm or a concept in class (15-20 minutes).

How to choose which week you should lead the discussion? Read the tentative schedule below and choose two topics you are interested in. In any given week, I reserve the right to "volunteer" people at random if no one else agrees to take on this material.

What does "leading the discussion" entail? Suppose you are responsible for the material for week N. During week N-1, skim through the assigned chapter and look for 2-3 automated verification papers (if appropriate) to supplement the theoretical exposition. At the end of the class of week N-1, give a 5-minute summary of the proposed readings, both coming from the textbook and from the papers. Discuss with me the best form of presenting this material.

Whether you are taking the course for credit or just sitting in, leading a discussion is fun and does not actually take all that much work! And, more importantly, I will be after you, so please volunteer!

Marking Scheme:

Class participation 50%
Discussion leading, "presentation" 50%

Lecture Notes

Week Date Topics Readings Leader Homework
1 Sep. 12 Introduction, course organization, setup [PPT] [PDF] NONE Marsha NONE
2 Sept. 19 Data-flow analysis.[PPT][PDF] NNH Ch. 1, NNH Ch. 2.1-2.2 Marsha HW1 Sols
3 Sept. 26 Interprocedural data-flow analysis (RHS95) and applications: ESP and Metal. NNH Ch. 2.5, [RHS95], [CFRWZ91], [HCXE02], [DLS02]. Read NNH 2.3-2.4 if you have time Tom HW2 Sols
4 Oct. 3 Lambda calculus, Type systems [PCh5], [C04] Justin HW3 Sols
5 Oct. 10 Finish prev. lecture and Applications of type analysis [NCW02], [FTA02], [DF01] Kelvin HW4 Sols
6 Oct. 17 NO CLASS (CASCON)
7 Oct. 24 Finish previous lecture and Shape analysis. NNH Ch. 2.6, [SRW02] Yuan Yong HW5 Sols
8 Oct. 31 Finish previous lecture and Program semantics [Sch96], [Sch98], Torsten HW6 Sols
9 Nov. 7 Finish previous lecture and Slicing [Tip95], [RABDH05], [ZGG06] Mihaela TBA
11 Nov. 14 Abstract interpretation [C00], part 2 of [SchNotes], [C05] Anya TBA
12 Nov. 21 Interprocedural analysis, cont'd [JS04] [RHS95], [BR00], [BR01] Ou TBA
13 Nov. 28 Abstract interpretation: widening [NNH Ch. 4.2], [Hal06], [BRP02] Shiva TBA
13 Nov. 30 (additional lecture) Axiomatic semantics, weakest precondition [D75], [H69], [NN Section 6.2], [Necula07] Jocelyn + Ramy HW9
14 Dec. 5 Abstract Interpretation tools, Spec#, ESC/Java [BCCFMMMR03], [Sch06], etc. Ramy + Tom TBA
15 Dec. 12 Applications (bddbddb + testing + others) + course summary [J04], etc. Yuan Gan TBA

Marsha Chechik
Last modified on November 28, 2006.