/SECJ1023-PT2

This repository offers educational resources, code examples, and implementations relating to object oriented programming using C++ programming language.

Primary LanguageC++

Stars Badge Forks Badge Pull Requests Badge Issues Badge GitHub contributors Visitors

Don't forget to hit the ⭐ if you like this repo.

Programming Technique II (SECJ1023)

Welcome to the Course on Programming Technique II! This course will teach you the concept of object orientation and object-oriented programming (OOP) techniques using the C++ programming language.

Course Overview πŸ“š

  • Course Duration: 15 weeks
  • Prerequisites: Programming Technique 1

Course Learning Outcomes (CLO) 🎯

By the end of this course, students will be able to:

  1. Analyse problems systematically using object- oriented approaches.
  2. Develop programs using object-oriented principles.
  3. Work in a team to develop a medium to complex program as a group mini project, using C++ programming language.

Program Learning Outcomes (PLO) 🌟

This course contributes to the following Program Learning Outcomes:

  • PLO1: Ability to acquire theory and principles of computer science and equip with social science and personal development knowledge.
  • PLO2: Ability to design and construct computer programs using standard approaches.
  • PLO7: Ability to work effectively in a team.

Table of Contents πŸ“‘

  1. Introduction
  2. Introduction to Classes and Objects
  3. Constructors and Destructors
  4. Class and Object Manipulations
  5. String Manipulations
  6. Associations, Aggregations and Compositions
  7. Inheritance
  8. Polymorphisms
  9. Overview of Advanced Features

Course Content πŸ“–

Introduction

  • Overview of Programming Paradigms
  • Revision on Programming Technique I: Procedural Programming, Object-Oriented Programming, Functional Programming
  • Setting Up Programming Environment
  • Overview of Object-Oriented Programming Principles: Abstractions, Data Hiding, Encapsulations, Associations, Inheritances
  • UML Class Diagram

Introduction to Classes and Objects

  • Defining Classes
  • Creating Objects
  • Private Members: Why Have Private Members?, Using Private Member Functions
  • Separating Class Specification from Implementation
  • Inline Member Functions

Constructors and Destructors

  • Constructors
  • Passing Arguments to Constructors
  • Destructors
  • Overloading Constructors
  • Copy Constructors

Class and Object Manipulations

  • Friend of Classes
  • Pointers to Objects
  • Arrays of Objects
  • Objects and Functions: Objects as Function Parameters, Returning Objects from Functions
  • Operator Overloading
  • Object Conversions

String Manipulations

  • The string Class
  • String Comparisons
  • String Operators
  • String Member Functions

Associations, Aggregations and Compositions

  • Introduction to Associations
  • Introduction to Aggregations
  • Aggregation Implementations
  • Introduction to Compositions
  • Composition Implementations

Inheritance

  • Introduction to Inheritance
  • Protected Members and Class Access
  • Constructors and Destructors in Base and Derived Classes
  • Redefining Base Class Functions
  • Class Hierarchies
  • Multiple Inheritances

Polymorphisms

  • Introduction to Polymorphisms
  • Polymorphism and Virtual Member Functions
  • Abstract Base Classes and Pure Virtual Functions

Overview of Advanced Features

  • Exceptions
  • Templates
  • Containers
  • Iterator

Evaluation πŸ“Š

  • Exercises(5): 15%
  • Project: 20%
  • Teamworking: 5%
  • Test1(Theory): 15%
  • Test2(Practical): 10%
  • Final Exam(Theory): 15%
  • Final Exam(Practical): 20%
  • Total: 100%

Additional Resources πŸ”—