FIRST SEMESTER 2020-2021
Course Handout Part II
Date: 17/08/2020
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. R Gururaj
Dr. Jabez J Christopher, Mr.Gourish G, Mr.P. Venkata Krishna
1.Scope and Objectives of the Course:
Programming languages play a significant role in writing programs (set of instructions) for execution by
computers. High-level programming languages facilitate writing computer programs with ease without having
to understand the HW specifics on which the programs are run. With this we can focus on solution to the
problem rather than worrying about HW details.
This course covers features of programming languages and introduces the main programming paradigms and
their applications. It covers approaches for specifying the structure/syntax of the programming languages with
details about the semantics of the features of programming languages. Also provides an overview of lexical and
Syntax analysis. This also covers naming, binding and scoping concepts pertaining to programming languages.
This course also details the structure of sub-programs and implementation specifics, with parameter passing
approaches and various aspects of runtime environments like global and local data, code, function call stacks,
dynamically allocated data. This course also gives a briefing on runtime support required for exception handling
and concurrent programming. It also gives an idea about concepts of Logic programming. It also covers briefing
about concepts related to Functional programming.
The Course Objectives are:
To list various programming paradigms, with a comparison on various important features.
To understand concepts like- naming, binding and scoping concepts related to programming languages.
To understand the aspects of describing the structure/syntax of programming languages.
To understand the concepts like- Data types, Abstract data types, type checking etc.
To understand the structure and implementation of sub-programs with parameter passing approaches.
To understand the exception handling and concurrent programming aspects.
To get an overview of fundamentals of Logic and Functional programming paradigms.
2. Pre requisites: C and Java programming
3.Textbooks:
1. T1. Robert Sebesta , Concepts of programming languages 10th Edition
Reference books:
1. R1 Ravi Sethi, Programming Languages - Concepts and Constructs Pearson Education. 2nd Edition.
4.Course Plan:
Chapter in
Lecture
Learning Outcomes Topics to be covered the Text
No.
Book
To provide an overview of the
course and its importance.
Introduction to PPL with
1-2 List the criteria for judging PLs. Ch.1 (T1)
Preliminaries
List the categories/domains of
PLs..
To understand the evolution of
programming languages.
Evolution of Major Programming
To understand the environments that Ch.2 (T1)
3-5 languages.
influenced the development of certain
Important Programming Paradigms.
languages.
Issues in language design.
Express formal syntax of programming
Describing Syntax and Semantics of
language using BNF
PLs. Chapter 3,
4(T1) &
6-12 Methods of semantic description
The Process of Lexical and Syntax Ch.2 (R1)
Analysis
To get an Overview of Lexical and
.
Syntax Analysis
Understanding the fundamental semantic
issues of variables. Names, bindings and scopes of
12-14 Ch.5 (T1)
To list and understand the attributes of variables. Type checking.
variables.
Identify the needs for different data Chapter 6,
types and their characteristics. Types: Data Representation, Primitive 11(T1) &
15-18
Compare different implementation of and Structured Data types, ADTs. Chapter 4
data types. (R1)
Introduction to procedures, Recursion,
Fundamentals of Sub-programs. Ch.9, 10 (T1)
Parameter Passing
Implementing sub-programs. To & Ch.5(R1)
Methods, Call-by-Value, Call-by-
19-21 understand the different parameter
Reference, Call by Value Result. Scope
passing mechanism, And class
Functions and Call Stacks,
notes
Dynamically allocated data and heaps
Understanding Concurrent programs at Concurrent execution of statements,
various levels. sub-programs.
22-24 Ch.13 & 14
To get an overview of Exception Fundamentals of PL Exception
Handling and requires support. Handling mechanism.
Logic Programming: Relations, First
Formulate problems using Logic Ch. 15(T1)
25-27 Order Logic, Logic Programming and
programming Ch. 11(R1)
Prolog.
Fundamentals of Functional
Formulate problems using functional Ch. 16(T1) &
27-30 Programming, Applications of
programming Ch.8,9,10(R1)
Functional Programming.
5. Evaluation scheme:
Component Duration Date & Time Weightage Remarks
Test-1 30 Mins. September 10 –September 20 15% Open Book
(during scheduled class Hour)
Test-2 30 Mins. October 9-October 20(during 15% Open Book
scheduled class hour)
Test-3 30 Mins. November 10-November 20 15% Open Book
during scheduled class hour)
Quizzes (four, and 2 of TBA 20% Open Book
them before mid-sem
grading)
Comprehensive Exam 2 Hrs. TBA by Timetable Division 35% Open Book
6. Make-up-Policy: Make-up (excepting Compre) may be given for genuine cases with prior permission
by IC, and after rigorous scrutiny. For Comprehensive exam, make-up has to be approved and scheduled by
AUGSD.
7. Course Notices:
All notices pertaining to this course will be displayed on CMS Course webpage.
8. Consultation: Thu, 5-6 PM. Meeting link will be shared on CMS.
9. Academic Honesty and Integrity Policy: Academic honesty and integrity are to be maintained by all
the students throughout the semester and no type of academic dishonesty is acceptable.
Instructor In-charge
CS F301