Course CSL665: Introduction To Logic and Functional Programming

  1. Department proposing the Course: Department of Computer Science and Engineering
  2. Course No.: CSL665
  3. L-T-P structure: 3-0-2
  4. Credits: 4
  5. Course Title: Introduction To Logic and Functional Programming
  6. Prerequisites: Programming skills, data structures
  7. Status, i.e. category-program combination of this course:  PC (M Tech Programme Core) Not open to UG/Dual.
  8. Overlap with any existing course of the Department? Minimal overlap with Logic (CS253F | CSL343) and Programming Languages (CS232F | CLS302)
  9. Overlap with other UG/PG courses from other Departments/Centers:  No
  10. Frequency of offering: ODD semester ANNUAL
  11. Faculty who will teach the course:
    1. Sanjiva Prasad
    2. S. Arun-Kumar
    3. Saroj Kaushik
  12. Will the course require any visiting faculty? No

  13. If yes, then specify number and duration. .
  14. Course objective (about 50 words): Objective of the course is to introduce applicative/declarative style of computing based on mathematical principles, as opposed to the imperative style. There are mainly two computing paradigms in the applicative/declarative category, one based on resolution and the other on reduction. Logic and Functional languages are associated with these two important classes of declarative languages.
  15. Course contents (about 100 words): Introduction to declarative programming paradigms. The functional style of programming, paradigms of developments of functional programs, use of higher order functionals and pattern-matching. Types, type-checking and their relationship to logic. Logic as a system for declarative programming. The use of pattern-matching and programming of higher order functions within a logic programming framework. Introduction to symbolic processing, The use of resolution and theorem-proving techniques in logic programming. The relationship between logic programming and functional programming. Laboratory exercises will focus on the following: unification, resolution, theorem proving and pattern matching and type inferencing.
  16. Lecture outline with topics and no. of lectures
  17. Topics No. of lectures
    Introduction to procedural and declarative paradigms 3
    Functional programming and Lambda calculus 10
    Lazy and eager evaluation techniques 3
    Type systems and type-checking 3
    Higher order functions and pattern matching in functional programming 4
    Propositional and Predicate logic 10
    Logic programming in Prolog 7
    Higher order functions and pattern matching in logic progamming 2
  18. Brief description of tutorial activities:
  19. Brief description of laboratory activities:
  20. Suggested texts and reference materials: 1. Laurence C .Paulson.ML for working programmers. Cambridge University Press. 2. Reade Chris.Elements of functional programming.Addison-Wesley. 3. Henderson .Peter.Functional programming-Applications and implementation.Pretice Hall. 4. J.W.Lloyd.foundations of logic programming.springer-verleg.New York. 5. John Kelly, The Essence of Logic, Prentice Hall of India, 1997. 6. Anil Nerode &Richard A. Shore.Logic for applications.Springer-verleg. 7. Sterling L., & Shapiro E. The art of Prolog (Advanced Programming Technoques), Prentice Hall of India, 1996. 8. Saroj Kaushik, Logic and Prolog Programming, New Age International 2002.
  21. Resources required for the course:
  22. Design content of the course
  23. Date: 6 June 2003 Signature of Head of Department