0% found this document useful (0 votes)
77 views4 pages

CS F301 Principles of Programming Languages I Sem 2021-22 HO

Uploaded by

avriolopes1308
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
77 views4 pages

CS F301 Principles of Programming Languages I Sem 2021-22 HO

Uploaded by

avriolopes1308
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

BITS PILANI, DUBAI CAMPUS

ACADEMIC – UNDERGRADUATE STUDIES DIVISION


First Semester 2021 – 2022
Course Handout (Part – II)
Date: 05.09.2021
In addition to Part I (General Handout for all courses appended to the Time Table) this portion further specific
details regarding the course.
Course No : CS F301 (2 0 2)
Course Title : Principles of Programming Languages
Course Instructors : Dr B. Vijayakumar, Dr Pranav M Pawar
Instructor-in-charge : Dr. Pranav M Pawar

Scope and Objectives:


The course covers feature 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 – formal elements of lambda calculus, 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.

Course Pre/Co- requisite (if any) & Catalogue / Bulletin Description: Given in the Bulletin 2020 – 2021 –
Data Structures and Algorithms.

Text Books [TB]:


i. Ravi Sethi, "Programming Languages: Concepts and Constructs" 2nd Edition by Addison
Wesley, 2006 (Reprint 2010).

Reference Books [RB]:


i. David A Watt, William Findlay, “Programming Language Design Concepts”, John Wiley & Sons, Ltd.,
2004.
ii. Aho, Lam, Sethi and Ullman, "Compilers Principles, Techniques, and Tools". Pearson Education
Edition. 2004.
iii. Ellis Horowitz, “Fundamentals of Programming Languages”, Galgotia Pub. Ltd., 2004.
iv. Robert W. Sebesta, "Concepts of Programming Languages", 9th Edition by The Benjamin/Cummings
Publishing Company, Inc., 2009.
v. Programming Languages, Principles and Practice 3rd Edition, by Kenneth C. Louden & Kenneth A.
Lambert, Cengage Learning 2012. (online)
vi. Introduction to Programming Languages, 1st Edition, Arvind Kumar Bansal, Chapman and Hall/CRC,
Published December 14, 2013. (online)
vii. Michael L.Scott, Programming Language Pragmatics 3rd edition.
viii. Paul Barry. 2016. Head First Python, 2nd. ed.

Research topics:
1. Research issues in programming languages
2. Programming Languages for High Performance Computing

Course Plan / Schedule Sec 1: Wed 6, Thu 3 Sec 2: Wed 6, Thu 3Sec 3: Sun 3, Mon 2
S. No. Topic Learning Objectives No of Reading
Lectures
1 Introduction and Historic background, Criteria for a good 1
Motivation programming language design T (i): Ch 1,
R (iii): Ch.
1
2 Language Paradigms Imperative, Declarative, Features of a Programming 1 T (i): Ch 1,
Language, compilers Class
Notes
S. No. Topic Learning Objectives No of Reading
Lectures
3 Language Description Syntactic Structure 2 T(i): Ch.2
4 Statements: Control Abstraction, Loops, Jumps 1 T(i): Ch 3
Structured
Programming
5 Types, Data Layout Data Representation, Primitive and Structured Data 3 T(i): Ch 4
Models Types, ADTs, Type checking vs. Type Inferencing,
Type Equivalence and Subtyping, Data Layout
Models
6 Basic Runtime Code vs. Data, Global vs. Local Data, Functions 3 Class
Environments and and Call Stacks, dynamically allocated data and Notes,
Procedure Activations heaps; Introduction to procedures, Recursion, R (ii): Ch 7
Parameter Passing Methods, Call-by-Value, Call-by- T(i): Ch 5
Reference. Scope rules for names, static and
dynamic scope rules, nested scope, Activation
Records, Lexical Scope, Dangling Pointers, Tail
Recursion
7 Object Oriented Object Oriented Programming Paradigm, and 3 T(i): Ch 7
Abstraction features, Class hierarchy, Inheritance, Information
hiding, Single and Multiple Inheritance,
Polymorphism
8 Scripting as a Problem domains, Scripting in WWW, Python: 3 Class
paradigm, emerging Basics, data types, loops, list, tuple, dictionary, notes,
trends functions. R(viii)
9 Functional Functional Programming with Lists (using PICO 2 T(i): Ch 8
Programming LISP): Characteristics, atoms, lists, procedures, T(i): Ch
primitive functions, expressions, List Operations, 9,10
Box and Arrow Notation, record structure, procedure
abstraction, de, setq, cond, recurrence relations in
PICO LISP, read, while, if, prinl
11 Logic Programming Logic Programming, The Structure of Prolog 2 T(i): Ch 11
programs, Types/Terms, Type Predicates,
Expressions, Unification, Functions, Recurrence
Relation in Prolog, Rules, Boolean Predicates,
Logical Operators, Functions-Computing with
Relations, Database implementation in Prolog.
12 Concurrent Threads, IPCS overview, Shared Memory, Critical 3 T(i): Ch 12
Programming Section problem, Synchronization Features R (iv)
(semaphores, monitors, locks), Dining Philosophers
Problem and its solution using monitors, Shared
Memory programming
13 Complex Run Time Exception handling and non-local jumps, Threads 2 Class
Environments Notes
Ch 12:R
(iv)
14 Advanced Topics Advancements in Programming Paradigm, Domain 2 Class
specific programming, research topics notes
Total No of Classes Planned 28

Evaluation Scheme:

EC Components Duration Weightage Date & Venue


No % Time
02.10.21 Sat
1 Test 1 (Closed Book) 50 minutes 20%
2
20.10.21
2 Quiz1 (Closed Book) 20 minutes 10%
Wed 6
3 Test 2 (Open Book) 50 minutes 20% 06.11.21 Sat
2 TBA
Assignment (open
4 - 10% 05.12.21
book)
22.12.21
5 Comprehensive Exam 3 hours 40%
Wed. AN

Assignment: Assignments may be given on either some or all of the above mentioned topics. Case studies,
interpretation of data and then analysis, will form a part of all evaluation components. Assignments(s) include
coding, seminar, presentation and viva. The assignments will involve use of C/C++/LISP/PROLOG/Python,
research topics, Open Source Tools, and so on. Details will be intimated through a separate notification or
announced in the class.

Tutorials: Tutorial sheets will be distributed in classes. This will help you to enhance your abilities in problem
solving. Assistance will be given in solving them during the classes. No make-up will be provided for tutorials.

Mid-sem Grading:
Mid-sem grading will be displayed after two evaluation components or earlier when-ever about 30% of
evaluation components are completed.

Note: A student will be likely to get “NC”, if he / she doesn’t appear / appear for the sake of appearing for
the evaluation components / scoring zero in pre-compre total.

Makeup and Attendance policies:

Make-ups: are not given as a routine. It is solely dependent upon the genuineness of the circumstances
under which a student fails to appear in a scheduled evaluation component. In such circumstances, prior
permission should be obtained from the Instructor-in-Charge (I/C). Students with less than 60% of attendance
will not be allowed to avail the make-ups. The decision of the I/C in the above matter will be final.

Attendance: Every student is expected to be responsible for regularity of his/her attendance in class rooms
and laboratories, to appear in scheduled tests and examinations and fulfill all other tasks assigned to him/her
in every course. A student should have a minimum of 60% of attendance in a course to be eligible to appear
for the Comprehensive Examination in that course. For the students under the purview of Academic
Counseling Board (ACB), the Board shall prescribe the minimum attendance requirement on a case-to-case
basis. Attendance in the course will be a deciding factor in judging the seriousness of a student which may be
directly / indirectly related to grading.

General timings for consultation:

Students can contact the course instructors in his/her chamber


273 (BVK), Su 9 th hour / Online: Su. 7 pm-7.50 pm UAE Time.
204 (PMP), Mon 9th hour 2.50pm-03.40 pm / Online: Tuesday. 4.30 pm-5.20pm.

General instructions:
Students should come prepared for classes and carry the text book(s) or material(s) as prescribed by the
Course Faculty to the class.

Notices:
All Notices regarding this course will be placed on Computer Science Department noticeboard.

Instructor-in-charge
CS F301

Instr Instructor’s Contact Details:


 Dr. B. Vijayakumar, Professor, CS, WING B, Room No. 273
Contact No: +9714-4200699 Ext. no: 342 e-mail: [email protected]
 Dr Pranav M Pawar, Asst. Professor, CS, WING B, Room No. 204
Contact No: +9714-4200699 Ext. no: 304 e-mail: [email protected]

You might also like