230 likes | 288 Views
CS 490. Design Patterns. Introduce Yourself. Your name What attracted you to this course? Experience with Design Patterns. How would you define “Design Patterns” at this point. I’ll go first. Will this be a hard course?. Why not? (sorry if that’s a disappointment) New material for me.
E N D
CS 490 Design Patterns
Introduce Yourself • Your name • What attracted you to this course? • Experience with Design Patterns. • How would you define “Design Patterns” at this point. • I’ll go first.
Will this be a hard course? • Why not? (sorry if that’s a disappointment) • New material for me. • Exhaustion after two terms. • Mine (and probably yours). • Freedom to explore. • Spring is coming! • I will try to provide a framework in which you can productively learn a lot. • I will not spend much time “cracking the whip”.
My model • Lewis and Clark • A great book: Undaunted Courage by Stephen Ambrose. • None of us have been this way before. • I organize the expedition. • We are all scouts, exploring and reporting on what we have seen. • Don’t know exactly where we will go or what we will see. • It worked well for AOP. • If you don’t like this approach, take a different trip!
Things that influence your grade • Project (which you propose and I approve). • Class Participation (your presentations and otherwise). • Focus group at end of term where I will ask you to sit down with others and discuss some course issues while I mainly listen. • Perhaps a few specific homework assignments. • Journal of your course activities. • Day-by-day log of time spent and what you did. • Reactions to things you have read. • More details soon.
The Blind Men and the Elephant by John Godfrey Saxe
It was six men of Indostan • To learning much inclined, • Who went to see the Elephant • (Though all of them were blind), • That each by observation • Might satisfy his mind
The First approached the Elephant, • And happening to fall • Against his broad and sturdy side, • At once began to bawl: • “God bless me! but the Elephant • Is very like a wall!”
The Second, feeling of the tusk, • Cried, “Ho! what have we here • So very round and smooth and sharp? • To me ’tis mighty clear • This wonder of an Elephant • Is very like a spear!”
The Third approached the animal, • And happening to take • The squirming trunk within his hands, • Thus boldly up and spake: • “I see,” quoth he, “the Elephant • Is very like a snake!”
The Fourth reached out an eager hand, • And felt about the knee. • “What most this wondrous beast is like • Is mighty plain,” quoth he; • “ ‘Tis clear enough the Elephant • Is very like a tree!”
The Fifth, who chanced to touch the ear, • Said: “E’en the blindest man • Can tell what this resembles most; • Deny the fact who can • This marvel of an Elephant • Is very like a fan!
The Sixth no sooner had begun • About the beast to grope, • Than, seizing on the swinging tail • That fell within his scope, • “I see,” quoth he, “the Elephant • Is very like a rope!”
And so these men of Indostan • Disputed loud and long, • Each in his own opinion • Exceeding stiff and strong, • Though each was partly in the right, • And all were in the wrong!
So oft in theologic wars, • The disputants, I ween, • Rail on in utter ignorance • Of what each other mean, • And prate about an Elephant • Not one of them has seen!
What do some who may be less blind than I say? • Most of these quotes are from James Cooper’s Java Design Patterns, a Tutorial, available via Safari On-line.
"Design patterns are recurring solutions to design problems you see over and over." [Smalltalk Companion] • "Design patterns constitute a set of rules describing how to accomplish certain tasks in the realm of software development." [Pree, 1994]
"Design patterns focus more on reuse of recurring architectural design themes, while frameworks focus on detailed design... and implementation." [Coplien and Schmidt, 1995] • "A pattern addresses a recurring design problem that arises in specific design situations and presents a solution to it." [Buschmann and Meunier, et al., 1996]
"Patterns identify and specify abstractions that are above the level of single classes and instances, or of components." [Gamma, Helm, Johnson, and Vlissides, 1993]
Textbook choice • Most important and influential Patterns book? • What do you think? • Gang of Four book • Why not use it as main textbook? • Most influential math books? • Most influential CS books?
How to use the textbook • Don’t gloss over the Challenges. • They are the most important part of the book. • Don’t look at answers too quickly. • Do look at answers before you go on. • My experience. • Had more trouble with early challenges than with late ones. • Read Foreword, Preface, and Chapters 1 and 2.
Video • Richard Helm • Write down • terms that need defining for you. • reactions • questions.