Object Oriented Programming - Syllabus
Embark on a profound academic exploration as you delve into the Object Oriented Programming course (OOP) within the distinguished Tribhuvan university's CSIT department. Aligned with the 2074 Syllabus, this course (CSC161) seamlessly merges theoretical frameworks with practical sessions, ensuring a comprehensive understanding of the subject. Rigorous assessment based on a 60 + 20 + 20 marks system, coupled with a challenging passing threshold of , propels students to strive for excellence, fostering a deeper grasp of the course content.
This 3 credit-hour journey unfolds as a holistic learning experience, bridging theory and application. Beyond theoretical comprehension, students actively engage in practical sessions, acquiring valuable skills for real-world scenarios. Immerse yourself in this well-structured course, where each element, from the course description to interactive sessions, is meticulously crafted to shape a well-rounded and insightful academic experience.
Course Description: The course covers the basic concepts of object oriented programming using C++ programming language.
Course Objectives: The main objective of this course is to understand object oriented
programming and advanced C++ concepts such as composition of objects, operator overloads,
inheritance and polymorphism, file I/O, exception handling and templates.
Units
Key Topics
-
Introduction to E-commerce
IN-1Overview of E-commerce and its significance in the digital age.
-
E-business vs E-commerce
IN-2Understanding the differences between E-business and E-commerce.
-
Features of E-commerce
IN-3Key characteristics and benefits of E-commerce.
Key Topics
-
Memory Read
BA-01Memory Read operation involves retrieving data from memory locations. It is a fundamental operation in microprocessor-based systems.
-
Memory Write
BA-02Memory Write operation involves storing data in memory locations. It is a crucial operation in microprocessor-based systems.
-
I/O Read
BA-03I/O Read operation involves retrieving data from input/output devices. It enables the microprocessor to interact with the external environment.
-
I/O Write
BA-04I/O Write operation involves sending data to input/output devices. It enables the microprocessor to interact with the external environment.
-
Direct Memory Access
BA-05Direct Memory Access (DMA) is a technique that allows peripheral devices to access system memory directly, reducing the microprocessor's workload.
-
Interrupt
BA-06An interrupt is a signal to the microprocessor that an event has occurred, requiring immediate attention. It enables the microprocessor to handle asynchronous events.
-
Types of Interrupts
BA-07There are different types of interrupts, including maskable and non-maskable interrupts, which vary in their priority and handling by the microprocessor.
-
Interrupt Masking
BA-08Interrupt Masking is a technique that enables the microprocessor to temporarily ignore or mask interrupts, allowing it to focus on high-priority tasks.
-
Non-Overlapping Lists
BA-09Non-overlapping lists are used in some retrieval models to improve the efficiency of retrieval by reducing the number of documents to be ranked.
-
Proximal Nodes Mode
BA-10The proximal nodes mode is a retrieval model that uses the proximity of terms in a document to improve the retrieval of relevant documents.
-
Performing CDB and PDB Flashback
BA-11Understanding flashback technology, including performing flashback on Container Database (CDB) and Pluggable Database (PDB).
-
Escape Sequences in C
BA-12Using escape sequences in C programming to represent special characters.
-
Preprocessor Directives
BA-13Introduction to preprocessor directives in C, including #include, #define, and #ifdef.
-
Pass by Reference
BA-14Learning about pass by reference in C++, including passing variables by reference to functions.
-
Return by Reference
BA-15Understanding return by reference in C++, including returning variables by reference from functions.
-
Scope and Storage Class
BA-16Learning about scope and storage class in C++, including understanding the lifetime and visibility of variables.
-
Pointers
BA-17Understanding pointers in C++, including declaring and initializing pointer variables.
-
Operators in Pointers
BA-18Learning about operators in pointers, including arithmetic, comparison, and logical operators.
-
Pointers and Arrays
BA-19Understanding the relationship between pointers and arrays in C++, including array notation and pointer arithmetic.
-
Pointer and Function
BA-20Learning about using pointers with functions, including passing pointers to functions and returning pointers from functions.
A Simple Class and Object, Accessing members of class, Initialization of class objects:
(Constructor, Destructor), Default Constructor, Parameterized Constructor, Copy Constructor,
The Default Copy Constructor, Objects as Function Arguments, Returning Objects from
Functions, Structures and Classes, Memory allocation for Objects, Static members, Member
functions defined outside the class.
Fundamental of operator overloading, Restriction on operator overloading, Operator functions as
a class members, Overloading unary and binary operator, Data Conversion (basic to basic, basic
to user-defined, user-defined to basic, user-defined to user-defined)
Introduction to inheritance, Derived Class and Base Class, Access Specifiers (private, protected,
and public), Types of inheritance, Public and Private Inheritance, Constructor and Destructor in
derived classes, Aggregation
Concept of Virtual functions, Late Binding, Abstract class and pure virtual functions, Virtual
Destructors, Virtual base class, Friend function and Static function, Assignment and copy
initialization, Copy constructor, This pointer, Concrete classes, Polymorphism and its roles.
Function templates, Function templates with multiple arguments, Class templates, templates and
inheritance, Exceptional Handling (Try, throw and catch), Use of exceptional handling.
Stream Class Hierarchy for Console Input /Output, Unformatted Input /Output, Formatted Input
/Output with ios Member functions, Formatting with Manipulators, Stream Operator
Overloading, File Input/output with Streams, Opening and Closing files, Read/Write from File,
File Access Pointers and their Manipulators, Sequential and Random Access to File, Testing
Errors during File Operations
Lab works
This course requires a lot of programming practices. Each topic must be followed by a practical
session. Practical sessions for each unit should be conducted and should include writing the
programs in C++. The instructors have to prepare lab sheets for individual units covering the each
concepts of the units as per the requirement. The sample lab sessions can be as following
descriptions;
For Unit 2:
-
Write programs for illustrating the concepts of
- input/output streams and manipulators,
- dynamic memory operators with new and delete operators.
- function overloading, inline functions, default arguments, pass by reference, return
by reference
For Unit 3:
-
Write programs for illustrating the concepts of
- class and object
- constructor (default, parameterized, copy)
- destructor
- objects as function arguments
- returning objects from functions
For Unit 4:
-
Write programs for illustrating the concepts of
- unary operator overloading (prefix and postfix)
- binary operator overloading (Arithmetic , comparison and assignment)
- data conversion (basic to basic, basic to user-defined, user-defined to basic, user-
- defined to user-defined)
For Unit 5:
-
Write programs for illustrating the concepts of
- base class and derived class
- protected access specifier
- overriding member function
- public and private inheritance
- constructor in derived class
For Unit 6:
-
Write programs for illustrating the concepts of
- abstract class and pure virtual function
- friend function and friend class
- static function
- this pointer
For Unit 7:
-
Write programs for illustrating the concepts of
- Function templates and class templates
- Templates and Inheritance
- Exceptional handling using try, throw and catch
- Multiple exceptions , Exceptions with arguments
For Unit 8:
-
Write programs for illustrating the concepts of
- ifstream, ofstream and fstream
- Opening and Closing files using open () and close () member functions
- Read/Write from File using put( ), and get( ),
- read ( ) and write( ) member
- functions
- File Access Pointers and their Manipulators using seekg( ), seekp( ), tellg( ), tellp( ),
- offset, ios::beg, ios::cur, ios::end
- Testing Errors during File Operations using eof( ), fail( ), bad( ), good( )