BIRLA INSTITUTE OF TECHNOLOGY AND SCIENCE, Pilani
Pilani Campus
Instruction Division
FIRST SEMESTER 2017-2018
Course Handout (Part II)
Date: 02-08-2017
In addition to part I (General Handout for all courses appended to the time table) this portion gives further
specific details regarding the course.
Course No: CS F301
Course Title: Principles of Programming Languages
Instructor-in-charge: Dr. Lavika Goel([Link]@[Link])
Instructors: Saiyedul Islam <sislam@[Link]>,
Sandhya <p2015007@[Link]>
Course Website: [Link] (Learning Management System)
1. Course Description
The course covers features of programming languages and introduces the main programming paradigms. It
covers, in detail, the semantics of the features of programming languages –Control Abstraction, Data Types
and Data Abstraction, Scope and Parameter passing and Concurrency related features. It covers various
aspects of runtime environments like global and local data, code, function call stacks, dynamically allocated
data, runtime features for exceptions and threads. Introduction to programming paradigms. Functional
paradigm – introduction to syntax of common functional programming languages and programming
exercises that explore the functional paradigm. Logic programming paradigm - formal elements of logic
programming and programming tasks that explore the logic paradigm. Scripting as a paradigm. Domain
specific languages.
2. Scope and Objectives
Develop familiarity with the different paradigms of languages (imperative, functional, object
oriented and logic) in programming and understanding the features of programming languages like
abstraction, data types, etc.
Understand the aspects of run-time environments like global and local data, function call stacks and
static and dynamic allocation of data.
Implementing theobject oriented concepts and understanding design issues in OOP languages.
Introduction to the syntax and semantics of common functional programming languages and
exposure to programming exercises in this domain.
Understand the basis of logic programming and basic elements of prolog
Understand synchronization features in concurrent programing.
2. Text and Reference Books:
[T1]. Ravi Sethi, "Programming Languages: Concepts and Constructs" 2nd Edition by Addison Wesley.
_
Please Do Not Print Unless Necessary
BIRLA INSTITUTE OF TECHNOLOGY AND SCIENCE, Pilani
Pilani Campus
Instruction Division
[R1].Robert W. Sebesta, "Concepts of Programming Languages", 10th Edition by Pearson Publishers.
[R2].Aho, Lam, Sethi and Ullman, "Compilers Principles, Techniques, and Tools". Pearson Education. Low Price Edition.
2004.
3. Lecture Schedule
Module no. Lecture sessions References Learning Outcome
1. Introduction to L1-L2: Introduction and Motivation, Language Identifying the
language paradigms Paradigms, Imperative vs. Declarative Styles of language paradigms
and features of a Programming; Programming Languages that Chapter 1 (T1) and language
programming support these styles, Compilers. Features of a evaluation criteria
Chapter 1, 2 (R1)
language Programming Language, compilers
2. Language L3-L4: Language Description, Syntactic Structure Chapter 2(T1) Understanding the
description and formal methods of
structures to Chapter 3, 4 (R1) describing the syntax,
describe imperative resolving ambiguity in
languages grammars and
converting BNF to
EBNF form and vice-
versa
3. Structured L5-L7: Control Abstraction, Structured Chapter 3 (T1) Understanding the
programming and programming, Loops and jumps need for Structured
loops Chapter 8 (R1) Programming and
Syntax Directed
Control Flow,
programming with
invariants
4. Data Types, type L8-L9: Data Representation, Primitive and Chapter 4 (T1) Identifying the
checking and type Structured Data types, ADTs; Type checking vs. Primitive Data Types,
equivalence Type Inferencing, Type Equivalence and Chapter 6 (R1) User defined ordinal
types and constructed
Subtyping.
types. Understanding
the concepts of type
checking
5. Data Layout L10-L11: Primitive Data, Structured Data Chapter 4(T1) Understanding the
Models (Arrays/Lists, Records/Structures, Variables and
Variants/Unions), Objects (Simple objects and Chapter 6 (R1) attributes of a
variable, binding
classes, Inheritance Models – Single vs. Multiple,
times, categories of
Interfaces and abstract/virtual classes). variables, Static and
Dynamic scoping
_
Please Do Not Print Unless Necessary
BIRLA INSTITUTE OF TECHNOLOGY AND SCIENCE, Pilani
Pilani Campus
Instruction Division
6. Basic Runtime L12-L13: Code vs. Data, Global vs. Local Data, Chapter 7 (R2) Identifying the
Environments Functions and Call Stacks, Dynamically allocated subprogram
data and heaps Chapter 5, 6 (R1) parameters, design
issues, semantic
models of parameter
passing.
Implementing the
parameter passing
methods
7. Procedures L14-L16: Introduction to procedures, Recursion, Chapter 5 (T1) Understanding the
Parameter Passing Methods, Call-by-Value, Call- run time
by-Reference, Call by Value Result. Scope rules for Chapter 5, 9, 10 environment,
(R1) semantics of calls and
names, static and dynamic scope rules, nested
returns,
scope, Activation Records, Lexical Scope, Dangling implementing
Pointers. subprograms,
implementing static
scoping and dynamic
scoping
8. Object Oriented L17-L18: Object Oriented Programming Paradigm Chapter 7 (T1) Understanding the
Abstraction and features, Class hierarchy, Inheritance, OOP concepts and
Information hiding. Chapter 12 (R1) design issues,
implementing
dynamic binding and
inheritance in OOP
languages
9. Basic elements of L19-L20: Introduction and basic elements of Chapter 8 (T1) Understanding the
functional Functional Programming basics of functional
programming Chapter 16 (R1) programming and
benefits of functional
programming.
10. Operations and L21-L23: Lists and associated Operations, Chapter 9, 10 Writing functions in
data types in Function Declaration, Predicate Functions, Tail (T1) scheme, learning
functional recursive functions, Higher Order Functions, basics of LISP, ML and
programming Polymorphism, Data Types. Chapter 16 (R1) Haskell.
11. Logic L24-L26: Relations, First Order Logic, Logic Chapter 11(T1) Understanding
Programming and Programming and Horn-Clause Programming, predicate calculus
Inferencing process Resolution, Unification, Deduction and Search as Chapter 15 (R1) and proving
theorems,
in Prolog a strategy for deduction, Prolog Programming,
logic programming,
Inferencing Process of Prolog. basic elements of
prolog.
Please Do Not Print Unless Necessary
BIRLA INSTITUTE OF TECHNOLOGY AND SCIENCE, Pilani
Pilani Campus
Instruction Division
12. Concurrency and L27-L28: Threads, Synchronization features Chapter 12 (T1) Implementing
Distribution (semaphores/ monitors), Shared Memory cooperation and
programming. Chapter 13 (R1) competition
synchronization in
concurrent
programming.
4. Evaluation Components
Component Mode Duration Weight
Date
Mid Semester Test Closed Book 90min 11/10 2:00 - 3:30 PM 30%
Quiz Closed Book 50min TBA 15%
Assignments Open Book TBA 10%
Comprehensive Closed / Partially Open 3 hours 7/12 FN 45%
Book
After completing this course the students will be able to
1) Select suitable language paradigm based on the language evaluation criteria for choosing the
language for specific programs.
2) Understand the need for structured programming, run time environments, parameter passing,
scoping rules and ensuring type safety in imperative languages.
3) Implement the dynamic binding and inheritance concepts in object oriented languages.
4) Write simple functions in Scheme using list operations and higher order functions.
5) Understand the basic elements of logic programming in prolog.
5. Notices: All notices concerning this course will be put on the CSIS notice board OR the course website as
appropriate.
6. Chamber Consultation Hours: Monday 11-12 AM (Chamber: 6120-J)
7. Makeup Policy:
- Permission of the Instructor-in-Charge is required to take a make-up
- Make-up applications must be given to the Instructor-in-charge personally.
- A make-up test shall be granted only in genuine cases where - in the Instructor’s judgment - the
student would be physically unable to appear for the test.
Please Do Not Print Unless Necessary
BIRLA INSTITUTE OF TECHNOLOGY AND SCIENCE, Pilani
Pilani Campus
Instruction Division
- Requests for make-up for the comprehensive examination – under any circumstances – can only be
made to Dean, Instruction Division.
Instructor-in-charge
CS F301
Please Do Not Print Unless Necessary