Learning Objectives

To learn all different paradigms of programming, their advantages and disadavantages and to be able to apply in practical problems.

Learning Outcomes

To be able to choose appropriate paradigm based on the situation given.

Syllabus

Introduction to paradigms of programming. Definition, motivation, and use cases. A brief history of programming languages and paradigms.

Imperative paradigm: Conditional, and iteration blocks, functions, data types. Recursion, block structure, abstract data types, local - global variables, static - dynamic types Control flow diagrams, syntax tree, sentinel

Object oriented paradigm: Introduction to objects, entity diagrams, UML Grouping Data and operations, Information Hiding and Abstract Data Types, Inheritance, Polymorphism,Templates

Functional paradigm: 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 Lambda calculus

Logic paradigm: Review of predicate logic, clausal-form logic, logic as a programming language, Unification algorithm, Abstract interpreter for logic programs, Semantics of logic programs. Definite clause grammars

Text books

  1. Programming Languages: Principles and Paradigms, Maurizio Gabbrielli, Simone Martini, Springer; 2010 edition (15 April 2010) ISBN-13: 978-1848829138
  2. Programming Languages: Concepts & Constructs, Ravi Sethi, Pearson Education; 2 edition (2006) ISBN-13: 978-8177584226
  3. Programming Language Pragmatics, Scott Michael L, Elsevier India (2014) ISBN-13: 978-8131222560

Past Offerings

  • Offered in Aug-Nov, 2023 by Piyush Kurur
  • Offered in Aug-Dec, 2022 by Piyush P. Kurur
  • Offered in Jul-Dec, 2021 by Piyush
  • Offered in Jul-Dec, 2020 by Piyush
  • Offered in July-Dec, 2019 by Piyush
  • Offered in July-Dec, 2018 by Piyush
  • Offered in July-Dec, 2017 by Mrinal

Course Metadata

Item Details
Course Title Paradigms of Programming
Course Code CS3030
Course Credits 3-0-0-3
Course Category PMT
Approved on Senate 6 of IIT Palakkad