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

Metadata

Proposing Faculty: Department: Computer Science and Engineering Programme: B.Tech Proposing date: Approved date: Proposal type: Offerings: