Class Schedule - (Martinez) 2255 SPRING TUES and THUR

* Always check myCourses for latest updates and notify Instructor of any Conflicts
Week Topics Slides/Resources Activities/Deliverables
WEEK 1 - Session 1
TUE, 13 Jan
Introduction and Course Overview. What is design? Why should we care?

Functional & Non-Functional Requirements Design for reusability & modifiability.
Design & Cost of Change Introduction to the WeatherStation (WS)

Activity #1 - Add WS Functionality
[Due: THR (1/15) Start of Class]
Session 2
THR, 15 Jan
Discussion of Activity #1 AWTUI (DRY Principle) Adding new Weather Station user interface(s) AWT and Swing

Activity #2 - Create AWT and Swing UI versions
[Due TUE (1/20) Start of Class]
* * Reminder- NO CLASSES Monday, January 19 in observance of Martin Luther King Jr. Day -
WEEK 2 - Session 3
TUE, 20 Jan
Discussion of Activity #2

Adding new Weather Station functionality

Design Principles & Design Patterns

Refactoring

Software Design Glossary - Intro
Glossary Supplemental
Observer pattern and our design problem - add a barometer.

Activity #3a - Refactoring
[Due THR (1/22) End of Day]
Session 4
THR, 22 Jan
The Observer pattern (introduction) Javadoc Observer (Interface)
Javadoc Observable (Class)


Activity #3b - The New Functionality
[Due THR (1/29) Start of Class]

WEEK 3 - Session 5
TUE, 27 Jan
Design documents: What, Why, How

Design notation: UML

UML Introduction

Team Preferences
[Due FRI noon (1/30)]

Activity #4 - UML
[Due THR(2/6) ==> SUN(2/8) Midnight]
Session 6
THR, 29 Jan
Class Diagrams & Object Diagrams Static Modeling
WEEK 4 - Session 7
TUE, 3 Feb
Sequence Diagrams Dynamic Modeling Teams Formed

Session 8
THR, 5 Feb
Any UML issues?

Version Control Systems

Version Control Systems

.Git

.GitHub
Activity #5 Team REPO (Everyone has Github ready)
[Due TUE (2/10) BEFORE CLASS - We will Start in Class today -
WEEK 5 - Session 9
TUE, 10 Feb

Version Control Systems (continued)



(Creational) Factory Pattern (intro)=>

+Object Creation Concepts=>

Trello Guidance
- Only one Board per Team
Session 10
THR, 12 Feb

Dependency Inversion Principle

(Creational) Factory Pattern (continue)

Dependency injection pattern


+Creational Patterns and Conceptsi=>
Team Setup: Github, Google Drive, Non-functional requirements



*Time permits: New sensors for the weather station.

Design problems with different sensors.

Activity #6 - Team design upgrade (Team)
[Due THR (2/19) Midnight]
WEEK 6 - Session 11
TUE, 17 Feb
Adapter pattern


Yet another sensor...


DIP and Adapters


Activity #7 - Composite Pattern (Individual)
[Due THR (2/26***) Start of Class]

Team Time

(Look ahead) Exam coming up soon
Session 12
THR, 19 Feb


Open-close principle

Project phase #1 released


Teaming pulse check and Open-Close Principle


Refcardz
Exam #1 (50 minutes)
next Tuesday (2/24)

Study Guide
WEEK 7 - Session 13
TUE, 24 Feb
Exam #1 (50 minutes)
Study Guide

+Object hierarchies - the Composite pattern intro ==>


Requirements Analysis - Nouns & Verbs
(MULTI-PLAYER example)
Team Time

Activity #8 - Nouns/Verbs (Team)
[Due MOVED from THR (2/26) - Start of Class
==> NOW FRI (2/27) midnight (in REPO)]
Session 14
THR, 26 Feb
Reminder: Activity #7 - before class




Composite Pattern


Design Sketch (in REPO)
[Due TUE (3/3):
progress before class, final version Midnight]


Team Time: Design discussion
WEEK 8 - Session 15
TUE, 3 Mar
Design Sketch (team progress in REPO before class)
[Due TODAY TUE (3/3) @ Midnight]

*Separation of Concerns - the MVC patterns Class-Responsibility-Collaborator

MVC - Thermometer Reference solution

Keeping Things in Sync - the Mediator pattern
CRC Cards



*Model-View-Controller

*Sample Implementations

* From now on, unless noted ALL project deliverables must be acknowledged in myCourses (via done.txt) and submitted into team REPO

Initial Design Doc
[Due TUE (3/17) Midnight]

Design - Pulse Check

Session 16
THR, 5 Mar
Who should I talk to? Why? Mediator

Sample Mediator Impl Video

Team Time
WEEK 9



NO CLASSES TUE (3/10) and THR (3/12) in observance of SPRING BREAK
WEEK 10 - Session 17
TUE, 17 Mar
Initial Design Doc in REPO
[Due TODAY TUE (3/17) Progress by Midnight ..

Covering the Landfill - the Façade pattern


Façade ..>

Skeleton Java
[Due TUE (3/24) Midnight]
*However, all team members progress in repo BEFORE NEXT class
Session 18
THR, 19 Mar
Skeleton Java (team progress in REPO before class)


Delivery is Near: Team Time

Implementation - Pulse Check

Phase 1
[Due - THR (3/26) Start of Class]
WEEK 11 - Session 19
TUE, 24 Mar
Skeleton Java
[Due TODAY TUE (3/24) Midnight]

Protecting & Hiding Objects - The Proxy Pattern


Proxy

Team Time

Session 20
THR, 26 Mar
Phase 1: Submission and TEAM PRESENTATIONS!
[All Due TODAY - THR (3/26) Start of Class]

Looking ahead:
Project phase #2
(TBD)





WEEK 12 - Session 21
TUE, Mar 31
Phase 1: TEAM PRESENTATIONS [continued] Self and Peer Evaluation Survey
[Due - WED (4/1) NOON]

Exam #2 (50 minutes)
next TUE (4/7)

Study Guide (Mostly on what was covered since last exam)
Study Guide

Team Time

Session 22
THR, 2 Apr
Do As I Say! - The Command Pattern

Command

Team Time

Initial R2 Design Doc in REPO
[Due THR (4/9) - Midnight]
WEEK 13 - Session 23
TUE, 7 Apr
Exam #2 (50 minutes)
Study Guide

Phase 2 milestones are Team Driven
However:
Design Doc ==> updates and transition to FDA/AMA template (goal is to have most done by next class before break)

Skeleton Java
[Due TUE (4/14) (End of Day)]

Team Time
Session 24
THR, 9 Apr
Antipatterns SourceMaking Antipatterns

Huston Design Patterns

Phase 2 coming up soon, plan AHEAD!
(soft goal Apr 16h)
WEEK 14 - Session 25
TUE, 14 Apr

Web Services Intro (Proxy Pattern)

Service Oriented Programming/Architecture



RESTful Web Services Tutorial in IntelliJ

VS Code: REST Client Plugin

Many others on the web, search for a RESTful Web Services Tutorial and share on Slack channel

Phase 2 - Final Release & Presentations
[Due NEXT TUE (4/21) (before class)]
(goal is to have most done by next class)


Team Time
Session 26
THR, 16 Apr
Team Pulse check
(Final release plan)

Prep for Final Exam
Final Exam
Study Guide



Team Time
(Trello blitz and Standups)

WEEK 15 - Session 27
TUE, 21 Apr

Phase 2: Submission and TEAM PRESENTATIONS!
[All Due TODAY - TUE (=>4/21) Start of Class]



Self and Peer Evaluation (myCourses) + Qualtrics Survey
[Due - FRI (4/24) NOON]
Session 28
THR, Apr 23


Phase 2: TEAM PRESENTATIONS!

Getting ready for the Final
Final Exam Date/Time: TBD???



* Always check SIS for latest updates and notify Instructor of any Conflicts