Pre-requisites : CS101,CS110,CS203,CS204

Syllabus :
Programming paradigms: imperative and declarative (introduction); Concurrent programming: basic idea, Java language introduction, concurrent programming with Java (threads and libraries); Logic programming: basic idea, Prolog introduction, logic programming with Prolog; Functional programming: basic idea, introduction to LISP/Haskell, functional programming with LIST/Haskell;

Texts :

References :
1. Handouts
2. Web references: a. https://docs.oracle.com/javase/tutorial/ b. http://www.learnyouahaskell.com/ c. https://www.tutorialspoint.com/lisp/index.htm, d. http://www.learnprolognow.org/lpnpage.php?pageid=online
3. Goetz, B. et al. Java concurrency in practice, Pearson 2006.
4. Blackburn, Patrick, Johannes Bos, and Kristina Striegnitz. Learn prolog now!, Vol. 7. No. 7. Londres: College Publications, 2006.
5. Hutton, G. Programming in Haskell, Cambridge University Press, 2016.