Welcome to My Personal Website!!
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
Assignment on usage of Compilation, Linking and usage of IDE using C++
Assignment on C++ declarations and expressions
Assignment on C++ enumerations and constness
Assignment on C++ array, pointer and structure
Assignment on C++ functions and parameter passing by value and reference
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
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
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
Assignment on file handling and I/O operations in C++
Assignment on C++ templates – function and class templates, namespace, exception handling
Assignment on STL in C++
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
Assignment creating and accessing packages, classes, inheritance in Java
Assignment on Java multithreading and applet programming .