Don't forget to hit the β if you like this repo.
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 Duration: 15 weeks
- Prerequisites: Programming Technique 1
By the end of this course, students will be able to:
- Analyse problems systematically using object- oriented approaches.
- Develop programs using object-oriented principles.
- Work in a team to develop a medium to complex program as a group mini project, using C++ programming language.
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.
- Introduction
- Introduction to Classes and Objects
- Constructors and Destructors
- Class and Object Manipulations
- String Manipulations
- Associations, Aggregations and Compositions
- Inheritance
- Polymorphisms
- Overview of Advanced Features
- 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
- Defining Classes
- Creating Objects
- Private Members: Why Have Private Members?, Using Private Member Functions
- Separating Class Specification from Implementation
- Inline Member Functions
- Constructors
- Passing Arguments to Constructors
- Destructors
- Overloading Constructors
- Copy Constructors
- Friend of Classes
- Pointers to Objects
- Arrays of Objects
- Objects and Functions: Objects as Function Parameters, Returning Objects from Functions
- Operator Overloading
- Object Conversions
- The string Class
- String Comparisons
- String Operators
- String Member Functions
- Introduction to Associations
- Introduction to Aggregations
- Aggregation Implementations
- Introduction to Compositions
- Composition Implementations
- Introduction to Inheritance
- Protected Members and Class Access
- Constructors and Destructors in Base and Derived Classes
- Redefining Base Class Functions
- Class Hierarchies
- Multiple Inheritances
- Introduction to Polymorphisms
- Polymorphism and Virtual Member Functions
- Abstract Base Classes and Pure Virtual Functions
- Exceptions
- Templates
- Containers
- Iterator
- Exercises(5): 15%
- Project: 20%
- Teamworking: 5%
- Test1(Theory): 15%
- Test2(Practical): 10%
- Final Exam(Theory): 15%
- Final Exam(Practical): 20%
- Total: 100%
- Walter Savitch (2013). Absolute C++. Pearson.β
- Stephen Randy Davis (2004). C++ for Dummies. Wiley Publishing Inc.
- Bjarne Stroustrup (2013). The C++ Programming Language. Addison-Wesley.
- Jesse Liberty and Bradley Jones (2005). Teach Yourself C++ in 21 Days. SAMS.
- Ulla Kirch-Prinz & Peter Prinz (2002). A Complete Guide to Programming in C++. Jones and Barlett Publishers.
- D. S. Malik (2013). C++ Programming: From Problem Analysis to Program Design. Cengage Learning.
- Gaddis, T. (2015). Starting out with C++. From control structures through objects. Pearson.β
- J. R. Hubbard (2000). Schaumβs Outline of Theory and Problems of Programming with C++. McGraw-Hill.β
- Jesse Liberty, Siddhartha Rao & Bradley Jones (2009). Teach Yourself C++ in One Hour a Day. SAMS.
- Learn GitHub