Object Oriented Programming Language

This course introduces the fundamental concepts and principles of Object-Oriented Programming using C++. Students will develop programming logic, object-oriented design, and problem-solving skills through the study of classes, objects, encapsulation, inheritance, polymorphism, abstraction, function overloading, operator overloading, file handling, templates, exception handling, and the Standard Template Library.

Instructor: Md. Shakil Ahmed

Term: Fall

Object Oriented Programming Language

CSE 1201-1 · Core Engineering Course · 3.0 Credit Hours

This course introduces the fundamental concepts and principles of Object-Oriented Programming using C++. Students develop programming logic, object-oriented design, and problem-solving skills through classes, objects, encapsulation, inheritance, polymorphism, abstraction, file handling, templates, exception handling, and the Standard Template Library.
C++ Programming Object-Oriented Programming Classes and Objects Encapsulation Inheritance Polymorphism Abstraction Operator Overloading Templates Exception Handling STL

Course Overview

This course introduces the fundamental concepts and principles of Object-Oriented Programming using the C++ programming language. Students will develop programming logic, computational thinking, and problem-solving skills while learning how to design and implement structured, reusable, maintainable, and efficient software solutions.

The course covers classes, objects, encapsulation, inheritance, polymorphism, abstraction, function overloading, operator overloading, file handling, templates, exception handling, and the Standard Template Library. Emphasis is placed on object-oriented design, code reuse, modularity, maintainability, and practical problem solving using C++.

Course Learning Outcomes

CLO1 — OOP Fundamentals

Explain the fundamental concepts and principles of Object-Oriented Programming and distinguish object-oriented programming from procedural programming.

CLO2 — Classes and Objects

Design and implement classes and objects using appropriate access specifiers, constructors, destructors, encapsulation, function overloading, and operator overloading.

CLO3 — Inheritance and Polymorphism

Apply inheritance, polymorphism, virtual functions, and dynamic binding to develop reusable and extensible C++ programs.

CLO4 — Advanced C++ Programming

Implement abstraction, file handling, templates, exception handling, and Standard Template Library components in C++ programs.

Prerequisites

  • Basic programming knowledge.
  • Basic problem-solving skills.
  • Familiarity with fundamental programming concepts.
  • Basic understanding of procedural programming.
  • Basic knowledge of C or C++ programming.

Textbooks

  • Primary: The C++ Programming Language by Bjarne Stroustrup.

Reference Books

  • Object-Oriented Programming with C++ by E. Balagurusamy.
  • C++ Primer, 5th Edition, by Stanley B. Lippman, Josée Lajoie, and Barbara E. Moo.

Tools and Platforms

Programming Environment

C++ Programming Language, GCC Compiler, Visual Studio Code, Code::Blocks, and other standard C++ development environments.

Problem Solving

C++ programming exercises, algorithmic problem-solving platforms, and online programming environments for practical implementation.

Online Resources

  • C++ programming language documentation and language references.
  • C++ Standard Template Library documentation.
  • Online C++ programming resources and tutorials.

Grading

Assessment Weight
Class Participation and Activity 10%
Assignments and Continuous Evaluation 20%
Midterm Examination 30%
Final Examination 40%
Total 100%

Course Information

  • Course Code: CSE 1201-1
  • Course Type: Theory Course
  • Credit Hours: 3.0
  • Academic Session: Fall 2024
  • Year-Semester: 1-2
  • Contact Hours: 48 hours
  • Instructor: Md. Shakil Ahmed

Course Schedule

Week Topic Description
1 Introduction to Object-Oriented Programming and C++ Introduction to Object-Oriented Programming, fundamental OOP concepts, object-oriented programming paradigms, advantages of OOP over procedural programming, and an overview of the C++ programming language.
2 Data Types, Operators, Control Structures, and Functions Study of C++ data types, variables, constants, operators, expressions, decision-making statements, loops, control structures, and fundamental programming techniques.
3 Functions and Problem Solving in C++ Detailed study of function declaration and definition, parameter passing, return values, default arguments, inline functions, recursion, scope, and function-based problem solving.
4 Classes, Objects, Constructors, and Destructors Introduction to classes and objects, data members, member functions, access specifiers, constructors, default constructors, parameterized constructors, copy constructors, and destructors.
5 Encapsulation, Function Overloading, and Operator Overloading Study of encapsulation and data hiding using access specifiers, function overloading, and operator overloading. Students will examine compile-time polymorphism and its applications in C++.
6 Inheritance and Its Types Introduction to inheritance, base and derived classes, access control, and different types of inheritance including single, multiple, multilevel, hierarchical, and hybrid inheritance.
7 Midterm Review and Examination Comprehensive review of C++ programming fundamentals, classes, objects, constructors, destructors, encapsulation, function overloading, operator overloading, and inheritance, followed by the midterm examination.
8 Polymorphism and Virtual Functions Study of compile-time and runtime polymorphism, function overloading, operator overloading, function overriding, virtual functions, pure virtual functions, base-class pointers, and dynamic binding.
9 Abstraction and Abstract Classes Introduction to abstraction, abstract classes, pure virtual functions, interfaces, and the role of abstraction in object-oriented software design.
10 File Handling in C++ Study of file input and output operations using C++ file streams, including text and binary files, file opening and closing, reading, writing, appending, file pointers, and file management techniques.
11 Templates and Generic Programming Introduction to generic programming using function templates and class templates. Study of template parameters, template specialization concepts, and reusable generic program design.
12 Exception Handling Study of exception handling in C++ using try, catch, and throw mechanisms. Students will learn to identify, propagate, and handle runtime errors and develop robust programs.
13 Standard Template Library Introduction to the C++ Standard Template Library, including containers, iterators, algorithms, vectors, lists, stacks, queues, sets, maps, and practical applications of STL components.
14 Object-Oriented Design and Problem Solving Application of object-oriented principles to analyze and solve programming problems. Emphasis on class relationships, code reuse, modularity, maintainability, and efficient software design.
15 Advanced C++ Programming and Problem Solving Integration of inheritance, polymorphism, abstraction, templates, exception handling, file handling, and STL to solve comprehensive programming problems and develop efficient C++ solutions.
16 Review and Final Examination Preparation Comprehensive review of object-oriented programming concepts, C++ programming techniques, common programming problems, and preparation for the final examination.
17 Final Examination and Course Review Final examination covering the major theoretical and programming concepts of the course, followed by a comprehensive review and discussion of key object-oriented programming principles.