CMP5151 Software Design PatternsBahçeşehir UniversityDegree Programs BIG DATA ANALYTICS AND MANAGEMENT (ENGLISH, NONTHESIS)General Information For StudentsDiploma SupplementErasmus Policy StatementBologna CommissionNational Qualifications
BIG DATA ANALYTICS AND MANAGEMENT (ENGLISH, NONTHESIS)
Master TR-NQF-HE: Level 7 QF-EHEA: Second Cycle EQF-LLL: Level 7

Course Introduction and Application Information

Course Code Course Name Semester Theoretical Practical Credit ECTS
CMP5151 Software Design Patterns Fall
Spring
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 and critically analyze scientific literature and use it effectively in solving engineering problems.
2) To be able to design, plan, implement and manage original projects related to Big Data Analytics and Management.
3) To be able to carry out studies on Big Data Analytics and Management independently, take scientific responsibility and critically evaluate the results obtained.
4) Effectively present the results of his/her research and projects in written, oral and visual form in accordance with academic standards.
5) To be able to conduct independent research in the field of Big Data Analytics and Management, develop original ideas and transfer this knowledge to practice.
6) Uses advanced theoretical and practical knowledge specific to the field of Big Data Analytics and Management effectively.
7) Acts in accordance with professional, scientific and ethical values; takes responsibility by considering the social, environmental and ethical impacts of engineering applications.