Theory:
Course Title:Object Oriented Programming
Course No. :CSE 1203
Contact hours/week: 3
Credits: 3.00
Practical:
Course Title:Sessional Based on CSE 1203;
Course No. : CSE 1204
Contact hours/week: 3
Credits: 1.50
Prerequisite: CSE 1101
Course Description
Fundamentals of OOP: Introduction to Object Oriented Programming, Principles of Object Oriented Design, Encapsulation and Information-hiding, Inheritance, Polymorphism, Data binding, Static and dynamic binding.
Classes and Objects: Structure of Class, Access Modifiers, Nested Classes, Abstract Classes, Arrays of Objects, Pointer to Objects, Friend function, Data abstraction.
Constructors and Destructors: Default constructor, Copy constructor, Dynamic constructor, Constructor function for derived class and their order of execution, Destructor.
Inheritance: Single inheritance vs. multiple inheritance, Mode of inheritance, Virtual inheritance.
Polymorphism: Operator and Function overloading, Run-time and Compile time Polymorphism, Virtual function, Errors and Exception Handling.
Advanced Topics: Persistent Objects, Objects and Portable Data, UML Basics, Design Patterns, Multithreading
Reference Programming Language(s): C++ and Java.
Course Timetable
Learning Outcome
On successful completion of this course students will be able to:
1. Explain the steps in creating an executable program for a computer, including the intermediate representations and their purpose.
2. Apply good programming style and understand the impact of style on developing and maintaining programs.
3. Explain the benefits of object oriented design and understand when it is an appropriate methodology to use.
4. Design object oriented solutions for small systems involving multiple objects.
5. Implement, test and debug solutions in C++ and Java.
6. Identify the relative merits of different algorithmic designs.
Learning Resources
The course website provides links to a number of online resources to assist students in learning programming in C++ and Java. For those students who would also like to have a text book, we would recommend the following:
Teach Yourself C++, Herbert Schildt.
Introduction to Java programming, Y. Daniel Liang.
Problem Solving with C++, Walter Savitch.
Java How to program, Paul Deitel
Java: the complete reference, Herbert Schildt.
Others
It is your responsibility to regularly check for notices and to participate in online activities.
Assessment Summary
Basis for awarding marks for class participation and attendance will be as follows:
Course Grading
Grades for your performance in this course will be awarded in accordance with the following scheme:
Further details of the grades/results can be obtained from Examinations.
Grade Descriptors are available which provide a general guide to the standard of work that is expected at each grade level. Final results for this course will be made available through the university.
Fraud Awareness
Students are reminded that in order to maintain the academic integrity of all programs and courses, the university has a zero-tolerance approach to students offering money or significant value goods or services to any staff member who is involved in their teaching or assessment. Students offering lecturers or tutors or professional staff anything more than a small token of appreciation is totally unacceptable, in any circumstances. Staff members are obliged to report all such incidents to their supervisor/manager, who will refer them for action under the university's student’s disciplinary procedures.
Handouts
CSE 1203: Object Oriented Programming
C++:
1. Lecture 00
Course Learning Outcome
Course Details
Resources
2. Lecture01
Programming and Problem Solving
Algorithm
Program Design
Object Oriented Programming
Software Life Cycle
Introduction to C++
Origins of the C++ Language
A Sample C++ Program
Layout of a Simple C++ Program
Compiling and Running a C++ Program
Testing and Debugging
Kind of Program Errors
3. Lecture02
C++ Basics
Fundamental
Data Type and Expression
C++11 Types
Introduction to Class string
Arithmetic Operators and Expressions
Simple Flow of Control
Program Style
More Flow of Control
Procedural Abstraction and Function that Return a Value
Type Casting
Procedural Abstraction and Function that Return a Value
Overloading Function Name
Function for All Subtasks
Call by Reference Parameter
I/O Streams as an Introduction to Object and Class
File I/O
The exit Statement
Techniques for File I/O
Appending to a File
Formatting Output with Stream Functions
The eof Member Function
Some Predefined Character Function in cctyp
Array
Strings and Vectors
An Array type for Strings
Introduction to the Standard Class string
I/O with string Objects
String Processing with the Class string
Converting Between string Objects and C Strings
Converting Between Strings and Numbers
Vector
Pointer and Dynamic Array
4. Lecture03
Structure
Classes
Defining Classes and Member Functions
Public and Public
Programming Tip: Make All Member Variables Private
Programming Tip: Define Accessor and Mutator Functions
Programming Tip: Use the Assignment Operator with Objects
Summary of Some Properties of Classes
Constructors for Initialization
Programming Tip: Always Include a Default Constructor
Member Initializer and Constructor Delegation in C++11
Abstract Data Types
Classes to Produce Abstract Data Types
Introduction to Inheritance
5. Lecture04
Introducing Classes
Constructor and Destructor Function
Object Pointer
In-Line Function
Automatic In-Line Function
A closer Look at Classes
Assigning object
Passing Object to Function
Returning Objects From Functions
An Introduction to Friend Function
Arrays, Pointers and References
Arrays of an Objects
The this Pointer
Memory Allocation: new and delete
6. Lecture05
Function Overloading
Overloading Constructor Function
Creating and Using a Copy Constructor
Using Default Arguments
Overloading and Ambiguity
Finding an address of an overloading function
7. Lecture06
Introducing Operator Overloading
The Basics of Operator Overloading
Overloading Binary Operator
Overloading The relational and Logical Operator
Overloading a Unary Operator
Using Friend Operators Functions
A Close Look At The Assignment Operator
Overloading the [] Subscript Operator
8. Lecture07
Base class access control
Using protected members
Constructors, destructors, and inheritance
Multiple inheritance
Virtual base classes
9. Home Task
Some C++ I/O basics
Formatted I/O
Using width(), precision(),and fill()
Using I/O manipulators
Creating your own inserters
Creating extractors
10. Home Task
Creating your own manipulators
File I/O basics
Unformatted, binary I/O
More unformatted I/O functions
Random access
Checking the I/O status
Customized I/O and files
11. Lecture08
Pointers to derived classes
Introduction to virtual functions
More about virtual functions
Applying polymorphism
12. Lecture09
Generic functions
Generic classes
Exception handling
More about exception handling
Handling exceptions thrown by new
13. Home Task
Understanding Run-Time Type Identification (RTTI)
Using dynamic cast
Using const cast, reinterpret cast, and static cast
14. Home Task
Namespaces
Creating a conversion function
static class members
const member functions and mutable
A final look at constructors
Using linkage specifiers and the asm keywo
Array-based I/O
15.Lecture10
An overview of the Standard Template Library
The container class
Vectors
Lists
Maps
Algorithms
Java:
16. Chapter 01 - 08 ((Introduction to Java Programming, 10th Edition)
17. Home Task: (Introduction to Java Programming, 10th Edition)
Chapter 09 - Objects and Classes
Chapter 10 - Object-Oriented Thinking - String Part - Other Part
18. Chapter 11: Inheritance and Polymorphism - Part-I Part-II
19. Chapter 12: EXCEPTION HANDLING AND TEXT I/O - Self Study
20. Chapter 13: ABSTRACT CLASSES AND INTERFACES
21. Chapter 09: Packages and Interfaces ( Herbert Schildt)
22. Chapter 30: Multithreading and Parallel Programming
CSE 1204: Sessional Based on CSE 1203
Notice
CSE 1203: Object Oriented Programming
Class Test - #1 -
Section A: Question and Answer - Marks
Class Test - #2 -
Section A: Question and Answer
Section C: Question and Answer - Marks
Class Test - #3 - Question ans Answer
Class Test - #4 - Question and Answer
CSE 1204: Sessional Based on CSE 1203
Quiz Test - Question
Attendence