CS F301 Principles of Programming Languages I Sem 2021-22 HO
CS F301 Principles of Programming Languages I Sem 2021-22 HO
Course Pre/Co- requisite (if any) & Catalogue / Bulletin Description: Given in the Bulletin 2020 – 2021 –
Data Structures and Algorithms.
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:
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.
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 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