Computer Engineering Department

Object Oriented Programming(INF243-A)

Course Code Course Name Semester Theory Practice Lab Credit ECTS
INF243-A Object Oriented Programming 4 2 0 2 3 5
Prerequisites INF114
Admission Requirements INF114
Language of Instruction French
Course Type Compulsory
Course Level Bachelor Degree
Course Instructor(s) Ayşegül TÜYSÜZ ERMAN aerman@gsu.edu.tr (Email)
Assistant Şükrü Demir İnan ÖZER (Email)
Objective The primary objective of this course is to provide students with a deep understanding of the Object-Oriented Programming (OOP) paradigm and principles, which are at the heart of modern software development processes. Throughout the course, students aim to:

- Analyze problems from an object-oriented perspective.
- Decompose complex software systems into manageable components using abstraction and modularity principles.
- Develop reusable, flexible, and sustainable code using Class and Object structures.
- Gain proficiency in modeling system architecture via UML diagrams during the design phase, alongside mastering fundamental pillars such as encapsulation, inheritance, and polymorphism.
Content - Foundations of the Object-Oriented Paradigm: Object-oriented approach in software development, concepts of classes and objects.
- Abstraction and Encapsulation: Data hiding principles, access modifiers, and modular structure design.
- Class Relationships and Modeling: Analysis of inter-object relationships (is-a, has-a) and system modeling with UML class diagrams.
- Inheritance and Code Reusability: Establishing hierarchical structures, method overriding, and extensible software architecture.
- Polymorphism and Flexible Design: Dynamic binding, interfaces, abstract classes, and developing loosely coupled systems.
- Error Handling and Data Structures: Management of exceptions and dynamic data management.
- I/O Operations and Persistence: Interaction with file systems and object serialization techniques.
Course Learning Outcomes Upon successful completion of this course, students will be able to:

1. Explain the object-oriented approach in programming.
2. Use an object-oriented programming language and associated class libraries to write and test programs.
3. Develop UML-based designs using the concepts of encapsulation, inheritance, and polymorphism to solve real-world problems.
4. Implement UML-based designs (based on class diagrams) for problems displaying architectural complexity and significant inter-class communication.
5 Use IDEs (Integrated Development Environments) to design, implement, debug, and execute object-oriented applications.
Teaching and Learning Methods Lectures, in-class practice, discussions, Q&A sessions, problem-solving, and a term project.
References - Y. Daniel Liang, “Introduction to Java Programming”, Pearson, International Edition, Comprehensive 9th/10th /11th Edition
- Y. Daniel Liang, "Introduction to Java Programming and Data Structures", Pearson, 13E
- Sarnath Ramnath, Brahma Dathan, “Object-Oriented Analysis and Design“, Springer
Print the course contents
Theory Topics
Week Weekly Contents
1 Introduction & OOP Paradigm: Procedural vs. Object-Oriented Programming, Core Concepts
2 Java Fundamentals & Memory: JVM, JRE, Variables, Data Types (Primitive vs. Reference), Stack and Heap Logic
3 Class & Object Structure: Constructors, Method Overloading
4 Data Encapsulation: Access Modifiers (public, private, protected), Getter/Setter Methods, this keyword, Scope
5 Class Relationships & UML: Association, Aggregation, Composition, and Class Diagrams
6 Advanced RelationshipsA: ssociation, Aggregation, Composition, and Multiplicity
7 Inheritance: Use of extends, super keyword, Method Overriding
8 Midterm Week: No classes - Midterm Exam
9 Abstract Classes & Interfaces: Abstract Classes vs. Interfaces, The Diamond Problem (Multiple Inheritance)
10 Polymorphism: Dynamic Binding, Upcasting and Downcasting / Announcement of Term Project
11 Exception Handling: Try-Catch blocks, Custom Exceptions, Exception Hierarchy
12 File Operations & I/O: StreamsReading/Writing Files, Serialization
13 Generic Programming: Implementation with Data Structure examples
14 Review & Case Studies: Comprehensive review of OOP designs with modern, real-world examples.
Practice Topics
Week Weekly Contents
1 Fundamentals of Java: Basics of Java programming, coding examples, and IDE setup
2 Objects & Introduction to UML: Defining, constructing, and accessing objects; Introduction to Visual Paradigm
3 Objects & Memory Management: Reference types vs. Primitive types; Object lifecycle
4 Object Lists & Static Members: Passing objects to methods, ArrayList of objects, Static variables, and methods
5 Encapsulation & Scope: Visibility, Encapsulation, Immutable Objects, Scope, and the this keyword
6 Class Relationships I: Composition, aggregation, association, and multiplicity
7 Class Relationships II: Advanced modeling and implementation of class relationships in UML
8 Inheritance: Superclasses, subclasses, and the mechanism of extending classes
9 Inheritance & Abstract Classes: Hierarchy design and the role of Abstract Classes in inheritance
10 Abstract Classes & Interfaces: Comparing and implementing Abstract Classes vs. Interfaces
11 Polymorphism: Dynamic binding and polymorphic behavior of objects
12 Exception Handling: Managing runtime errors using Try-Catch blocks and custom exceptions
13 File Processing & Serialization: File I/O operations and Object Serialization for data persistence
14 Generic Programming: Implementing a data structure (e.g., Stack/List) using Generics.
Contribution to Overall Grade
  Number Contribution
Contribution of in-term studies to overall grade 0 60
Contribution of final exam to overall grade 0 40
Toplam 0 100
In-Term Studies
  Number Contribution
Assignments 0 0
Presentation 0 0
Midterm Examinations (including preparation) 1 25
Project 1 20
Laboratory 0 0
Other Applications 0 0
Quiz 5 15
Term Paper/ Project 0 0
Portfolio Study 0 0
Reports 0 0
Learning Diary 0 0
Thesis/ Project 0 0
Seminar 0 0
Other 0 0
Make-up 0 0
Toplam 7 60
No Program Learning Outcomes Contribution
1 2 3 4 5
1 Matematik, fizik ve mühendislik bilimlerine özgü konularda yeterli bilgi birikimi; bu alanlardaki kuramsal ve uygulamalı bilgileri, mühendislik problemlerinin modellenmesi ve çözümünde kullanabilme becerisi. X
2 Karmaşık bilgisayar mühendisliği problemlerini saptama, tanımlama, formüle etme ve çözme becerisi; bu amaçla uygun analiz ve modelleme yöntemlerini seçme ve uygulama becerisi. X
3 Yazılımsal veya donanımsal karmaşık bir sistemi, süreci veya donanımı gerçekçi kısıtlar ve koşullar altında, belirli gereksinimleri karşılayacak şekilde tasarlama becerisi; bu amaçla modern tasarım yöntemlerini uygulama becerisi. X
4 Mühendislik uygulamalarında karşılaşılan karmaşık problemlerin analizi ve çözümü için gerekli olan modern teknik ve araçları geliştirme, seçme ve kullanma becerisi; bilişim teknolojilerini etkin bir şekilde kullanma becerisi. X
5 Analitik düşünce ile bir sistemi, sistem bileşenini ya da süreci analiz etme, modelleme, deney tasarlama ve yapma, veri toplama, çözüm algoritmaları üretebilme, uygulamaya alma ve geliştirme becerileri. X
6 Disiplin içi ve çok disiplinli takımlarda etkin biçimde çalışabilme becerisi; bireysel çalışma becerisi. X
7 Türkçe sözlü ve yazılı etkin iletişim kurma becerisi; en az iki yabancı dil bilgisi; etkin rapor yazma ve yazılı raporları anlama, yazılım ve donanım tasarımını, gerekirse teknik resim metotları kullanarak raporlayabilme, etkin sunum yapabilme becerisi. X
8 Bilgiye erişebilme ve bu amaçla kaynak araştırması yapabilme, veri tabanları ve diğer bilgi kaynaklarını kullanabilme becerisi X
9 Yaşam boyu öğrenmenin gerekliliği bilinci; kendini sürekli yenileme becerisi. X
10 Mesleki etik ilkelerine uygun davranma, mesleki sorumluluk bilinci; mühendislik uygulamalarında kullanılan standartlar hakkında bilgi. X
11 Proje yönetimi, risk yönetimi ve değişiklik yönetimi gibi, iş hayatındaki uygulamalar hakkında bilgi; girişimcilik, yenilikçilik hakkında farkındalık; sürdürülebilir kalkınma hakkında bilgi. X
12 Mühendislik uygulamalarının evrensel ve toplumsal boyutlarda sağlık, çevre ve güvenlik üzerindeki etkileri ve çağın mühendislik alanına yansıyan sorunları hakkında bilgi. X
13 Bilgisayar mühendisliği uygulamalarının hukuki ve etik boyutları konusunda farkındalık. X
Activities Number Period Total Workload
Class Hours 14 2 28
Working Hours out of Class 0 0 0
Assignments 0 0 0
Presentation 0 0 0
Midterm Examinations (including preparation) 1 25 25
Project 1 20 20
Laboratory 14 2 28
Other Applications 0 0 0
Final Examinations (including preparation) 1 25 25
Quiz 0 0 0
Term Paper/ Project 0 0 0
Portfolio Study 0 0 0
Reports 0 0 0
Learning Diary 0 0 0
Thesis/ Project 0 0 0
Seminar 0 0 0
Other 0 0 0
Make-up 0 0 0
Yıl Sonu 0 0 0
Hazırlık Yıl Sonu 0 0 0
Hazırlık Bütünleme 0 0 0
Total Workload 126
Total Workload / 25 5.04
Credits ECTS 5
Scroll to Top