COMPUTER ENGINEERING (ENGLISH, PHD)
PhD TR-NQF-HE: Level 8 QF-EHEA: Third Cycle EQF-LLL: Level 8

Course Introduction and Application Information

Course Code Course Name Semester Theoretical Practical Credit ECTS
CMP5151 Software Design Patterns Fall 3 0 3 12
This catalog is for information purposes. Course status is determined by the relevant department at the beginning of semester.

Basic information

Language of instruction: English
Type of course: Departmental Elective
Course Level:
Mode of Delivery: Face to face
Course Coordinator : Assist. Prof. BETÜL ERDOĞDU ŞAKAR
Recommended Optional Program Components: None
Course Objectives: This course introduces the use of design patterns in the context of software engineering. After successful completion of the class, the student will know classical design patterns, including creational, structural, behavioral patterns and also some popular patterns from distributed programming, user interface and enterprise development. Anti-patterns will also be introduced.

Learning Outcomes

The students who have succeeded in this course;
I. Apply classical creational, behavioral and structural patterns in real world problems
II. Apply enterprise development patterns in real world problems
III. Apply user interface and multithreaded patterns in real world problems
IV. Avoid anti-patterns
V. Analyze problems in terms of patterns
VI. Categorize patterns accordingly

Course Content

Creational, structural and behavioral patterns, concurrency and user interface patterns, enterprise architecture patterns, anti-patterns, agile principles and processes.

Weekly Detailed Course Contents

Week Subject Related Preparation
1) Introduction-object oriented programming and UML
2) Creational patterns 1
3) Creational patterns 2
4) Structural patterns 1
5) Structural patterns 2
6) Behavioral patterns 1
7) Behavioral patterns 2
8) midterm
9) Concurrency and User Interface Patterns
10) Enterprise Architecture Design Patterns 1
11) Enterprise Architecture Design Patterns 2
12) Software anti-patterns
13) Term project presentations
14) Term project presentations

Sources

Course Notes / Textbooks: 1- Gamma, E. Design Patterns : Elements of Reusable Object-Oriented Software. Pearson Education India, 1995
2- Head First Design Patterns: A Brain-Friendly Guide, Eric Freeman, Elisabeth
Robson, Bert Bates, and Kathy Sierra. 2004
References:

Evaluation System

Semester Requirements Number of Activities Level of Contribution
Project 1 % 35
Midterms 1 % 25
Final 1 % 40
Total % 100
PERCENTAGE OF SEMESTER WORK % 25
PERCENTAGE OF FINAL WORK % 75
Total % 100

ECTS / Workload Table

Activities Number of Activities Duration (Hours) Workload
Course Hours 14 3 42
Project 1 80 80
Midterms 1 40 40
Final 1 40 40
Total Workload 202

Contribution of Learning Outcomes to Programme Outcomes

No Effect 1 Lowest 2 Low 3 Average 4 High 5 Highest
           
Program Outcomes Level of Contribution
1) To be able to follow scientific literature, analyze it critically and use it effectively in solving engineering problems.
2) To be able to ask the right questions, plan, implement, manage and document innovative work for scientific innovative designs in the field of Computer Engineering.
3) To be able to independently carry out studies in the field of Computer Engineering, examine them in depth, take responsibility and evaluate the results obtained from a critical point of view.
4) To be able to present the results of his/her research and projects effectively in written, oral and visual form in accordance with academic standards.
5) To be able to conduct independent research on topics related to Computer Engineering that require deep specialization, to develop original ideas and to transfer this knowledge to practice.
6) Uses advanced theoretical and practical knowledge specific to Computer Engineering effectively.
7) Acts in accordance with professional, scientific and ethical values; takes responsibility by considering the social, environmental and ethical impacts of engineering practices.