Pre-requisites : NIL

Syllabus :
Introduction to Programming in ML/Haskell/Scheme: Functional programming paradigm, evaluation, type and type checking, data types, higher order functions. Introduction to Programming in Prolog: Logic programming paradigm, unification andresolution, data structures in Prolog, cuts. Concurrent Programming: Threads, processes, synchronization monitors, concurrent objects, concurrent programming in Java/MPI/CILK.

Texts :
1. Ravi Sethi, K.V. Vishwanatha, Programming Languages: Concepts and Constructs, 2/e, Pearson Education, 2007.
2. Robert W. Sebesta, Concepts of Programming Languages, 8/e, Pearson Education 2008.

References :
1. Jeffrey D. Ullman, Elements of ML Programming, Prentice Hall-Gale 1994.
2. William F. Clocksin, Christopher S. Mellish, Programming in Prolog , 5/e , Springer 2004.
3. Maurice Herlihy, Nir Shavit, Art Of Multiprocessor Programming, Elsevier 2009.
4. Cameroon Hughes, Tracey Hughes, Parallel and Distributed Programming using C++, Addison-Wesley 2008.