Special Topics in CIS - 10681492
Course Title
Special Topics in CIS
Course Number
10681492
Instructor Name
EMAD SAADEH
Contact Information
[email protected]
Semester(s) and academic year(s)
Compulsory / Elective
Compulsory
Course Description

This course is designed for students with Java background. The course objective is to familiarize the student with techniques for designing reusable combinations of Java classes and organizing their cooperation to produce modular and maintainable Java programs.

Upon completion of the course, the student will be able to understand most important design patterns and apply object-oriented techniques for designing reusable, maintainable and modifiable software.

Course Objectives

This course is an introduction to software design patterns. Each pattern represents a best practice solution to a software problem in a specific context. The course covers the rationale and benefits of object-oriented software design patterns. Numerous problems will be studied to investigate the implementation of good design patterns.

Intended learning Outcomes and Competences

Upon completion of this course, student should be able to demonstrate a thorough knowledge of the following design patterns. Specifically for each pattern students will be able to :

1. Indicate which underlying object oriented design principle (s) it is based on.

2. Explain the reasoning for each object oriented design principle.

3. Explain what specific object oriented design problem the pattern solves.

4. Provide a specific context for each pattern in which it can be applied.

5. Draw a high level class diagram in UML for each pattern.

6. Explain how the different components of the pattern collaborate with each other.

7. List the consequences of applying each pattern to the overall software quality of a system.

8. List which patterns are related to this pattern and what type pattern each pattern is.

9. Implement this pattern in Java to a real world problem.

Textbook and References

1. https://www.tutorialspoint.com/design_pattern/index.htm

2. Design Patterns Elements of Reusable Object-Oriented Software --- Produced by KevinZhang

 

Assessment Criteria
Activity Percent (%)