Books used.
- Michael Huth and Mark Ryan, Logic in Computer Science: modeling and reasoning about systems, Cambridge University Press.
- Aditya Mathur, Foundations of Software Testing, in print.
- Alfred V. Aho, Monical S. Lam, Ravi Sethi, and Jeffrey D. Ullman, Compilers Principles, Techniques, & Tools.
Suggested readings.
- Edmund Clarke and Orna Grumberg, Model Checking, The MIT Press.
- Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, Design Patterns.
- Beck, Extreme Programming explained — Embrace Change.
- Len Bass, Paul Clements, and Rick Kazman, Software Architecture in Practice .
- Fowler, Refactoring: Improving the Design of Existing Code