CS 639: Program Analysis, Verification and Testing


Discrete Mathematics (CS 201), Data Structures and Algorithms (CS 210), Theory of Computation (CS 340)

Course Contents:

The long yearned dream of establishing the correctness of programs has cata-pulted program analysis, verification and testing into the league of the one of the most exciting research areas. This course aims to impart the students a grasp of the theoretical fundamentals of the subject; alongside, it also intends to provide them a purview of the practise via the study of some of the modern verification and testing tools.

Following is the outline of the proposed course:

Books and References:

  1. Edsger Wybe Dijkstra. A Discipline of Programming. Prentice Hall PTR, Upper Saddle River, NJ, USA, 1997.
  2. David Gries. The Science of Programming. Springer-Verlag New York, Inc., Secaucus, NJ, USA, 1987.
  3. S. S. Muchnick and N. D. Jones, editors. Program Flow Analysis: Theory and Applications. Prentice-Hall: Englewood Cliffs, NJ, 1981.
  4. Flemming Nielson, Hanne R. Nielson, and Chris Hankin. Principles of Pro-gram Analysis. Springer-Verlag New York, Inc., Secaucus, NJ, USA, 1999.
  5. Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman. Compilers: Principles, Techniques, and Tools (2nd Edition). Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 2006.
  6. Michael Huth and Mark Ryan. Logic in Computer Science: Modelling and Reasoning about Systems. Cambridge University Press, New York, NY, USA, 2004.
  7. Edmund M. Clarke, Jr., Orna Grumberg, and Doron A. Peled. Model check-ing. MIT Press, Cambridge, MA, USA, 1999.
  8. Glenford J. Myers. Art of Software Testing. John Wiley & Sons, Inc., New York, NY, USA, 1979.
  9. Cem Kaner, Hung Q. Nguyen, and Jack L. Falk. Testing Computer Software. John Wiley & Sons, Inc., New York, NY, USA, 1993.

and relevant Research Papers.