EE382V - Design Patterns

http://bit.ly/designpatternclass

Someone has already solved your problems. In this class you will learn how to exploit the wisdom and lessons learned by other developers. Specifically, DP will begin with a review of OO principles, which will then be followed by an in-depth study of important design patterns. DP will conclude with a survey of refactoring. Lectures will be interspersed with guest speakers.

Texts

Head First Design Patterns (HFDP), Refactoring, with supplementary material from Design Patterns: Elements of Reusable Object-Oriented Software

Instructor

Timeline

Unit

Lecture

Lab

HW

1, 6/13/14

Basics of OOP

OO puzzlers

UML, in-class UML Lab

Programming Anti-patterns

 

HFDP 1: Introduction, HFDP 2: Observer

EJ: Methods common to all objects

Observer Lab: Twitter Analysis

Due Sun 6/22/14 11:59pm

HW0

HW1 

Due Sun 6/22/14 11:59pm

2, 6/14/14

HFDP 3: Decorator, HFDP 4: Factories (GOF),

Methodological anti-patterns

HFDP 5: Singleton, HFDP 6: Command

EJ: Creating and destroying objects,

Classes and Interface

William Leara, Experiences with ESE MS Report

Factory Lab: Pizza shop

Decorator Lab: Instrumented Airport Distance Scraper

Due Sun 6/29/14 11:59pm

HW2

Due Sun 6/29/14 11:59pm

3, 6/27/14

HFDP 7: Adaptor, HFDP 8: Template,

Project management anti-patterns

HFDP 9: Iterators, HFDP 10: State

Data Structure Patterns

Template Lab: ImageCloud

Adapter Lab: Jukex

Due Sun 7/6/14

11:59pm

HW3

Due Sun 7/6/14

11:59pm

4, 6/28/14

HFDP 11: Proxy, HFDP 12: Patterns of Patterns,

Organizational anti-patterns

HFDP 13: Real-world issues, HFDP: Leftovers

Algorithms Patterns

Flyweight Lab: Compressed Binary Trees

Iterator Lab: CustomIterator

Due Sun 7/13/14

11:59pm

HW4

Due Sun 7/13/14

11:59pm

7/11, 7/12,

Refactoring: Case Study, Principles, Bad Smells, Common Refactorings, Pragmatics

Recordings: Refactoring 1 Refactoring 2

Refactoring Lab: Refactoring the Video Rental Example with Eclipse

Due Sun 7/20/14

11:59pm

HW5

Due Sun 7/20/14

11:59pm

7/18, 7/19

Concurrency Patterns

See also slides 10-20 here for basic review of concurrency in Java

Recordings: Concurrency 1, Concurrency 2

Concurrency Lab

Due Sun 7/27/14 11:59pm

HW6

Due Sun 7/27/14

11:59pm

7/26

Conclusion Recording

Grading

Grades will be assigned based on performance on 5 written homeworks (20%), 5 lab exercises (50%), 4 in-class tests (20%), and class participation (10%).  We will use the +/- scheme.

Exercises and HW will be graded on a 0-3 scale, where 0 = not done, 1 = means attempted superficially, 2 = completed, but missing some deliverables, 3 = completed and meets all deliverables. (This is not a linear scale.)

Late submissions will not be accepted barring verifiable medical/personal emergencies.

Online forum

We’ll use Piazza for discussions. (signup link)

Submission

Homeworks and labs will be due via Google docs. Code should be commited via Assembla’s online hosted SVN service.

TA Information

Google calendar showing sections and office hours and by appointment.

 

Name

Email

Phone

Office Hours

Ragha Srinivasan

ragha@utexas.edu

5129054073

Sat 5PM - 8PM (class weeks), Fri 6:30- 7:00 PM

Policies

This document defines policies around add-drop, cheating, students with disabilities, emergency procedures, etc.

Google Moderator 2013

5 things that didn’t work

5 things to add/enhance

5 things you liked

Suggestions for APT 2013