0% found this document useful (0 votes)
17 views3 pages

Programming Languages Syllabus for CSE

Uploaded by

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

Programming Languages Syllabus for CSE

Uploaded by

rautabhishek2723
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Faculty of Engineering Savitribai Phule Pune University, Pune

Savitribai Phule Pune University, Pune


Second Year of Computer Engineering (2015 Course)
210254: Principles of Programming Languages
Teaching Scheme: Credit Examination Scheme:
TH: 03 Hours/Week TH: 03 In-Sem(online): 50 Marks
End-Sem(paper): 50 Marks
Prerequisite:- Data Structures & Algorithms and Object Oriented Programming

Course Objectives:
 To learn principles of programming language
 To understand structural, computational and logical implications regarding programming
languages
 To explore main programming paradigms
 To understand and apply Object Oriented Programming(OOP) principles using C++ and
Java
Course Outcomes:
On completion of the course, student will be able to–
 To analyze the strengths and weaknesses of programming languages for effective and
efficient program development.
 To inculcate the principles underlying the programming languages enabling to learn new
programming languages.
 To grasp different programming paradigms
 To use the programming paradigms effectively in application development.

Course Contents
Unit I Programming Language Syntax and semantics 08 Hours
Software development process, language and software development environments, language and
software design methods, languages and computer architecture, programming language qualities,
languages and reliability, languages and maintainability, languages and efficiency, a brief historical
perspective and early high level languages, a bird's eye view of programming language concepts.
Syntax and semantics-language definition, syntax, abstract syntax, concrete syntax, and
pragmatics, semantics, an introduction to formal semantics, languages, language processing,
interpretation, translation, the concept of binding, variables, name and scope, Type, l-value, r-value,
reference and unnamed variables, routines, generic routines, aliasing and overloading, an abstract
semantic processor, run time structure. Case study- run time structure of C.
Unit II Structuring the Data, Computations and Program 08 Hours

Syllabus for Second Year of Computer Engineering #50/68


Faculty of Engineering Savitribai Phule Pune University, Pune

Structuring of Data- Built in and primitive types, Data aggregates and type constructors, Cartesian
product, Finite mapping User-defined types and abstract data types, Type systems, Static versus
dynamic program checking, Strong typing and type checking, Type compatibility, Type
conversions, Types and subtypes, Generic types, monomorphic versus polymorphic type systems,
Case Study- The type structure of C++, Java.
Structuring of Computations- Structuring the computation, Expressions and statements,
Conditional execution and iteration, Routines, Style issues: side effects and aliasing, Exceptions,
Case Study-Exception handling in C++.

Unit III Structuring of Program 08 Hours


Structuring of Program- Software design method, Concepts in support of modularity,
Encapsulation, Interface and implementation, Separate and independent compilation, Libraries of
modules, Language features for programming in the large, Program organization, Grouping of
units, Encapsulation, Interface and implementation, Abstract data types, classes, and modules,
Generic units, Generic data structures, Generic algorithms, Generic modules, Higher levels of
genericity.
Introduction to programming paradigms, Introduction to four main Programming paradigms-
procedural, object oriented, functional, and logic & rule based. Study of Java as Object oriented
programming language.

Unit IV Java as Object Oriented Programming Language-Overview 08 Hours


Java History, Java Features, Java and Internet, Java and Word Wide Web, Web Browsers, Java
Virtual Machine, Data Types and Size (Signed vs. Unsigned, User Defined vs. Primitive Data
Types, Explicit Pointer type) Arrays: one dimensional array, multi-dimensional array, alternative
array declaration statements. Control Statements Revision of identical selection Statements in
brief (if ,Else if, Nested if, Switch , Nested Switch), Iterative Statements For Each version of For
Loop, Declaring Loop Control Variables Inside the for loop, Using comma in for loop), Jump
Statements (Labeled Break and Labeled Continue), String Handling: String class methods.

Unit V Inheritance, Polymorphism, Encapsulation using Java 08 Hours


Classes and Methods: class fundamentals, declaring objects, assigning object reference variables,
adding methods to a class, returning a value, constructors, this keyword, garbage collection,
finalize() method, overloading methods, argument passing, object as parameter, returning objects,
access control, static, final, nested and inner classes, command line arguments, variable-length
arguments.
Inheritances: Basics, member access and inheritance, super class references, Using super,
multilevel hierarchy, constructor call sequence, method overriding, dynamic method dispatch,
abstract classes, Object class.
Packages and Interfaces: defining a package, finding packages and CLASSPATH, access
protection, importing packages, interfaces (defining, implementation, nesting, applying), variables
in interfaces, extending interfaces, instance of operator.

Syllabus for Second Year of Computer Engineering #51/68


Faculty of Engineering Savitribai Phule Pune University, Pune

Unit VI Exception Handling in Java 08 Hours


fundamental, exception types, uncaught exceptions, try, catch, throw, throws, finally, multiple catch
clauses, nested try statements, built-in exceptions, custom exceptions (creating your own exception
sub classes).
Managing I/O: Streams, Byte Streams and Character Streams, Predefined Streams, Reading
console Input, Writing Console Output, Print Writer class
Applet: Applet Fundamental, Applet Architecture, Applet Skeleton, Requesting Repainting, status
window, HTML Applet tag, passing parameters to Applets, Difference between Applet and
Application Program.
Books:
Text:
1. Carlo Ghezzi, Mehdi Jazayeri, ―Programming Language Concepts‖,3 rd Ed, Wiley
Publication ISBN : 978-81-265-1861-6.
2. Herbert Schildt, "The Complete Reference Java", 9th Edition, McGraw-Hill EducationISBN:
978-0-07-180856-9.

References:
1. Sebesta R., "Concepts of Programming Languages", 4th Edition, Pearson Education, ISBN-
81-7808-161-X.
2. Deugo, ―Java Gems‖, Cambridge University Press, ISBN 10: 0521648246 ISBN 13:
9780521648240
3. Roosta S., "Foundations of Programming Languages", Thomson Brookes/Cole, ISBN 981 -
243-141-1.
4. Allen Tucker, Robert Noonan, "Programming language Principles and Paradigms‖, TMH
3rd Ed, ISBN 0-07-048704-9.
th
5. T. W. Pratt, M. V. Zelkowitz, "Programming Languages Design and Implementation‖, 4
Ed, PHI, ISBN 81-203-2035-2.

Syllabus for Second Year of Computer Engineering #52/68

Common questions

Powered by AI

Java’s exception handling mechanism contributes to robust application development by allowing developers to gracefully manage errors using try-catch blocks, avoiding program crashes and maintaining application flow. Java provides built-in exceptions like ArithmeticException and NullPointerException, enabling detection of common errors. Custom exceptions can be defined by subclassing the Exception class for specific error scenarios, thereby enhancing the program’s robustness by providing detailed error information and tailored recovery mechanisms .

Static program checking involves verifying the program's correctness at compile time, while dynamic checking occurs at runtime. Static checking enhances maintainability by detecting errors early, reducing debugging complexity, and improving reliability. However, it can limit flexibility with strict type constraints. Dynamic checking offers greater flexibility but can introduce runtime errors, impacting reliability and potentially increasing maintenance burden due to delayed error detection .

Java’s support for both primitive and user-defined data types, alongside flexible array implementations like one-dimensional and multi-dimensional arrays, facilitates diverse programming applications. Compared to languages like C++, Java manages memory automatically via garbage collection, improving safety but potentially affecting performance. Java arrays offer bounds-checking, reducing errors but adding overhead. These features help developers build robust applications efficiently compared to languages offering manual memory management or less strict type systems .

Programming paradigms, such as procedural, object-oriented, functional, and logic-based, significantly influence the choice of language features and design effectiveness by dictating the organization and control flow methodology. For example, object-oriented paradigms emphasize encapsulation and inheritance, promoting modularity and reusability, whereas functional paradigms highlight immutability and pure functions, simplifying debugging and parallel execution. These paradigms impact language feature inclusion, shaping overall language usability and efficiency .

Abstract classes in Java facilitate polymorphism by allowing programmers to define abstract methods that subclasses must implement, thereby promoting code reusability and flexibility. This enables standardized interfaces across different types, allowing objects of various classes to be interacted with through a common interface, expanding polymorphic behavior across potentially varied implementations .

Modularity and encapsulation are critical for managing complexity in programming. Modularity involves dividing a program into distinct components or modules that handle specific functions, enhancing readability and maintenance. Encapsulation entails hiding internal module details, exposing only necessary interfaces. In Java, these concepts are supported via classes and access modifiers, which allow encapsulation of data and behaviors within classes, promoting code reuse, modular design, and reducing the risk of unintended interactions .

Understanding binding, which refers to the association between variables and storage, alongside scope, defines a variable’s visibility and lifetime, is critical for effective program variable management. Proper binding and scope management helps prevent errors like variable shadowing and improves memory efficiency by ensuring variables are accessible within intended contexts only. Correct application enhances maintainability and predictability of code behavior as variable usage is consistent and controlled .

Java's package construct enhances modularity by organizing classes and interfaces into namespaces, mitigating naming conflicts and simplifying project structure management. Interfaces define contracts without specifying implementation, promoting decoupling of components and enabling flexible, scalable architectures. This allows developers to build extensible software systems with loosely coupled components, improving the ability to scale and adapt applications to new requirements .

Java’s inheritance model is effective for supporting complex data structures by allowing classes to inherit fields and methods from other classes, facilitating code reuse and polymorphism. This model supports multilevel hierarchies, enabling more extensive interconnections and methods like method overriding. However, it could also lead to increased complexity when navigating inheritance trees. Java’s use of interfaces complements inheritance by allowing multiple inheritance-like behavior, adding flexibility and reducing some inheritance model's rigidity without compromising clarity .

Understanding the foundational concepts of syntax and semantics is crucial for ensuring language interoperability and reliability. Syntax involves the rules for structuring valid statements in a language, while semantics relates to the meaning behind those statements. Efficient program development depends on clear syntax and accurately defined semantics to prevent misinterpretations during language translation and execution, which directly impacts program reliability and efficiency .

You might also like