| Course Type | Compulsory Course |
| Course Level | Bachelor's Degree |
| Year of Study | 3 |
| Semester | Fifth Term (Fall) |
| ECTS | 5 |
| Name of Lecturer(s) |
|
| Learning Outcomes |
At the end of this course, the students;
- Gain knowledge and skills regarding the basic concepts of Object-Oriented Programming (OOP), such as entity, class, object, and method.
- Design class and object interactions based on OOP concepts in the BlueJ Integrated Development Environment and documentation; develops program snippets using the OOP approach.
- Understand data types, data structures, and statement structures (decision, control, and loop) in the Java Programming Language; develops various OOP code snippets using these statements and data structures.
- Understand the concepts of inheritance, polymorphism, and encapsulation in the Java Programming Language; designs and develops software projects using these concepts.
- Design and develop software projects using the MVC Pattern and graphical user interfaces in Java.
- Develop a project with a software team within the scope of a term project, using OOP design, development, and implementation principles, methods, and techniques.
|
| Mode of Delivery | Face to face |
| Prerequisites | No |
| Recommended Optional Programme Components | None |
| Course Description | This course covers an introduction to Object-Oriented Programming, object-oriented analysis and design, approaches to modular program design, fundamental object-oriented concepts; objects, classes, class hierarchy, inheritance, and abstract classes, functions, virtual functions, virtual base classes and conversions, single and multiple inheritance, and object hierarchies, as well as topics in object-based program development. |
| Course Contents |
| WEEK |
TOPICS |
|
1st Week |
Object-oriented programming concepts: object-class |
|
2nd Week |
Basic principles of object-oriented programming: abstraction / encapsulation / inheritance / polymorphism |
|
3rd Week |
UML (Unified Modeling Language) class and object schemes |
|
4th Week |
Relationships between classes: aggregation, composition, dependency, generalization relation |
|
5th Week |
Introduction to Java applications: first Java program, input/output and operations |
|
6th Week |
Class, object methods, and introduction to string: instance variables, set/get methods, account class example |
|
7th Week |
Midterm exam |
|
8th Week |
Control structures: assignment ++ / -- operators, if / if..else / nested if |
|
9th Week |
Control structures: logical operators, for / while / do-while loop structures |
|
10th Week |
Arrays |
|
11th Week |
Object-oriented programming: inheritance |
|
12th Week |
Object-oriented programming: inheritance |
|
13th Week |
Object-oriented programming: polymorphism and interface |
|
14th Week |
Object-oriented programming: polymorphism and interface |
|
| Recommended or Required Reading | Deitel, P. J., & Deitel, H. M. (2014). Java How to Program (10th ed.). Pearson. ISBN 978-0133807806 |
| Planned Learning Activities and Teaching Methods |
- Lecture
- Questions/Answers
- Experiment
- Practice
- Problem Solving
|
| Assessment Methods and Criteria |
|
Quantity |
Percentage (%) |
| Mid-term |
1 |
30 |
| Quiz |
2 |
20 |
| Project |
1 |
20 |
| Total(%) |
|
70 |
| Contribution of In-term Studies to Overall Grade(%) |
|
70 |
| Contribution of Final Examination to Overall Grade(%) |
|
30 |
| Total(%) |
|
100 |
|
| ECTS Allocated Based on Student Workload |
| Activities |
Quantity |
Duration (Hour) |
Total Workload (Hour) |
| Midterm exam |
1 |
1.5 |
1.5 |
| Preparation for Quiz |
2 |
10 |
20 |
| Individual or group work |
14 |
1 |
14 |
| Preparation for Final exam |
1 |
22 |
22 |
| Course hours |
13 |
2 |
26 |
| Preparation for Midterm exam |
1 |
14 |
14 |
| Laboratory (including preparation) |
13 |
2 |
26 |
| Final exam |
1 |
1.5 |
1.5 |
| Homework |
0 |
0 |
0 |
| Project |
1 |
10 |
10 |
| Total Work Load | 135 |
| Total Work Load / 30 (h) | 4.5 |
| ECTS Credit of the Course | 5 |
|
| Language of Instruction | Turkish |
| Work Placement(s) | No |