DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING
NATIONAL INSTITUTE OF TECHNOLOGY, TIRUCHIRAPPALLI
COURSE PLAN – PART I
Course Title PRINCIPLES OF PROGRAMMING LANGUAGES
Course Code CSPC31 No. of Credits 04
Course Code of Pre-
______ Semester III
requisite subject(s)
Section
Session JULY 2021 B
(if, applicable)
Name of Faculty Department CSE
Dr. S. Jaya Nirmala
Email sjaya@nitt.edu Telephone No. 0431 - 2503217
Name of Course
Coordinator(s) _______
(if, applicable)
E-mail ________ Telephone No. ________
Course Type Core course Elective course
√
Syllabus (approved in BoS)
UNIT - I
Syntax and Semantics and Basic Statements: Evolution of programming languages –describing syntax
& semantics –lexical analysis –parsing –recursive-decent –bottom up parsing–primitive data types –strings
–array types –associative arrays –record types –union types –pointers and references –Arithmetic
expressions –relational and Boolean expressions –assignment statements –mixed-mode assignments –
control structures –selection –iterations –branching –guarded statements. *
UNIT - II
Subprograms and Implementations: Subprograms –design issues –local referencing –parameter passing
–overloaded methods –generic methods –design issues for functions –semantics of call and return –
implementing simple subprograms –stack and dynamic local variables –nested subprograms –blocks –
dynamic scoping. *
UNIT - III
Object-Orientation, Concurrency, and Event Handling: Object-orientation –design issues for OOP
languages –implementation of object-oriented constructs –concurrency –semaphores –monitors –message
passing –threads –statement level concurrency –exception handling –event handling. *
UNIT - IV
Functional Programming: Introduction to lambda calculus –fundamentals of functional programming
languages –Programming with Scheme –Introduction to LISP - Lists - Storage allocation for lists - Some
useful functions - Error handling. *
UNIT - V
Logic Programming: Introduction to logic and logic programming- Computing with relations –
Programming with Prolog- Data structures in Prolog - Programming techniques - Control in Prolog -
Cuts.–multi-paradigm languages.*
*Lab Component - Programming assignments are mandatory.
Page 1 of 6
Text Books:
1. Robert W. Sebesta, “Concepts of Programming Languages”, Tenth Edition, Addison Wesley,
2012.
2. Michael L. Scott, “Programming Language Pragmatics”, Third Edition, Morgan Kaufmann, 2009.
Reference Books:
1. R. Kent Dybvig, “The Scheme programming language”, Fourth Edition, MIT Press, 2009.
2. Allen B Tucker and Robert E Noonan, “Programming languages – Principles and Paradigms”,
Second Edition, Tata McGraw Hill, 2007
3. Jeffrey D. Ullman, “Elements of ML programming”, Second Edition, Prentice Hall, 1998.
4. Richard A. O'Keefe, “The craft of Prolog”, MIT Press, 2009.
5. W. F. Clocksin and C. S. Mellish, “Programming in Prolog: Using the ISO Standard”, Fifth
Edition, Springer, 2003.
COURSE OBJECTIVES
To understand the various ways to describe syntax and semantics of programming languages
To understand data, data types, and basic statements of programming languages
To understand parameter passing and function call mechanisms
To understand object-orientation, concurrency, and event handling in programming languages
To acquire knowledge about functional and logic programming paradigms
COURSE OUTCOMES (CO)
Upon completion of this course, the students will be able to:
Define data types, functions, syntax and semantics of all programming languages
Use the various styles of programming languages for any given problem
Compare and use appropriate parameter passing technique for solving problems
Distinguish between the usage of all programming languages
Apply the appropriate programming language to solve real-world problems
Mapping of Course Outcomes with Programme Outcomes
PO-1 PO-2 PO-3 PO-4 PO-5 PO-6 PO-7 PO-8 PO-9 PO-10 PO-11 PO-12
CO - 1 √ √ √ √
CO - 2 √ √ √ √ √
Page 2 of 6
CO - 3 √ √ √ √
CO - 4 √ √ √ √
CO - 5 √ √ √ √
M S M
M
B M
COURSE PLAN – PART II
COURSE OVERVIEW M
This course mainly describes about the syntax, semantics and implementation of various
programming language paradigms.
COURSE TEACHING AND LEARNING ACTIVITIES
S.No. Week/Contact Hours Topic Mode of Delivery
(Online)
Evolution of programming languages –
describing syntax & semantics
Lexical analysis –Parsing –recursive-
1 1/3 PPT
decent –bottom up parsing Primitive data
types –strings Array types associative
arrays –record types
Online mode of
2 1/2 Lab Component * evaluation
Union types –Pointers and references
Arithmetic expressions –relational and
3 2/3 Boolean expressions PPT
Assignment statements Mixed-mode
assignments
Online mode of
4 2/2 Lab Component
evaluation
Control structures – Selection Iterations
5 3/3 Branching – guarded statements PPT
Programming Assignments
Online mode of
6 3/2 Lab Component
evaluation
Subprograms –Design issues
Local referencing –Parameter passing
7 4/3 PPT
Overloaded methods –generic methods
Design issues for functions
Online mode of
8 4/2 Lab Component
evaluation
Semantics of call and return –
implementing simple subprograms
9 5/3 Dynamic local variables –Nested PPT
subprograms Blocks –Dynamic scoping
Programming Assignments
Online mode of
10 5/2 Lab Component
evaluation
Page 3 of 6
Object-orientation –design issues for
11 6/3 OOP languages Implementation of PPT
object-oriented constructs –Concurrency
Online mode of
12 6/2 Lab Component
evaluation
Semaphores Monitors Message passing
Threads –statement level concurrency
13 7/3 PPT
Exception handling –Event handling
Programming Assignments in C++
Online mode of
14 7/2 Lab Component
evaluation
Introduction to lambda calculus
Fundamentals of Functional
15 8/3 programming languages PPT
Programming with Scheme –
Introduction to LISP
Online mode of
16 8/2 Lab Component
evaluation
Lists - Storage allocation for lists
17 9/3 Some useful functions - Error handling PPT
Programming Assignments in LISP
Online mode of
18 9/2 Lab Component
evaluation
Introduction to logic and logic
19 10/3 programming- Computing with relations PPT
Programming with Prolog - Introduction
Online mode of
20 10/2 Lab Component
evaluation
Data structures in Prolog
Programming techniques - Control in
21 11/3 PPT
Prolog Cuts – Multi-paradigm languages
Programming Assignments in PROLOG
Online mode of
22 11/2 Lab Component
evaluation
* Lab component of two hours is considered as one credit of Theory class.
COURSE ASSESSMENT METHODS
S.No. Mode of Assessment Week/Date Duration % Weightage
1 Assessment 1 (written Test) SEP’21 1st week 1 hour 20
OCT’21 1st
2 Assessment 2 (written Test) 1 hour 20
week
Page 4 of 6
Theory Assignment AUG’21 3rd week
3 ___ 15
Lab Assignment
4 SEP’21 3rd week ___ 15
CPA Compensation Assessment NOV’20 4th week 1 hour 20
5 Final Assessment (written Test) DEC’21 1st week 3 hours 30
100
TOTAL
COURSE EXIT SURVEY
Feed backs are collected after the end semester exam in the feedback forms.
Suggestions from the students are incorporated for making the course more sympathetic and
motivating.
Students may give their feedback at any time, through their class representatives to the
concerned faculty and also in the class committee meetings.
COURSE POLICY
MODE OF CORRESPONDENCE (email/ phone etc)
Both email and phone
COMPENSATION ASSESSMENT
Compensation assessment (Retest) will be conducted for absentees in assessment 1 or assessment 2 only
after the submission of medical or On-Duty certificates signed by competent authority. The portions for
compensation assessment will be the portions of assessment 1 and assessment 2.
ATTENDANCE POLICY
At least 75% attendance in each course is mandatory.
A maximum of 10% shall be allowed under On Duty (OD) category.
Students with less than 65% of attendance shall be prevented from writing the final assessment
and shall be awarded 'V' grade.
ACADEMIC DISHONESTY & PLAGIARISM
Possessing a mobile phone, carrying bits of paper, talking to other students, copying from others
during an assessment will be treated as punishable dishonesty.
Zero mark to be awarded for the offenders. For copying from another student, both students get
the same penalty of zero mark.
Page 5 of 6
The departmental disciplinary committee including the course faculty member, PAC chairperson
and the HoD, as members shall verify the facts of the malpractice and award the punishment if
the student is found guilty. The report shall be submitted to the Academic office.
ADDITIONAL INFORMATION
The students can clarify their doubts at any time during working hours from the faculty with prior
appointment.
FOR APPROVAL
Course Faculty CC-Chairperson HOD
(Dr. S. JAYA NIRMALA) (Dr. S. MARY SAIRA BHANU) (Dr. RAJESWARI SRIDHAR)
Page 6 of 6