Information Systems Engineering
Bachelor TR-NQF-HE: Level 6 QF-EHEA: First Cycle EQF-LLL: Level 6

Ders Genel Tanıtım Bilgileri

Course Code: FET301
Ders İsmi: Advanced Object Oriented Programming
Ders Yarıyılı: Fall
Ders Kredileri:
Theoretical Practical Laboratory ECTS
2 1 0 5
Language of instruction: Turkish
Ders Koşulu:
Ders İş Deneyimini Gerektiriyor mu?: No
Type of course: Bölüm Seçmeli
Course Level:
Bachelor TR-NQF-HE:6. Master`s Degree QF-EHEA:First Cycle EQF-LLL:6. Master`s Degree
Mode of Delivery: Face to face
Course Coordinator : Asst. Prof. Dr. SUAT UĞURLU
Course Lecturer(s):
Course Assistants:

Dersin Amaç ve İçeriği

Course Objectives: The purpose of the "Advanced Object-Oriented Programming" course is to go beyond the basic concepts of object-oriented programming (OOP) and teach advanced principles, design patterns, and software architecture used in more complex software designs. It aims to enhance students' ability to develop large-scale, modular software and to enable them to write flexible, reusable, and maintainable code
Course Content: Advanced Concepts of Object-Oriented Programming: Classes, Objects, and Relationships; Interfaces and Abstract Classes; Polymorphism; Access Modifiers and Package Organization; SOLID Principles; Advanced Programming Techniques; Design Patterns; Performance Optimization and Memory Management; Performance Analysis Tools and Improvement Methods

Learning Outcomes

The students who have succeeded in this course;
Learning Outcomes
1 - Knowledge
Theoretical - Conceptual
1) Explaining advanced object-oriented programming principles and concepts
2 - Skills
Cognitive - Practical
1) Applying SOLID principles and other software design principles in software development.
2) Ability to design a complex system using advanced object-oriented programming techniques
3) Creating flexible, maintainable, and reusable software components using design patterns.
3 - Competences
Communication and Social Competence
Learning Competence
Field Specific Competence
Competence to Work Independently and Take Responsibility

Ders Akış Planı

Week Subject Related Preparation
1) Introduction and Fundamentals of Object Oriented Programming
2) Advanced Inheritance and Composition
3) Interfaces and Abstract Classes
4) Advanced Programming Techniques - Generics, Lambda expressions, Reflection
5) Object Oriented Design Principles – SOLID Principles (Part 1)
6) Object Oriented Design Principles – SOLID Principles (Part 2)
7) Design Patterns – Creational Patterns
8) Midterm Exam
9) Design Patterns – Structural Patterns
10) Design Patterns – Behavioral Patterns (Part 1)
11) Design Patterns – Behavioral Patterns (Part 2)
12) Dependency Management and Dependency Injection (DI)
13) Performance Optimization and Memory Management
14) Object-Oriented Design in Large-Scale Software Systems
15) Final Exam

Sources

Course Notes / Textbooks: "Head First Design Patterns" – Eric Freeman, Elisabeth Robson
"Design Patterns: Elements of Reusable Object-Oriented Software" – Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides (Gang of Four)
References: "Object-Oriented Design Heuristics" – Arthur J. Riel
"Object-Oriented Analysis and Design with Applications" – Grady Booch
"Effective Java" – Joshua Bloch

Ders - Program Öğrenme Kazanım İlişkisi

Ders Öğrenme Kazanımları

1

2

3

4

Program Outcomes
1) Adequate knowledge in the fields of mathematics and science; ability to use theoretical and practical knowledge in these fields
2) Adequate knowledge in subjects specific to the relevant engineering discipline; ability to use theoretical and applied knowledge in these areas to solve complex engineering problems.
3) Ability to identify, formulate and solve complex engineering problems.
4) Ability to select and apply appropriate analysis and modeling methods to complex engineering problems.
5) The ability to design a complex system, process, device or product under realistic constraints and conditions to meet specific requirements.
6) Ability to apply modern design methods to design a complex system, process, device or product.
7) Ability to select and use modern techniques and tools necessary for the analysis and solution of complex problems encountered in engineering practice.
8) Ability to use information technologies effectively to analyze and solve complex problems encountered in engineering applications.
9) Ability to design and conduct experiments to investigate complex engineering problems or discipline-specific research topics.
10) Ability to collect data, analyze and interpret results for the investigation of complex engineering problems or discipline-specific research topics.
11) Ability to work effectively in disciplinary teams.
12) Ability to work effectively in multidisciplinary teams.
13) Ability to work individually.
14) Ability to communicate effectively both orally and in writing.
15) Knowledge of at least one foreign language.
16) Effective report writing and comprehension of written reports, ability to prepare design and production reports.
17) Ability to make effective presentations, give and receive clear and understandable instructions.
18) Awareness of the necessity of lifelong learning.
19) Ability to access information, to follow developments in science and technology and to continuously renew oneself.
20) Knowledge about acting in accordance with ethical principles, professional and ethical responsibility and standards used in engineering practices.
21) Knowledge of business practices such as project management, risk management and change management.
22) Awareness about entrepreneurship and innovation.
23) Knowledge about sustainable development.
24) Knowledge about the effects of engineering applications on health, environment and safety in universal and social dimensions and the problems of the era reflected in the field of engineering.
25) Awareness of the legal implications of engineering solutions.

Ders - Öğrenme Kazanımı İlişkisi

No Effect 1 Lowest 2 Low 3 Average 4 High 5 Highest
           
Program Outcomes Level of Contribution
1) Adequate knowledge in the fields of mathematics and science; ability to use theoretical and practical knowledge in these fields
2) Adequate knowledge in subjects specific to the relevant engineering discipline; ability to use theoretical and applied knowledge in these areas to solve complex engineering problems.
3) Ability to identify, formulate and solve complex engineering problems.
4) Ability to select and apply appropriate analysis and modeling methods to complex engineering problems.
5) The ability to design a complex system, process, device or product under realistic constraints and conditions to meet specific requirements. 5
6) Ability to apply modern design methods to design a complex system, process, device or product. 5
7) Ability to select and use modern techniques and tools necessary for the analysis and solution of complex problems encountered in engineering practice. 5
8) Ability to use information technologies effectively to analyze and solve complex problems encountered in engineering applications. 5
9) Ability to design and conduct experiments to investigate complex engineering problems or discipline-specific research topics. 5
10) Ability to collect data, analyze and interpret results for the investigation of complex engineering problems or discipline-specific research topics. 4
11) Ability to work effectively in disciplinary teams. 3
12) Ability to work effectively in multidisciplinary teams.
13) Ability to work individually.
14) Ability to communicate effectively both orally and in writing.
15) Knowledge of at least one foreign language.
16) Effective report writing and comprehension of written reports, ability to prepare design and production reports.
17) Ability to make effective presentations, give and receive clear and understandable instructions.
18) Awareness of the necessity of lifelong learning.
19) Ability to access information, to follow developments in science and technology and to continuously renew oneself.
20) Knowledge about acting in accordance with ethical principles, professional and ethical responsibility and standards used in engineering practices.
21) Knowledge of business practices such as project management, risk management and change management.
22) Awareness about entrepreneurship and innovation.
23) Knowledge about sustainable development.
24) Knowledge about the effects of engineering applications on health, environment and safety in universal and social dimensions and the problems of the era reflected in the field of engineering.
25) Awareness of the legal implications of engineering solutions.

Assessment & Grading

Semester Requirements Number of Activities Level of Contribution
Project 1 % 25
Midterms 1 % 25
Final 1 % 50
total % 100
PERCENTAGE OF SEMESTER WORK % 50
PERCENTAGE OF FINAL WORK % 50
total % 100