Object Oriented Programming

SUBJECT CODE: IEBT/IT/T/221 & IEBE/IT/T/321

CREDIT HOURS/CLASS:

2 Periods/Lecture & 2 Lectures/Week

3 Periods/Sessional & 1 Sessional/Week

- Theory Class - Sessional Class

MARKS DISTRIBUTION:

  • Two Class Test of 30 marks, each with one hour duration.
  • Average of two will be considered as total out of 30.
  • Final exam of 100 marks for 3 hours written exam

COURSE OUTCOMES:

  • Realising the advantages of Object Oriented Programming over Procedure Oriented Programming.
  • Understanding of abstract data types (Structure, Class and Object), encapsulation and data hiding.
  • Able to deploy function and operator overloading
  • Able to deploy various object oriented features such as inheritance, virtual function, polymorphism
  • Able to deploy Object Oriented I/O subsystem and exception handling mechanism
  • Familiar with C++/Java template, name space, runtime type identification.

PREREQUISITES:

  • IEBT/IT/T/126: DATA STRUCTURES AND ALGORITHMS
  • IEBE/IT/T/226 DATA STRUCTURES AND ALGORITHMS
  • IEBE/CSE/S/122 COMPUTER PROGRAMMING LABORATORY-I
  • IEBE/IT/S/313 COMPUTER PROGRAMMING LABORATORY-II
  • IEBT/CSE/S/112: COMPUTER PROGRAMMING LABORATORY-I
  • IEBT/IT/S/213: COMPUTER PROGRAMMING LABORATORY-II

SYLLABUS OUTLINE:

  • Part 1:
    • Introduction to Programming Paradigms - Logic, Functional, Procedural and Object Oriented, Differences of OOP vis-à-vis other programming paradigms, history of OOP languages, brief introduction to OOP terminology - Class and Object, Encapsulation and Abstraction, Information Hiding, Polymorphism, Inheritance, Function Overloading, Static & Dynamic Binding
  • Part 2:
    • Classes - user defined types, instance variables, member functions, constructors, destructors, operators, access rules, this pointer, scope of variables, dynamic memory management
  • Part 3:
    • Class Relationships - association, aggregation, composition, inheritance, Abstract classes, polymorphism, dynamic binding.
  • Part 4:
    • Brief Overview on C++ - functions and function overloading, reference, inline functions.
    • C++ Features: Friends, Multiple inheritance, Virtual base class.
    • Exception handling.
    • File Handling and I/O operations in C++
  • Part 5:
    • Advanced C++ concepts – function templates and class templates, namespace, advanced cast operators – static_cast, dynamic_cast, reinterpret_cast, const_cast, typeid operator, concepts of Standard Template Library (STL)
  • Part 6:
    • Object oriented design and modeling – overview, software engineering perspective of software development, the desirable qualities of software systems, software architecture concepts, software process life cycle, object oriented process, need and methodology of oo modeling perspectives, object oriented design patterns
  • Part 7:
    • Java – overview and basic concepts, JVM, code once run anywhere model, memory allocation and automatic garbage collection, differences from C++, advantages and disadvantages, class and object, message passing, encapsulation, polymorphism, aggregation, threading, inheritance, dynamic binding, applet programming.

REFERENCE BOOKS:

  • Tucker, A. and Noonan, R. Programming Languages: Principles and Paradigms. McGraw-Hill, 2002.
  • Sebesta, R.W. Concepts of Programming Languages (5th ed.). Addison Wesley, 2002.
  • Patrick Naughton and Herbert Schildt, “Java 2, The Complete Reference”, A Tata McGraw-Hill publication
  • Ken Arnold, James Gosling and David Holmes, “The Java Programming Language”, A Pearson Education publication
  • H. M. Deteil and P. J. Deteil, “Java, How to Program”, Tata McGraw-Hill publication

LABORATORY NAME: ADVANCED PROGRAMMING LABORATORY

LABORATORY CODE: IEBE/IT/S/322

  1. Assignment on usage of Compilation, Linking and usage of IDE using C++
  2. Assignment on C++ declarations and expressions
  3. Assignment on C++ enumerations and constness
  4. Assignment on C++ array, pointer and structure
  5. Assignment on C++ functions and parameter passing by value and reference
  6. Assignment on C++ classes with constructors, destructors, copy constructors, variations of access rules – private, protected and public, usage of this pointer, usage of scope of variables, dynamic memory management
  7. Assignment on C++ Operator Overloading for unary operators, binary operators, subscript and function operator, cast operator, increment and decrement operators, new and delete operators, extraction and insertion operators
  8. Assignment on single, multiple and multilevel inheritance, constructor and destructor calling sequence, virtual base classes, friend, virtual function and dynamic binding, abstract class and pure virtual function, overriding and hiding
  9. Assignment on file handling and I/O operations in C++
  10. Assignment on C++ templates – function and class templates, namespace, exception handling
  11. Assignment on STL in C++
  12. Assignment on fundamental data structures and algorithms in C++ - arrays, linked lists, stacks and queues, trees, searching and sorting - naive search, binary search, bubble sort, insertion sort, merge sort, quicksort
  13. Assignment creating and accessing packages, classes, inheritance in Java
  14. Assignment on Java multithreading and applet programming .