Official government website of the Government of Kingdom of Saudi Arabia
Link to official Saudi websites end with edu.sa

All links to official educational websites in the Kingdom of Saudi Arabia end with sch.sa or edu.sa

Government websites use the HTTPS protocol for encryption and security.

Secure websites in the Kingdom of Saudi Arabia use the HTTPS protocol for encryption.

Registered with the Digital Government Authority under number:

20250417892

Object-Oriented Programming with C++

CS1013
3 hours English

Object-Oriented Programming with C++

Object Oriented Programming with C++
1 Lecture: Introduction to C++ vs. Python / Key differences between Python and C++ / Key differences in syntax, structure, and development philosophy / C++ Syntax and Structure / Environment setup (compiler/IDE) / Introduction to Git for version control
2 Lecture: Basic C++ Syntax, Structure, Operators, and Expressions / Writing and running your first C++ program / Primitive built-in data types / Compound types: references and pointers / Using namespace declarations / Library string type / Arithmetic, logical, relational, and assignment operators / Member access operators / Lab: / Convert basic Python scripts to C++ / Write a simple “Hello World” and calculator program in C++ / Create a program that declares, initializes, and prints various data types / Create a program that uses different operators, and displays the outcomes / Demonstrate the use of member access operators by creating and manipulating a simple struct
3 Lecture: Control Structures / Simple statements: null and compound statements; scoping / Conditional statements: conditional operator, if, if-else, and switch / Iterative statements: while, for, do-while / Jump statements: break and continue / Lab: / Write a program to check if a number is even or odd using both if-else and switch / Implement a factorial function using both iteration and recursion / Compare Python’s function definitions with C++ approaches
4 Lecture: Functions and Arrays / Function basics: definitions, argument passing, and return values / Overloaded functions, default arguments, inline and constexpr functions / Pointers to functions / Arrays in C++ / Lab: / Create an array and calculate its average
5 Lecture: Pointers, Memory Management, and Advanced Function / Pointer basics: declaration, dereferencing, and pointer arithmetic / Dynamic memory allocation and deallocation / Introduction to smart pointers / In-depth look at references / Lab: / Implement a dynamic array using raw pointers / Implement a swap function using pointers / Demonstrate the use of smart pointers for memory management
6 Lecture: Classes and Objects / Defining classes: member variables and functions / Access modifiers: public, private, and protected / Constructors and destructors / Lab: / Create a simple class (e.g., a BankAccount class) with private data members and public access methods
7 Lecture: Encapsulation, Design, and Namespaces / Encapsulation principles / Inline functions and constant member functions / Using declarations and organizing code with namespaces / Splitting projects into multiple files with appropriate namespace usage / Basic UML diagram practice for class design / Lab: / Design a class structure (e.g., a BankAccount class) using a basic UML diagram. / Create simple getter functions as inline functions within the class / Define member functions as const when they do not alter the object's state / Organize a project into multiple files and namespaces for better modularity
8 Lecture: Operator Overloading and Friend Functions / Operator Overloading / Friend functions and classes / Lab: / Implement operator overloading (e.g., operator / Debugging operators
9 Lecture: Inheritance / Inheritance / Base vs. Derived classes / Constructors and Destructors in Inheritance / Single and Multiple Inheritance / Lab: / Create a simple class hierarchy demonstrating base and derived classes / Implement and observe the order of constructor and destructor calls in both base and derived classes / Develop a single inheritance example to illustrate attribute and method inheritanceBuild a multiple inheritance scenario and analyze potential issues (e.g., ambiguity) and their resolution
10 Lecture: Polymorphism / Polymorphism / Function Overriding / Abstract classes and pure virtual functions / Lab: / Building advanced class hierarchies / Implementing polymorphic classes / Testing polymorphic behavior
11 Lecture: Composition / Using objects as members of other classes / Composition vs. inheritance / Understanding and using the this pointer / Lab: / Create a class containing another class. / Use this pointer to resolve naming conflicts
12 Lecture: Exception Handling / Error codes versus exceptions / Writing robust code using try/catch blocks / Creating and using custom exception classes / Lab: / Writing try/catch blocks / Lab tasks with custom exception classes
13 Lecture: Templates and the Standard Template Library (STL) / Function and class templates for generic programming / Standard Template Library (STL) Basics / Lab: / Implementing a template class (e.g., a generic array) / Using STL containers
1.1 Mapped to: K1

Explain the fundamental concepts of object-oriented programming (classes, objects, encapsulation, inheritance, polymorphism)

Teaching Strategy Lectures, discussions, tutorials
Assessment Methods Quizzes, Exams
2.1 Mapped to: S1

Develop and debug C++ programs using basic language constructs and control structures.

Teaching Strategy Discussions, tutorials, lab exercies
Assessment Methods Programming assignments, In-Class Code Reviews
2.2 Mapped to: S1

Apply object-oriented programming concepts to design and implement modular classes.

Teaching Strategy Discussions, tutorials, lab exercies
Assessment Methods Programming assignments, In-Class Code Reviews
2.3 Mapped to: S2

Utilize advanced OOP techniques such as inheritance, polymorphism, and operator overloading.

Teaching Strategy Discussions, tutorials, lab exercies
Assessment Methods Programming assignments, In-Class Code Reviews
2.4 Mapped to: S1

Integrate robust error management through exception handling in C++ programs.

Teaching Strategy Discussions, tutorials, lab exercies
Assessment Methods Programming assignments, In-Class Code Reviews
2.5 Mapped to: S3 (S6 in ABET)

Practical and Physical Skills: an ability to develop and conduct experimentation, analyze and interpret data, in the domain of C++ programming

Teaching Strategy One or more of the following strategies may be used: Perform experiments Application development using hardware development boards Data analysis Data interpretation Problem solving through programming Classroom lectures PowerPoint slides
Assessment Methods One or more of the following strategies may be used: Projects Written exams Home assignments
3.1 Mapped to: V1

Demonstrate good coding practices, design ideas using UML diagrams and clear code documentation.

Teaching Strategy Discussions, tutorials, lab exercises
Assessment Methods Code Quality Rubrics
3.2 Mapped to: V1

Recognize the importance of readability and maintainability in collaborative software development.

Teaching Strategy Group projects, programming assignments
Assessment Methods Team Reflection Reports