CSIE 241563 Spring 2018

Design Pattern

Announcements:

Code in class available from https://ssl-gitlab.csie.ntut.edu.tw/yccheng/DP_inclass

Instructor:

      Dr. Y C Cheng, Professor of CSIE

      Class meetings: Mon 5-6, Wed 2

      Office hours: Mon 2-4, Wed 3-4,8 

Teacher Assistant (TA):

      李柏霖 (Morris) posd2018ta@gmail.com

      鍾承翰 (Hank)

      Office hour: Fri 3-4 @ 宏裕科技大樓13樓1321實驗室

      作業上傳網址


Code in class: "git clone "

Textbook:

      Gamma, Erich, et al. Design patterns: elements of reusable object-oriented software . Pearson Education, 1994.

Reference:

      www.cplusplus.com

Course Description:


This course discusses issues in principles of object-oriented design through design patterns, as listed below. Important general ideas on design and design patterns; creational, structural and behavioral design patterns. A study of the selection of appropriate object-oriented structure after the system's requirements or requirements specification of the software syste has been developed. To improve design, design patterns are created in the logic view of a software system. Learners will follow the standard practice of using the UML approach and Java language to coding design patterns.
 

Topics include:

  1. Principles of object-oriented programming
  2. Design patterns through example
  3. Pattern languages
  4. Term project in pattern-oriented design
 

Prerequisites: 

Grading policy

Schedule   

Week Course Material Covered Reading/Homework/Test
1
(2/26, 2/28)

Introduction 
Note: 2/28 和平紀念日放假
當各位同學辦好gitlab帳號並建好repository的時候,請下載老師的檔案(連結)並push到自己的專案內。往後請不要更動原有的檔案架構(可以新增,但不能移動或者刪除原有的檔案)
GitLab架設教學
環境設定
Jenkins設定與測試報表教學
作業上傳教學
textbook: Section 1.1 and 1.2 
2
(3/5, 3/7)
First example: object oriented file system (I)
Review of OOP and unit testing
Class note on 03/05
3
(3/12, 3/14)
First example: object oriented file system - organization into tree
Composite 
Class note on 03/12 and 03/14
HW1
4
(3/19, 3/21)
First design pattern example: object oriented file system - treatiing folders and files uniformly Class note on 03/19 and 03/21
HW2
5
(3/26, 3/28)
Link with Proxy Class note on 03/26 and 03/28
HW3
6
(4/2, 4/4)

Accessing folder contents with Iterator
Note: 4/4 兒童節放假一天
Class note on 04/03
7
(4/9, 4/11)
Application of iterator: find by name Class note on 04/09
HW4
8
(4/16, 4/18)
Find by name as a Visitor Class note on 04/16 and 04/18
9
(4/23, 4/25)
find as a function vs find as a Visitor Class note on 04/23 and 04/25
10
(4/30, 5/2)
Midterm 4/30: closed book and notes
Open-Closed Principle, Single Responsibility Principle
Class note on 05/02
HW5

11
(5/7, 5/9)
Open-Closed Principle
Constructing a Node hierarchy with Builder
Class note on 05/07
12
(5/14, 5/16)
Open-Closed Principle Project proposal
13
(5/21, 5/23)
Link: memory management issues
Decorator vs. Proxy
Organizing the pattern catalog
Class note on 05/21 and 5/23
14
(5/28, 5/30)
Link: reassignment issues
15
(6/4, 6/6)
Iteration one presentation
16
(6/11, 6/13)
Term project demo & presentation Class note on 06/11 and 06/13

17
(6/18, 6/20, 6/24)

Term project demo & presentation
Note: 6/18(一)) 端午節放假一天
Note: 6/20(三)) 不用上課(時數補至 6/24(日))
Note: 6/24(日) Demo 時間:10 am - 12pm, 1 pm - 5pm 地點:科技大樓 1223教室
請同學將Demo的報告寄送至TA的信箱(posd2018ta@gmail.com)
18
(6/25, 6/27)
Term project demo  & presentation
Note: 6/25(三)) 不用上課(時數補至 6/24(日))
Note: 6/27(三)) 不用上課(時數補至 6/24(日))


 Resource:   (Return to top of page)