Computer Engineering (English) | |||||
Bachelor | TR-NQF-HE: Level 6 | QF-EHEA: First Cycle | EQF-LLL: Level 6 |
Course Code: | SWE110 | ||||
Course Name: | Object Oriented Programming | ||||
Semester: | Spring | ||||
Course Credits: |
|
||||
Language of instruction: | English | ||||
Course Condition: | |||||
Does the Course Require Work Experience?: | No | ||||
Type of course: | Compulsory Courses | ||||
Course Level: |
|
||||
Mode of Delivery: | Face to face | ||||
Course Coordinator: | Dr. Öğr. Üy. GÜRSAN ÇOBAN | ||||
Course Lecturer(s): | Assist. Prof. Gürsan ÇOBAN | ||||
Course Assistants: |
Course Objectives: | The course aims to teach students object-oriented programming concepts, to enable them to make the software development process more efficient and regular, and to design powerful and scalable software systems by applying OOP principles |
Course Content: | The content of the course consists of the principles underlying the implementation of object-oriented programming in the C++ environment. Students will learn about classes, objects, data members, methods, abstract data types, operator overloading, data abstraction, information hiding, inheritance, polymorphism, and templates, as well as program design principles and algorithm development strategies. |
The students who have succeeded in this course;
1) Analyze and explain class definitions, member data/functions and standard algorithms for Object-OrientedC++ approaches. 2) Can analyze a programming code regarding overloading operators/functions and classes in object-oriented approaches. 3) can analyze a programming code regarding principles of polymorphism in object-oriented approaches. 3) can analyze a programming code regarding principles of templates in object-oriented approaches. |
Week | Subject | Related Preparation |
1) | Introduction to Object Oriented Programming: Classes, objects, member functions and data members. | |
2) | Classes: Class scope, utility functions, constructors and destructors, friend functions and friend classes, this pointer, static class members, data abstraction and information hiding | |
3) | Operator Overloading – Part I: Fundamentals of operator overloading, operator functions as class members vs. global function, overloading stream insertion and stream extraction operators. | |
4) | Operator Overloading – Part II: Overloading unary operators, overloading binary operators, dynamic memory management. | |
5) | Inheritance – Part I: Introduction to inheritance, base classes and derived classes, protected members. | |
6) | Inheritance – Part II: Relationship between base classes and derived classes, public, protected and private inheritance | |
7) | Inheritance – Part III: Inheritance Examples | |
8) | Midterm Exam | |
9) | Polymorphism – Part I: Introduction to polymorphism, virtual functions, dynamic binding, polymorphism examples | |
10) | Polymorphism – Part II: Abstract classes and pure virtual functions | |
11) | Polymorphism – Part III: Polymorphism Examples | |
12) | Templates – Part I: Introduction to templates, function templates, class templates | |
13) | Templates – Part II | |
14) | Stream In/Out: Streams, stream out, stream in, stream connections |
Course Notes / Textbooks: | C++ How to Program, 10/E, Paul Deitel, Harvey Deitel, ISBN-13: 9780134448237, Pearson. |
References: | Bjarne Stroustrup, “Programming: Principles and Practice Using C++”, 2nd Edition, Pearson online sources: https://cplusplus.com/doc/tutorial/ o https://cplusplus.com/ o https://github.com/pdeitel o https://github.com/pdeitel/CPlusPlusHowToProgram10e |
Course Learning Outcomes | 1 |
2 |
3 |
3 |
|||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Program Outcomes | |||||||||||
1) Adequate knowledge in mathematics, science, and computer engineering principles, both theoretical and practical, and the ability to apply this knowledge to complex engineering problems. | |||||||||||
2) Ability to identify, formulate, and solve complex computer engineering problems using appropriate analysis and modeling techniques. | 3 | 2 | 2 | 3 | |||||||
3) Ability to design and develop complex computer systems, devices, or products that meet specific requirements and operate under realistic constraints and conditions, using modern design methods. | 2 | 2 | 2 | 2 | |||||||
4) Ability to develop, select and use modern techniques and tools used for the analysis and solution of complex computer engineering problems, and the ability to use information technologies effectively. | 3 | ||||||||||
5) Ability to plan and conduct experiments, collect and analyze data, and interpret results in the study of complex computer engineering problems or research topics. | |||||||||||
6) Ability to work effectively within and multidisciplinary teams; individual study skills. | |||||||||||
7) Ability to communicate effectively orally and in writing; knowledge of at least one foreign language; ability to write effective reports and understand written reports, to prepare design and production reports, to make effective presentations, to give and receive clear and understandable instructions. | |||||||||||
8) Awareness of the necessity of lifelong learning; ability to access information, to follow developments in science and technology and to renew continuously. | |||||||||||
9) To act in accordance with ethical principles, professional and ethical responsibility; information on the standards used in engineering applications. | |||||||||||
10) Information on business practices such as project management, risk management and change management; awareness of entrepreneurship and innovation; information about sustainable development. | |||||||||||
11) Knowledge of the effects of computer engineering practices on health, environment and safety in the universal and social scale and the problems of the era reflected in computer engineering; awareness of the legal consequences of computer engineering solutions. |
No Effect | 1 Lowest | 2 Average | 3 Highest |
Program Outcomes | Level of Contribution | |
1) | Adequate knowledge in mathematics, science, and computer engineering principles, both theoretical and practical, and the ability to apply this knowledge to complex engineering problems. | |
2) | Ability to identify, formulate, and solve complex computer engineering problems using appropriate analysis and modeling techniques. | 3 |
3) | Ability to design and develop complex computer systems, devices, or products that meet specific requirements and operate under realistic constraints and conditions, using modern design methods. | 2 |
4) | Ability to develop, select and use modern techniques and tools used for the analysis and solution of complex computer engineering problems, and the ability to use information technologies effectively. | 3 |
5) | Ability to plan and conduct experiments, collect and analyze data, and interpret results in the study of complex computer engineering problems or research topics. | |
6) | Ability to work effectively within and multidisciplinary teams; individual study skills. | |
7) | Ability to communicate effectively orally and in writing; knowledge of at least one foreign language; ability to write effective reports and understand written reports, to prepare design and production reports, to make effective presentations, to give and receive clear and understandable instructions. | |
8) | Awareness of the necessity of lifelong learning; ability to access information, to follow developments in science and technology and to renew continuously. | |
9) | To act in accordance with ethical principles, professional and ethical responsibility; information on the standards used in engineering applications. | |
10) | Information on business practices such as project management, risk management and change management; awareness of entrepreneurship and innovation; information about sustainable development. | |
11) | Knowledge of the effects of computer engineering practices on health, environment and safety in the universal and social scale and the problems of the era reflected in computer engineering; awareness of the legal consequences of computer engineering solutions. |
Semester Requirements | Number of Activities | Level of Contribution |
Midterms | 1 | % 40 |
Final | 1 | % 60 |
total | % 100 | |
PERCENTAGE OF SEMESTER WORK | % 40 | |
PERCENTAGE OF FINAL WORK | % 60 | |
total | % 100 |
Activities | Number of Activities | Workload |
Course Hours | 13 | 39 |
Laboratory | 13 | 26 |
Study Hours Out of Class | 13 | 26 |
Midterms | 3 | 22 |
Final | 4 | 27 |
Total Workload | 140 |