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

Course General Introduction Information

Course Code: BYM201
Course Name: Object Oriented Programming
Course Semester: Fall
Course Credits:
ECTS
7
Language of instruction: TR
Course Requirement:
Does the Course Require Work Experience?: No
Type of course: Necessary
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 : Prof. Dr. RÜYA ŞAMLI
Course Lecturer(s): Prof. Dr. RÜYA ŞAMLI
Dr.Öğr.Üyesi ABBAS MEMİŞ
Course Assistants:

Course Purpose and Content

Course Objectives: Become able to design and implement object-oriented code by using Java and UML
Course Content: Objects, Classes and Members, Final and Static Members, Constructors and Finalizers, UML Class Diagrams, Command-line I/O;
Control Flow, Relationships Between Classes and Objects (Association, Dependency, Aggregation, Composition, Inheritance),
Overriding and Overloading, Primitives and Wrappers; Enum; Exception Handling; File Operations (Serialization and Deserialization
using Streams), Generics; List and Map Data Structures, Introduction to Multithreading,

Learning Outcomes

The students who have succeeded in this course;
1) Students will be able to do object oriented modeling for the business logic layer of an information system.
2) Students will be able to document their designs using UML Class and Sequence diagrams
3) Students will be able to make two-way transformation between Java code and learned UML diagrams
4) Students will be able to write Java code that works from the command prompt
5) Students will be able to carry out fundamental tasks with modern IDE's

Course Flow Plan

Week Subject Related Preparation
1) Introduction to the course and the Java language
2) Classes, objects, members. Special cases: final, static. UML Class diagrams
3) Constructors and finalizers. Control flow. Creating objects.
4) UML Sequence diagrams. Constructor and method overloading. Primitives. String and Math classes. Command line I/O.
5) Association and dependency. One-way and two-way association.
6) Aggregation and Composition.
7) Kalıtım. Metotların yeniden tanımlanması ve Çoklu metot tanımlamadan farkı.
8) Midterm
9) Working with Files and Streams (Serialization and deserialization).
10) Introduction to generic classes using basic data structures (Lists and Maps).
11) Typecasting, Enum classes, Inner classes.
12) Introduction to Multithreading.
13) Project Presentations
14) Final

Sources

Course Notes / Textbooks:
References: Java How to Program, Harvey M. Deitel & Paul J. Deitel, Prentice-Hall. 7. Sürüm veya daha günceli, Objects First Edition önerilir.
Core Java 2 Volume I and II, C. S. Horstmann and G. Cornell, Prentice-Hall. 7. Sürüm veya daha günceli önerilir.
UML Distilled, Martin Fowler, Addison-Wesley, 2003 (3rd ed.)

Course - Learning Outcome Relationship

No Effect 1 Lowest 2 Medium 3 Highest
       
Program Outcomes Level of Contribution
1) Sufficient knowledge in mathematics, science and software engineering discipline-specific topics; the theoretical and practical knowledge in these areas, the ability to use in complex engineering problems.
2) The ability to identify, formulate, and solve complex engineering problems; selecting and applying appropriate analysis and modelling methods for this purpose.
3) The ability to design a complex system, process, device or product under realistic constraints and conditions to meet specific requirements; the ability to apply modern design methods for this purpose.
4) Ability to develop, select and use modern techniques and tools necessary for analysis and solution of complex problems in engineering applications; ability to use information technologies effectively.
5) Ability to design experiments, conduct experiments, collect data, analyse and interpret the results of complex engineering problems or discipline-specific research topics.
6) Disiplin içi ve çok disiplinli takımlarda etkin biçimde çalışabilme becerisi; bireysel çalışma becerisi.
7) Awareness of the need for lifelong learning; access to knowledge, ability to follow developments in science and technology, and constant self-renewal.
8) Effective communication skills in Turkish oral and written communication; at least one foreign language knowledge; ability to write effective reports and understand written reports, to prepare design and production reports, to make effective presentations, to give clear and understandable instructions and to receive.
9) Conformity to ethical principles, professional and ethical responsibility; Information on standards used in engineering applications.
10) Information on practices in business, such as project management, risk management and change management; awareness about entrepreneurship, innovation; information on sustainable development.
11) Information on the effects of engineering applications on health, environment, and safety in universal and social dimensions, and on the problems of the modern age in engineering; awareness of the legal consequences of engineering solutions.
12) Adequate skills in the analysis, design, verification, evaluation, implementation, implementation, and maintenance of software systems

Learning Activity and Teaching Methods

Measurement and Evaluation Methods and Criteria

Assessment & Grading

Semester Requirements Number of Activities Level of Contribution
Homework Assignments 5 % 20
Midterms 1 % 30
Final 1 % 50
total % 100
PERCENTAGE OF SEMESTER WORK % 50
PERCENTAGE OF FINAL WORK % 50
total % 100

İş Yükü ve AKTS Kredisi Hesaplaması

Activities Number of Activities Aktiviteye Hazırlık Aktivitede Harçanan Süre Aktivite Gereksinimi İçin Süre Workload
Course Hours 14 2 28
Application 14 2 28
Study Hours Out of Class 14 3 42
Project 1 25 25
Homework Assignments 5 10 50
Midterms 1 15 15
Final 1 15 15
Total Workload 203