This document describes the CS20105 Principles of Programming Languages course. The course is worth 3 credits and covers fundamental programming language concepts across different paradigms like imperative, object-oriented, functional and logic programming. It aims to help students learn new languages quickly, choose appropriate languages for tasks, and recognize commonalities between languages. The course contains 5 units covering imperative programming, object-oriented programming with Java, packages and multithreading in Java, case studies of other languages like Lisp, and a final unit on concurrent programming issues.
CNIC Information System with Pakdata Cf In Pakistan
Ppl syllabus new
1. CS20105::PRINCIPLES OF PROGRAMMING LANGUAGES
Credits: 03 Teaching Scheme: - Theory 3 Hrs/Week
Prerequisites: nil
Objectives:
• To learn the fundamental concepts of programming languages & the various
programming paradigms.
• To increase the capacity to express ideas using a programming language.
• To learn to choose an appropriate programming language for a designed task.
• To learn the important features of different types of languages and their relevance
• To learn past the superficial differences in languages and recognize the
commonalities in meaning.
• To develop the ability to quickly learn new programming languages.
• Mapping with PEOs: II, III, (d).
Unit I (8+1 Hrs)
Introduction to Programming languages
A. Role of programming languages, Necessity of studying programming languages,
characteristics of a good programming language, Effects of Environments on languages,
Language design issues, Programming Paradigms – Imperative, Object Oriented,
functional Programming , Logic Programming.
B. Comparison of different programming paradigms.
Unit II (8+2 Hrs)
Imperative & Procedural Programming
A. Imperative( C ): Constants, Operators, Control Structures, Loops,
And Conditionals, Data types: union, pointer and reference types. Memory leak, invalid
2. pointer references.
Procedural: Blocks, Local variables, Scope, Activation Records, Procedure Calls,
Function Calls, Recursion, Parameter passing methods, Static and Stack-Based Storage
management. Heap based storage management.
B. Structure, Generic Templates in C++, Library Classes in C++.
Unit III (8+2 Hrs)
Object – Oriented Programming (Java)
A. Classes & Objects, Constructors, Access Modifiers, Instance Methods, this & static
keywords. Inheritance, Types of inheritance, Constructors in Derived Classes, Overriding
& Hiding Fields& Methods, Abstract Classes & methods, Final Classes & Final Methods.
Interfaces , Exception Handling -exceptions, checked & unchecked exceptions.
Graphical Programming – Applet, Layout Manager , choice, List.
B. User defined exception, Multilevel Inheritance, Hierarchical Inheritance.
Unit IV (8+1 Hrs)
Packages, Multithreading – Thread life Cycle thread Priority, Thread Methods. Inter-thread
Communication.Java I/O – Introduction to Streams, File Management / Processing, primitive/
Object Data Processing. Applet, Event Handling(Mouse Event, key Event)
B. Concurrent Issues with thread programming, Deadlock.
Unit V (8+2 Hrs)
Case Studies of Programming Languages
A. Overview of the building blocks of the language, procedures, control structures, their
motivation(s), target user base, choice and paradigms of features, special features relevant
to HTML-CSS-JavaScript, PHP-HTML, Matlab, Prolog
B. LISP
3. Text Books
1. “Programming Languages Design and Implementation”, T. W. Pratt, M.V.
Zelkowitz, Publications, ISBN 10: 0130276782, 4th Edition
2. “Java: The Complete Reference”, Herbert Schildt, TMG Publication, ISBN
9780070636774 , 7th Edition
Reference Books
1. “Haskell: The Craft of Functional Programming”, S. Thompson, Addison Wesley,
ISBN 0201342758, 2nd Edition
2. "Object Oriented Programming with C++", E. Balaguruswamy, Tata McGraw-
Hill Publishing Company Ltd, ISBN 0 - 07 – 462038 - X,
Additional Reading
1. “Programming Languages: Principles and Paradigms” A. B. Tucker, R. Noonan,
McGraw-Hill, ISBN 0-07-048704-9
2. “Programming Languages: Principles and Practice”, K. C. Loudon, Thomson
Publications, 981-243-130-6 , 2nd Edition
3. “The C++ Programming Language”, B. Stroustrup, Addison-Wesley, 81-317-
0521-8, 3rd Edition
4. “MATLAB Programming for Engineers”, Stephen J. Chamman, Thomson
Learning Publication, ISBN 981-254-893-9, 3rd Edition
5. “Programming In Prolog”, Clocksin W F, Mellish C S, NarosaPblishing House,
ISBN 8185198552, 3rd Edition
6. “Lex&Yacc”, John R. Levine, Tony Mason, Doug Brown, Shroff Publishers,
ISBN 81-7366-062-X, 2nd Edition.
7. “HTML, CSS, Java Script, Perl, Python and PHP”, Schafer Steven, Dreamtech
India Pvt Ltd., ISBN 81-265-0620-2
4. 8. “LISP”, Patrick Henry Winston, Berthold, Pearson Educaation, ISBN 81-7808-
155-5, 3rd Edition