This course provides a comprehensive introduction to Object-Oriented Programming (OOP) using C++, beginning with the transition from C to C++ through variables, functions, arrays, and function overloading, and advancing to core OOP topics such as classes, constructors, data abstraction, inheritance, virtual functions, operator overloading, templates, and exception handling. Emphasis is placed on understanding and applying the fundamental principles of OOP, including abstraction, encapsulation, inheritance, and polymorphism, to design and implement efficient, reusable, and robust software systems.
Prerequisite(s)
CSE1001 Programming-I
Corequisite(s)
None
Special Requisite(s)
None
Instructor(s)
Assoc. Prof. Fatma P. AKBULUT
Course Assistant(s)
Ar. Gör. Büşra Kocaçınar
Schedule
Tuesday 09:00-11:00
11:00-13:00
Office Hour(s)
Friday:09:00-11:00
Teaching Methods and Techniques
In theory lectures, PPT presentations are used to explain the concepts. During lab work, applications are developed.
Principle Sources
D. S. Malik, “C++ Programming: Program Design including Data Structures”, 8th Edition, 2017 (Textbook)
Deitel, H. M., & Deitel, P. J. . C++ how to program. Pearson Education. 7th Edition, 2009
Other Sources
-
Course Schedules
Week
Contents
Learning Methods
1. Week
Course Introduction and Syllabus
Oral Presentation, Laboratory
2. Week
String Class and prewritten classes
Oral Presentation, Laboratory
3. Week
Function Overloading
Oral Presentation, Laboratory
4. Week
Structs, Classes and Data Abstraction (Chapter 10)
Oral Presentation, Laboratory
5. Week
Classes and Data Abstraction (Chapter 10)
Oral Presentation, Laboratory
6. Week
Inheritance and Composition (Chapter 11)
Oral Presentation, Laboratory
7. Week
Inheritance and Composition (Chapter 11)
Oral Presentation, Laboratory
8. Week
Midterm
Midterm
9. Week
Pointers, Classes, Virtual Functions, Abstract Classes, and Lists (Chapter 12)
Oral Presentation, Laboratory
10. Week
Pointers, Classes, Virtual Functions, Abstract Classes, and Lists (Chapter 12)
Oral Presentation, Laboratory
11. Week
Overloading and Templates (Chapter 13)
Oral Presentation, Laboratory
12. Week
Overloading and Templates (Chapter 13)
Oral Presentation, Laboratory
13. Week
Exception Handling (Chapter 14)
Oral Presentation, Laboratory
14. Week
Exception Handling (Chapter 14)
Oral Presentation, Laboratory
15. Week
16. Week
17. Week
Assessments
Evaluation tools
Quantity
Weight(%)
Midterm(s)
1
35
Quizzes
2
15
Project(s)
1
10
Final Exam
1
35
Program Outcomes
PO-1
Adequate knowledge in mathematics, science and engineering subjects pertaining to the relevant discipline; ability to use theoretical and applied information in these areas to model and solve engineering problems.
PO-2
Ability to identify, formulate, and solve complex engineering problems; ability to select and apply proper analysis and modelling methods for this purpose.
PO-3
Ability to design a complex system, process, device or product under realistic constraints and conditions, in such a way so as to meet the desired result; ability to apply modern design methods for this purpose. (Realistic constraints and conditions may include factors such as economic and environmental issues, sustainability, manufacturability, ethics, health, safety issues, and social and political issues according to the nature of the design.)
PO-4
Ability to devise, select, and use modern techniques and tools needed for engineering practice; ability to employ information technologies effectively.
PO-5
Ability to design and conduct experiments, gather data, analyse and interpret results for investigating engineering problems.
PO-6
Ability to work efficiently in intra-disciplinary and multi-disciplinary teams; ability to work individually.
PO-7
Ability to communicate effectively, both orally and in writing; knowledge of a minimum of one foreign language.
PO-8
Recognition of the need for lifelong learning; ability to access information, to follow developments in science and technology, and to continue to educate him/herself.
PO-9
Awareness of professional and ethical responsibility.
PO-10
Information about business life practices such as project management, risk management, and change management; awareness of entrepreneurship, innovation, and sustainable development.
PO-11
Knowledge about contemporary issues and the global and societal effects of engineering practices on health, environment, and safety; awareness of the legal consequences of engineering solutions.
Learning Outcomes
LO-1
Describe the fundamental principles of object-oriented programming, including the differences between classes and objects.
LO-2
Explain and apply the concepts of inheritance and composition to design modular, reusable, and extensible systems.
LO-3
Implement classes with constructors, operator overloading, and templates to support flexibility and code reusability
LO-4
Use abstract functions, abstract classes, and virtual functions to achieve polymorphism and extensibility.
LO-5
Apply exception handling within object-oriented designs to create robust and error-tolerant applications.
LO-6
Analyze programming problems and develop effective C++ solutions using object-oriented design techniques.
LO-7
Demonstrate proficiency in writing, testing, and debugging C++ programs through laboratory work, exercise/projects, and exams.