SWE312 Design PatternsIstanbul Okan UniversityDegree Programs Software Engineering (English) General Information For StudentsDiploma SupplementErasmus Policy StatementNational Qualifications
Software Engineering (English)
Bachelor TR-NQF-HE: Level 6 QF-EHEA: First Cycle EQF-LLL: Level 6

General course introduction information

Course Code: SWE312
Course Name: Design Patterns
Course Semester: Spring
Course Credits:
Theoretical Practical Credit ECTS
2 2 3 4
Language of instruction: EN
Course Requisites: SWE210 - Software Requirements and Analysis
SWE210 - Software Requirements and Analysis
Does the Course Require Work Experience?: No
Type of course: Compulsory
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. BEKİR TEVFİK AKGÜN
Course Lecturer(s): Prof. Dr. PINAR YILDIRIM
Course Assistants:

Course Objective and Content

Course Objectives: This course teaches students how to design quality software systems by applying both the software and architectural design patterns. In this course, application of design patterns is based on object-oriented methodology by using JAVA.
Course Content: Software quality attributes can be classified as internal and external. Code reusability, maintainability, and portability are the examples of internal software quality attributes. System performance, scalability, and availability are the examples of external software quality attributes. Design patterns in general describe the best practices for a specific type of design problem based on the fundamental design principles. Low-level software design patterns deal with the internal software quality attributes. High-level architectural design patterns deal with the external software quality attributes.

Learning Outcomes

The students who have succeeded in this course;
Learning Outcomes
1 - Knowledge
Theoretical - Conceptual
1) Identify fundamental design patterns.
2) Compare the advantages & disadvantages of applying a pattern to a specific design problem.
2 - Skills
Cognitive - Practical
1) Design a software system by applying various design patterns.
2) Implement a software system in an object oriented programming language.
3 - Competences
Communication and Social Competence
Learning Competence
Field Specific Competence
Competence to Work Independently and Take Responsibility

Lesson Plan

Week Subject Related Preparation
1) Course Introduction. None
2) Solid Design Principles. None
3) Introduction To Design Patterns. None
4) Observer design pattern None
5) Decorator design pattern None
6) Factory design pattern None
7) Singleton design pattern None
8) Midterm None
9) Command design pattern None
10) Adapter & Facade design pattern None
11) Template Method design pattern None
12) Iterator design pattern None
13) Composite design pattern None
14) State design pattern None
15) Final Exam None

Sources

Course Notes / Textbooks: Head First Design Patterns , Eric Freeman, 2004, O'Reilly Media
References: Yok-None

Course-Program Learning Outcome Relationship

Learning Outcomes

1

2

3

4

Program Outcomes
1) Information on project management and practices in business life such as risk management and change management; awareness about entrepreneurship, innovation and sustainable development.
2) Sufficient knowledge in mathematics, science and engineering related to their branches; the ability to apply theoretical and practical knowledge in these areas to model and solve engineering problems.
3) The ability to identify, formulate, and solve complex engineering problems; selecting and applying appropriate analysis and modeling methods for this purpose.
4) 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. (Realistic constraints and conditions include such issues as economy, environmental issues, sustainability, manufacturability, ethics, health, safety, social and political issues, according to the nature of design.)
5) Ability to develop, select and use modern techniques and tools necessary for engineering applications; ability to use information technologies effectively.
6) Ability to design experiments, conduct experiments, collect data, analyze and interpret results for examination of engineering problems.
7) Effective communication skills in Turkish oral and written communication; at least one foreign language knowledge.
8) Yaşam boyu öğrenmenin gerekliliği bilinci; bilgiye erişebilme, bilim ve teknolojideki gelişmeleri izleme ve kendini sürekli yenileme becerisi.
9) Professional and ethical responsibility.
10) Information on the effects of engineering applications on health, environment and safety in the universal and social dimensions and the problems of the times; awareness of the legal consequences of engineering solutions.
11) The ability to work effectively in disciplinary and multidisciplinary teams; individual work skill.

Course - Learning Outcome Relationship

No Effect 1 Lowest 2 Low 3 Average 4 High 5 Highest
           
Program Outcomes Level of Contribution
1) Information on project management and practices in business life such as risk management and change management; awareness about entrepreneurship, innovation and sustainable development.
2) Sufficient knowledge in mathematics, science and engineering related to their branches; the ability to apply theoretical and practical knowledge in these areas to model and solve engineering problems. 1
3) The ability to identify, formulate, and solve complex engineering problems; selecting and applying appropriate analysis and modeling methods for this purpose. 4
4) 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. (Realistic constraints and conditions include such issues as economy, environmental issues, sustainability, manufacturability, ethics, health, safety, social and political issues, according to the nature of design.) 2
5) Ability to develop, select and use modern techniques and tools necessary for engineering applications; ability to use information technologies effectively.
6) Ability to design experiments, conduct experiments, collect data, analyze and interpret results for examination of engineering problems. 5
7) Effective communication skills in Turkish oral and written communication; at least one foreign language knowledge.
8) Yaşam boyu öğrenmenin gerekliliği bilinci; bilgiye erişebilme, bilim ve teknolojideki gelişmeleri izleme ve kendini sürekli yenileme becerisi.
9) Professional and ethical responsibility.
10) Information on the effects of engineering applications on health, environment and safety in the universal and social dimensions and the problems of the times; awareness of the legal consequences of engineering solutions. 3
11) The ability to work effectively in disciplinary and multidisciplinary teams; individual work skill.

Learning Activity and Teaching Methods

Expression
Individual study and homework
Lesson
Reading

Assessment & Grading Methods and Criteria

Written Exam (Open-ended questions, multiple choice, true-false, matching, fill in the blanks, sequencing)
Individual Project

Assessment & Grading

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

Workload and ECTS Credit Grading

Activities Number of Activities Duration (Hours) Workload
Course Hours 14 2 28
Laboratory 14 2 28
Project 1 20 20
Midterms 1 20 20
Final 1 30 30
Total Workload 126