Paradigms of Programming

Paradigm can also be termed as method to solve some problem or do some task. Programming paradigm is an approach to solve problem using some programming language or also we can say it is a method to solve a problem using tools and techniques that are available to us following some approach.

Objectives

The course gives an overview of programming paradigms. It deals with the concepts common in various imperative programming languages. Furthermore, object-oriented programming is thaught. The fundamentals of declarative programming paradigm and its use in modern programming languages are illustrated as well. The final course topic covers the use of parallelism.

Important Links

Course Topics:

  • Introduction to different paradigms of programming: Imperative - Object Oriented - Functional - Logic Imperative and Object-oriented Programming - Role of Types - Static and Dynamic Type Checking - Scope rules ; Grouping Data and operations, Information Hiding and Abstract Data Types, Objects, Inheritance, Polymorphism,Templates.
  • Functional Programming - Expressions and Lists, Evaluation, types, type systems, values and operations, function declarations, lexical scope, lists and programming with lists, polymorphic functions, higher order and Curried functions, abstract data types.
  • Logic Programming - Review of predicate logic, clausal-form logic, logic as a programming language, Unification algorithm, Abstract interpreter for logic programs, Semantics of logic programs, Programming in Prolog.

Textbook:

  • Programming Languages: Concepts and Constructs; 2nd Edition, Ravi Sethi, Pearson Education Asia, 1996.

References:

  • Programming Languages: Design and Implementation (4th Edition), by Terrence W. Pratt, Marvin V. Zelkowitz, Pearson, 2000.
  • Programming Language Pragmatics, Third Edition, by Michael L. Scott, Morgan Kaufmann, 2009.