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 |
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 | ||


