English


COMPUTER ENGINEERING (ENGLISH) PROGRAMME
COURSE DESCRIPTION
Name of the Course Unit Code Year Semester In-Class Hours (T+P) Credit ECTS Credit
OBJECT ORIENTED PROGRAMMING COM212 2 4 3+0 3.0 5.0


General Information
Language of Instruction English
Level of the Course Unit Bachelor's Degree, TYYÇ: Level 6, EQF-LLL: Level 6, QF-EHEA: First Cycle
Type of the Course Compulsory
Mode of Delivery of the Course Unit Face-to-face
Work Placement(s) Requirement for the Course Unit No
Coordinator of the Course Unit
Instructor(s) of the Course Unit Instructor İRFAN SARIYILDIZ
Assistant(s) of the Course Unit

Prerequisites and/or co-requisities of the course unit
CATEGORY OF THE COURSE UNIT
Category of the Course Unit Degree of Contribution (%)
Fundamental Course in the field % 50
Course providing specialised skills to the main field % 50
Course providing supportive skills to the main field -
Course providing humanistic, communication and management skills -
Course providing transferable skills -

Objectives and Contents
Objectives of the Course Unit The objective of OOP is to familiarize students with the C++ programming language and use the language to develop pure object oriented programs.
Contents of the Course Unit The concept of OOP is provided through C++ Programming. It covers basic topics like input/output streams, namespaces, classes and objects, constructors, function overloading, function overriding through to advanced topics such as Inheritance, Polymorphism, Templates, Exception handling, File handling etc,
Contribution of the Course Intending to Provide the Professional Education It will be a stepping stone for learning other technologies like Java, Ios, Windows(android) phone programming etc. In today's scenario it is almost impossible for a budding programmer/developer to survive in the market without a solid foundation of OOPs concepts. There is no better option than to start with C++ for this purpose. Once you acquaint yourself with the aforesaid topics there won't be any looking back. The initial lectures explain the pillars of OOPs with the help of real-life examples.

No
Key Learning Outcomes of the Course Unit
On successful completion of this course unit, students/learners will or will be able to:
1 Understand object oriented programming and advanced C++ concepts 
2 Be able to explain the difference between object oriented programming and procedural programming. 
3 Be able to program using more advanced C++ features such as composition of objects, operator overloads, dynamic memory allocation, inheritance and polymorphism, file I/O, exception handling, etc. 
4 Be able to build C++ classes using appropriate encapsulation and design principles. 
5 Improve your problem solving skills 
6 Be able to apply object oriented or non-object oriented techniques to solve computing problems .

Learning Activities & Teaching Methods of the Course Unit
Learning Activities & Teaching Methods of the Course Unit

Weekly Course Contents and Study Materials for Preliminary & Further Study
Week Topics (Subjects) Preparatory & Further Activities
1 Introduction to Object Oriented Programming
Issues with Procedure Oriented Programming
Basic of Object Oriented Programming (OOP)
Procedure Oriented versus Object Oriented Programming
Concept of Object Oriented Programming
Object
Class
Abstraction
Encapsulation
Inheritance
Polymorphism
Example of Some Object Oriented Languages
Advantages and Disadvantages of OOP
No file found
2 Introduction to C++
The Need of C++
Features of C++
C++ Versus C
History of C++
No file found
3 C++ Language Constructs
C++ Program Structure
Character Set and Tokens
Keywords
Identifiers
Literals
Operators and Punctuators
Variable Declaration and Expression
Statements
Data Type
Type Conversion and Promotion Rules
Preprocessor Directives
Namespace
User Defined Constant const
Input/Output Streams and Manipulators
Dynamic Memory Allocation with new and delete
Condition and Looping
Functions
Function Syntax
Function Overloading
Inline Functions
Default Argument
Pass by Reference
Return by Reference
Array, Pointer and String
Structure, Union and Enumeration
No file found
4 C++ Language Constructs
C++ Program Structure
Character Set and Tokens
Keywords
Identifiers
Literals
Operators and Punctuators
Variable Declaration and Expression
Statements
Data Type
Type Conversion and Promotion Rules
Preprocessor Directives
Namespace
User Defined Constant const
Input/Output Streams and Manipulators
Dynamic Memory Allocation with new and delete
Condition and Looping
Functions
Function Syntax
Function Overloading
Inline Functions
Default Argument
Pass by Reference
Return by Reference
Array, Pointer and String
Structure, Union and Enumeration
No file found
5 C++ Language Constructs
C++ Program Structure
Character Set and Tokens
Keywords
Identifiers
Literals
Operators and Punctuators
Variable Declaration and Expression
Statements
Data Type
Type Conversion and Promotion Rules
Preprocessor Directives
Namespace
User Defined Constant const
Input/Output Streams and Manipulators
Dynamic Memory Allocation with new and delete
Condition and Looping
Functions
Function Syntax
Function Overloading
Inline Functions
Default Argument
Pass by Reference
Return by Reference
Array, Pointer and String
Structure, Union and Enumeration
No file found
6 Objects and Classes
C++ Classes
Access Specifiers
Objects and the Member Access
Defining Member Function
Constructor
Default Constructor
Parameterized Constructor
Copy Constructor
Destructors
Object as Function Arguments and Return Type
Array of Objects
Pointer to Objects and Member Access
Dynamic Memory Allocation for Objects and Object Array
this Pointer
static Data Member and static Function
Constant Member Functions and Constant Objects
Friend Function and Friend Classes
No file found
7 Midterm Exam No file found
8 Objects and Classes
C++ Classes
Access Specifiers
Objects and the Member Access
Defining Member Function
Constructor
Default Constructor
Parameterized Constructor
Copy Constructor
Destructors
Object as Function Arguments and Return Type
Array of Objects
Pointer to Objects and Member Access
Dynamic Memory Allocation for Objects and Object Array
this Pointer
static Data Member and static Function
Constant Member Functions and Constant Objects
Friend Function and Friend Classes
No file found
9 Objects and Classes
C++ Classes
Access Specifiers
Objects and the Member Access
Defining Member Function
Constructor
Default Constructor
Parameterized Constructor
Copy Constructor
Destructors
Object as Function Arguments and Return Type
Array of Objects
Pointer to Objects and Member Access
Dynamic Memory Allocation for Objects and Object Array
this Pointer
static Data Member and static Function
Constant Member Functions and Constant Objects
Friend Function and Friend Classes
No file found
10 Operator Overloading
Overloadable Operators
Syntax of Operator Overloading
Rules of Operator Overloading
Unary Operator Overloading
Binary Operator Overloading
Operator Overloading with Member and Non Member Functions
Data Conversion: Basic – User Defined and User Defined – User Defined
Explicit Constructors
No file found
11 Operator Overloading
Overloadable Operators
Syntax of Operator Overloading
Rules of Operator Overloading
Unary Operator Overloading
Binary Operator Overloading
Operator Overloading with Member and Non Member Functions
Data Conversion: Basic – User Defined and User Defined – User Defined
Explicit Constructors
No file found
12 Inheritance
Base and Derived Class
protected Access Specifier
Derived Class Declaration
Member Function Overriding
Forms of Inheritance: single, multiple, multilevel, hierarchical, hybrid, multipath
Multipath Inheritance and Virtual Base Class
Constructor Invocation in Single and Multiple Inheritances
Destructor in Single and Multiple Inheritances
No file found
13 Inheritance
Base and Derived Class
protected Access Specifier
Derived Class Declaration
Member Function Overriding
Forms of Inheritance: single, multiple, multilevel, hierarchical, hybrid, multipath
Multipath Inheritance and Virtual Base Class
Constructor Invocation in Single and Multiple Inheritances
Destructor in Single and Multiple Inheritances
No file found
14 Polymorphism and Dynamic Binding
Need of Virtual Function
Pointer to Derived Class
Definition of Virtual Functions
Array of Pointers to Base Class
Pure Virtual functions and Abstract Class
Virtual Destructor
reinterpret_cast Operator
Run‐Time Type Information
dynamic_cast Operator
typeid Operator
No file found

SOURCE MATERIALS & RECOMMENDED READING
1- 1- C++ How to Program, Deitel & Deitel

MATERIAL SHARING
Course Notes No file found
Presentations No file found
Homework No file found
Exam Questions & Solutions No file found
Useful Links No file found
Video and Visual Materials No file found
Other No file found
Announcements No file found

CONTRIBUTION OF THE COURSE UNIT TO THE PROGRAMME LEARNING OUTCOMES
KNOWLEDGE
Theoretical
No PROGRAMME LEARNING OUTCOMES LEVEL OF CONTRIBUTION*
0 1 2 3 4 5
1 Gaining knowledge on computer software, computer hardware, and computer networks with a strong background on mathematics X
2 Being able to design and implement both software and hardware of computer and computerized systems X
3 technical and practical knowledge X
Factual
No PROGRAMME LEARNING OUTCOMES LEVEL OF CONTRIBUTION*
0 1 2 3 4 5
1 Gained ability to be able to tackle with real-world cases X
SKILLS
Cognitive
No PROGRAMME LEARNING OUTCOMES LEVEL OF CONTRIBUTION*
0 1 2 3 4 5
1 Have insight into the latest technological developments in the contemporary societies X
2 using the technology for solving real-world problems X
3 being aware of real-world engineering tasks and problems X
Practical
No PROGRAMME LEARNING OUTCOMES LEVEL OF CONTRIBUTION*
0 1 2 3 4 5
1 practicing with real-world cases X
PERSONAL & OCCUPATIONAL COMPETENCES IN TERMS OF EACH OF THE FOLLOWING GROUPS
Autonomy & Responsibility
No PROGRAMME LEARNING OUTCOMES LEVEL OF CONTRIBUTION*
0 1 2 3 4 5
1 being able to use the technology to design and implement software and hardware of computer and computerized systems for solving real-world problems X
2 graduation projects on real-world cases X
3 summer practice at a workplace X
Learning to Learn
No PROGRAMME LEARNING OUTCOMES LEVEL OF CONTRIBUTION*
0 1 2 3 4 5
1 gain insight to the latest technological developments X
2 Being able to implement sustainable computerized systems both in software and hardware X
Communication & Social
No PROGRAMME LEARNING OUTCOMES LEVEL OF CONTRIBUTION*
0 1 2 3 4 5
1 being able to formulate mathematical models via communication of the problem word for designing and implementing solutions both in software and hardware X
Occupational and/or Vocational
No PROGRAMME LEARNING OUTCOMES LEVEL OF CONTRIBUTION*
0 1 2 3 4 5
1 Achieving a technically competent career X
2 Design and implement information and computing systems for the ever growing contemporary societies X
*Level of Contribution (0-5): Empty-Null (0), 1- Very Low, 2- Low, 3- Medium, 4- High, 5- Very High

No
Key Learning Outcomes of the Course Unit
On successful completion of this course unit, students/learners will or will be able to:
PROGRAMME LEARNING OUTCOMES
1 Understand object oriented programming and advanced C++ concepts  1 (3), 2 (3), 3 (5), 4 (5), 5 (5), 6 (5), 7 (5), 8 (5), 9 (3), 12 (5), 13 (3), 14 (3), 15 (5), 16 (5)
2 Be able to explain the difference between object oriented programming and procedural programming. 1 (3), 2 (3), 3 (5), 4 (5), 5 (5), 6 (5), 7 (5), 8 (5), 9 (3), 12 (3), 13 (3), 14 (3), 15 (5), 16 (5)
3 Be able to program using more advanced C++ features such as composition of objects, operator overloads, dynamic memory allocation, inheritance and polymorphism, file I/O, exception handling, etc.  1 (3), 2 (3), 3 (5), 4 (5), 5 (5), 6 (5), 7 (5), 8 (5), 9 (3), 12 (3), 13 (3), 14 (3), 15 (5), 16 (5)
4 Be able to build C++ classes using appropriate encapsulation and design principles. 1 (3), 2 (3), 3 (5), 4 (5), 5 (5), 6 (5), 7 (5), 8 (5), 9 (3), 12 (3), 13 (3), 14 (3), 15 (5), 16 (5)
5 Improve your problem solving skills  1 (3), 2 (3), 3 (5), 4 (5), 5 (5), 6 (5), 7 (5), 8 (5), 9 (3), 12 (3), 13 (3), 14 (3), 15 (5), 16 (5)
6 Be able to apply object oriented or non-object oriented techniques to solve computing problems . 1 (3), 2 (3), 3 (5), 4 (5), 5 (5), 6 (5), 7 (5), 8 (5), 9 (3), 12 (3), 13 (3), 14 (3), 15 (5), 16 (5)

Assessment
Assessment & Grading of In-Term Activities Number of
Activities
Degree of Contribution (%)
Mid-Term Exam 0 -
Computer Based Presentation 0 -
Short Exam 0 -
Presentation of Report 0 -
Homework Assessment 0 -
Oral Exam 0 -
Presentation of Thesis 0 -
Presentation of Document 0 -
Expert Assessment 0 -
Board Exam 0 -
Practice Exam 0 -
Year-End Final Exam 0 -
Internship Exam 0 -
TOTAL 0 %100
Contribution of In-Term Assessments to Overall Grade 0 %50
Contribution of Final Exam to Overall Grade 1 %50
TOTAL 1 %100


WORKLOAD & ECTS CREDITS OF THE COURSE UNIT
Workload for Learning & Teaching Activities
Type of the Learning Activites Learning Activities
(# of week)
Duration
(hours, h)
Workload (h)
Lecture & In-Class Activities 14 3 42
Preliminary & Further Study 14 2 28
Land Surveying 0 0 0
Group Work 0 0 0
Laboratory 12 2 24
Reading 0 0 0
Assignment (Homework) 10 2 20
Project Work 0 0 0
Seminar 0 0 0
Internship 0 0 0
Technical Visit 0 0 0
Web Based Learning 0 0 0
Implementation/Application/Practice 0 0 0
Practice at a workplace 0 0 0
Occupational Activity 0 0 0
Social Activity 0 0 0
Thesis Work 0 0 0
Field Study 0 0 0
Report Writing 0 0 0
Total Workload for Learning & Teaching Activities - - 114
Workload for Assessment Activities
Type of the Assessment Activites # of Assessment Activities
Duration
(hours, h)
Workload (h)
Final Exam 1 3 3
Preparation for the Final Exam 1 12 12
Mid-Term Exam 0 0 0
Preparation for the Mid-Term Exam 0 0 0
Short Exam 0 0 0
Preparation for the Short Exam 0 0 0
Total Workload for Assessment Activities - - 15
Total Workload of the Course Unit - - 129
Workload (h) / 25.5 5.1
ECTS Credits allocated for the Course Unit 5.0

EBS : Kıbrıs İlim Üniversitesi Eğitim Öğretim Bilgi Sistemi Kıbrıs İlim Üniversitesi AKTS Bilgi Paketi AKTS Bilgi Paketi ECTS Information Package Avrupa Kredi Transfer Sistemi (AKTS/ECTS), Avrupa Yükseköğretim Alanı (Bologna Süreci) hedeflerini destekleyen iş yükü ve öğrenme çıktılarına dayalı öğrenci/öğrenme merkezli öğretme ve öğrenme yaklaşımı çerçevesinde yükseköğretimde uluslarası saydamlığı arttırmak ve öğrenci hareketliliği ile öğrencilerin yurtdışında gördükleri öğrenimleri kendi ülkelerinde tanınmasını kolaylaştırmak amacıyla Avrupa Komisyonu tarafından 1989 yılında Erasmus Programı (günümüzde Yaşam Boyu Öğrenme Programı) kapsamında geliştirilmiş ve Avrupa ülkeleri tarafından yaygın olarak kabul görmüş bir kredi sistemidir. AKTS, aynı zamanda, yükseköğretim kurumlarına, öğretim programları ve ders içeriklerinin iş yüküne bağlı olarak kolay anlaşılabilir bir yapıda tasarlanması, uygulanması, gözden geçirilmesi, iyileştirilmesi ve bu sayede yükseköğretim programlarının kalitesinin geliştirilmesine ve kalite güvencesine önemli katkı sağlayan bir sistematik yaklaşım sunmaktadır. ETIS : İstanbul Aydın University Education & Training System Cyprus Science University ECTS Information Package ECTS Information Package European Credit Transfer and Accumulation System (ECTS) which was introduced by the European Council in 1989, within the framework of Erasmus, now part of the Life Long Learning Programme, is a student-centered credit system based on the student workload required to achieve the objectives of a programme specified in terms of learning outcomes and competences to be acquired. The implementation of ECTS has, since its introduction, has been found wide acceptance in the higher education systems across the European Countries and become a credit system and an indispensable tool supporting major aims of the Bologna Process and, thus, of European Higher Education Area as it makes teaching and learning in higher education more transparent across Europe and facilitates the recognition of all studies. The system allows for the transfer of learning experiences between different institutions, greater student mobility and more flexible routes to gain degrees. It also offers a systematic approach to curriculum design as well as quality assessment and improvement and, thus, quality assurance.