MENU
PRINCIPLES OF PROGRAMMING LANGUAGES (JULY - DEC 2025) MAIN MENU

About the Course


Programming languages are the means by which humans solve problems on computers. They express algorithms in a sufficiently precise manner for execution on computers.

Humans use a variety of strategies to solve problems that range from search to logic. Programming languages too are designed to reflect such strategies. For example, today's popular languages such as Java, C++ and Python give a sequence of instructions which together solve a problem; LISP uses a functional approach while Prolog is designed for logic.

In this course, students learn the general concepts that are common to all programming languages so that they learn the underlying abstractions and problem-solving strategies. Further, they learn to understand and appreciate the salient features of many programming languages. They learn how to make a critical choice of the level of abstraction needed to solve a problem and pick a suitable language. The assignments will use languages familiar to a typical CS UG student for illustration and self-exploration.

Prerequisites:
Introductory programming course, Object-oriented programming/design
Textbook:
Programming Languages: Design and Implementation (Fourth Edition) Terrance W. Pratt, Marvin V. Zelkowitz, T. V. Gopal

Syllabus


Binding Times, Sequence and Data Control between Subprograms, Static and Dynamic Scope are important topics.
Unit Materials
I. Introduction
  • Why so many programming languages
  • What is programming?
  • How do humans solve problems?
  • A wee bit of history
Ch. 1
II. Programming Life Cycle
  • Problem definition
  • Generalise and specialise
  • Find a suitable algorithm
  • Design data structures and functions
  • Write and execute code
  • Test and debug
  • Analyse performance
  • Write user and technical documents
III. What makes successful programming langauge?
  • Readability and efficiency
  • Suitability and naturalness
  • Ease in compiling and debugging
  • Availability and access
  • Some case studies: Fortran, LISP, C, C++, Java, Python
Mainly Ch. 1
IV. Design Features
  • Binding times
  • Operator precedence
  • Control flow between statements
  • Block structure: named and unnamed blocks
  • Subprogram control and parameter passing
  • Static and runtime structures
Ch. 2.2.3,
Ch. 8.1 to 8.4, Ch. 9.1, 9.3, 9.4, Ch. 11.1
Binding Times
Assignment - I Due: 15 Sep 2025 (7:00 PM)
V. Scope and Runtime Environments
  • Associations and referencing operations
  • Local, non-local and global environments
  • Functional, objected oriented and logical programs
  • Garbage collection
Ch. 9.2 Ch. 12.1

Students List


'Y' in 'A1' column indicates that I received the first assignment
If there is no 'Y' against your name, contact me
S.No. Roll No. Name of the StudentsA1
1 23MCCE01 PRANAV PREREPAY
2 23MCCE02 YASH SHARMAY
3 23MCCE03 NALLA NAVEEN KUMAR Y
4 23MCCE04 AMEERPETA SRINIDH Y
5 23MCCE05 VADDEPALLY VINITH Y
6 23MCCE06 ANAND NARASIMHA MEDEME Y
7 23MCCE07 AMARTYA KUNTA Y
8 23MCCE08 ANTU DASY
9 23MCCE10 PIYUSH KAMAL Y
10 23MCCE11 ARAVIND KUMAR CHOPPARAPUY
11 23MCCE12 KANDI RAMCHANDRA Y
12 23MCCE13 BHAVANI SHANKAR ARUGONDA Y
13 23MCCE14 PANKHURI Y
14 23MCCE15 CHANDAN KUMARY
15 23MCCE16 ANUJ DANGIY
16 23MCCE17 KALIYUGA BADUGUNNALA Y
17 23MCCE18 SETTY DEVESH Y
18 23MCCE20 BALASTU MOUNIKA Y
19 23MCCE21 SANATH KUMAR COONANI Y
20 23MCCE22 KODI AMULYAY
21 23MCCE23 VEDANG SABBINENIY
22 23MCCE24 DASAM SAI KUMARY
23 23MCCE25 VISHNUVARDHAN BSY
24 23MCCE26 GOTIVADA PRAMODHY
25 23MCCE27 PRADYUN K Y
26 23MCCE28 SRI TAPASYA ALAPATI Y
27 23MCCE30 VINEETH ARELLY
28 23MCCE31 DEVA KUMAR NALABOTHU Y
29 23MCCE33 KOVURI DEEVENA Y
30 23MCCE34 ANUMALA ANJALI Y
31 23MCCE35 KALALI UDAY KUMAR GOUD Y
32 23MCCE36 NANDITHA CHOUDARY DODDAPUNENI Y
33 23MCCE37 B SHASHIVARDHAN SAGAR
34 23MCCE39 N.JITHENDER RATHODY
35 22MCCE07 GUNAVARDAN REDDY Y
36 22MCCE08 GUNTAKA VAMSI NADH REDDY
37 22MCCE13 AYYAGARI KRISHNA VAIBHAVY
38 22MCCE16 KODIDE BHANU CHANDARY
39 22MCCE19 EMAMGARI VARUNY
40 22MCCE31 C LAVANYA Y
41 22MCCE34 SUDARSI SUBHASH Y
42 22MCCE35 VIRAJ SAHA
43 22MCCE37 G ABHINAVY
44 22MCCE40 J PRUTHVIKA Y

List of Recourse Students


S.No. Roll No. Name of the Students
1. 22MCCE02 KUNCHAM VENKATA SOMA SEKHAR REDDY
2. 22MCCE06 PENTAMSETTY KRISHNA SATHVIK Y
3. 22MCCE09 RIDHAM KHURANAY
4. 22MCCE21 KARRI MANOHARY
5. 22MCCE23 MULAGAPAKA NAGA BHARATHY

Groups and Topics for Presentations

Please note the following groups for presentations which will count for Minor - 3 of 20 Marks. There is no separate viva other than the questions asked during and about the presentations.

Each group will be given 15 minutes to make a presentation. Please prepare no more than 15 slides as I will be strictly maintaining the time.

There will be a 5 minutes questions session after the presentation.

Note that the presentations scheduled for Wednesday, 19/11/2025 will be done during our regular class hours from 4:00 PM to 6:00 PM in our classroom. I request all the students to be present and ask questions to your friends.

Topics for Presentations

Choose any one topic per group. No two groups can choose the same topic. Every group must choose a different topic.
  1. *Classes and Modules in Python
  2. Prolog Unification and Cut operation
  3. *Implementation of Inheritance, Polymorphism and Virtual Functions in Java
  4. *Implementation of Inheritance, Polymorphism and Virtual Functions in C++
  5. *Tcl/Tk and Event-driven Programming
  6. *Postscript Language
  7. +Coroutine Implementation with an Example in Python
  8. **LISP and its History
  9. **FORTRAN to Fortran90: A Long History
  10. RUST Programming Language
  11. *Pascal: Static and Runtime Structures
  12. Ada and the Different Types of Subprograms
  13. Cuda Processing in NVIDIA GPUs
  14. Visual Programming

* - you have to present static and runtime structures.
** - you have to present the major changes between versions. You should also mention which are minor revisions.
+ You must run the code as a part of the presentation.

IMTech 2023 Batch Students
Group No.Roll NumbersSelection Slot
Group 123MCCE01, 23MCCE08, 23MCCE16,
23MCCE24, 23MCCE33
Group 223MCCE02, 23MCCE10, 23MCCE17,
23MCCE25, 23MCCE34
Topic 13 19/11/2025
Group 323MCCE03, 23MCCE11, 23MCCE18,
23MCCE26, 23MCCE35
Topic 819/11/2025
Group 423MCCE04, 23MCCE12, 23MCCE20,
23MCCE27, 23MCCE36
Topic 719/11/2025
Group 523MCCE05, 23MCCE13, 23MCCE21,
23MCCE28, 23MCCE37
Topic 9 19/11/2025
Group 623MCCE06, 23MCCE14, 23MCCE22,
23MCCE30, 23MCCE39
Topic 321/11/2025
Group 723MCCE07, 23MCCE15, 23MCCE23,
23MCCE31, 22MCCE06
Topic 1028/11/2025
IMTech 2022 Batch Students
Group 822MCCE02, 22MCCE09, 22MCCE19,
22MCCE31, 22MCCE32
Topic 13/12/2025
Group 922MCCE07, 22MCCE13, 22MCCE21,
22MCCE34, 22MCCE40
Topic 1128/11/2025
Group 1022MCCE08, 22MCCE16, 22MCCE23,
22MCCE27, 22MCCE35, 22MCCE37
Topic 14

Please choose your topics and send me an email. Only one member from each group can send me the email. Also, send me dates and times between 13 Nov and 10 Dec 2025 to fix a slot for presentation.

I have a class only on Thursdays:
     13/11/2025 4:00 PM to 6:00 PM
     20/11/2025 9:00 AM to 12:00 and
       4:00 PM to 6:00 PM


School of Computer and Information Sciences