Pedagogical and Elementary Patterns Overview Patterns

Joe Bergin Pace University http://csis.pace.edu/~bergin Thanks to Eugene Wallingford for some material here. Jim (Cope) Coplien also gave advice in the design.

11/26/00 1 11/26/00 2

Patterns--What they DO Where Patterns Came From

• Capture Expert Practice • --A • Communicate Expertise to Others – Architecture • Solve Common Recurring Problems • Structural Relationships that recur in good spaces • , (oopsla ‘87), • Vocabulary of Solutions. Dick Gabriel, , and others • Bring a set of forces/constraints into • Johnson, Gamma, Helm, and Vlisides (GOF) equilibrium • Structural Relationships that recur in good programs • Work with other patterns

11/26/00 3 11/26/00 4 Patterns Branch Out Patterns--What they ARE

(GOF...) •A Thing • Organizational Patterns (XP, SCRUM...) • A Description of a Thing • Telecommunication Patterns (Hub…) • A Description of how to Create the Thing • Pedagogical Patterns •A Solution of a Recurring Problem in a • Elementary Patterns Context – Unfortunately this “definition” is only useful if you already know what patterns are

11/26/00 5 11/26/00 6

Patterns--What they ARE (2) Elements of a Pattern

• Structural relationships between •Problem components of a system that brings into • Context equilibrium a set of demands on the system •Forces • A way to generate complex (emergent) •Solution behavior from simple rules • Examples of Use (several) • A way to make the world a better place for humans -- not just developers or teachers... • Consequences and Resulting Context

11/26/00 7 11/26/00 8 Exercise Exercise

• Problem: Build a stairway up a castle tower • Problem: Design the intersection of two or • Context: 12th Century Denmark. The region more rural roads is often at war • Context: Denmark • Forces: Confined space. Must be defended • Forces: Low maintenance. Land is cheap. against attack from below. Warriors are Electricity is expensive to deliver. Traffic is mostly right handed. light. Don’t cause an unnecessary stop. • Solution: • Solution:

11/26/00 9 11/26/00 10

Alexander Example Alexander Example (2)

• Light On Two Sides of Every Room (159) • Light on Two Sides of Every room: • Major rooms have been placed... •A Thing -- a configuration of rooms with the property • People gravitate to such rooms (converse) • A Description of the Thing -- a picture or • Shadows, glare, softer light gradient... paragraph describing it. • A Description of how to build the thing-- • Locate every room so that it has outdoor Place rooms in the corners of the building. Juxtapose small space adjacent on at least two sides... rooms with large ones. Take care not to destroy the roof layout. Make the windows open onto something beautiful.

11/26/00 11 11/26/00 12 GOF Example Composite(2)

• Composite •A Thing -- Panel in Java or (3 * (4 +5)) • Building a complex part-whole hierarchy • A Description of the Thing -- An object in a program that behaves like other objects but which also • Many parts must be composed flexibly contains other objects with that behavior • Tradeoff simplicity and flexibility • A Description of how to build the Thing -- • Structure objects so that a container of Create a class that implements the desired interface. Give the class an instance variable that is a collection of objects components is also itself a component that implement the interface. Implement the methods by delegating to the elements of the collection.

11/26/00 13 11/26/00 14

More Examples Forms for Writing Patterns

• Grand- Patterns in Java • Alexandrian – Delegation – See Seminars – Singleton • Outline (sometimes called GOF) –Observer – See Grand – Decorator • Outline is easier and a good place to begin • Alexandrian is more informative and literate

11/26/00 15 11/26/00 16 Alexandrian Form (APL) Modified Alexandrian Form 1. PATTERN NAME* 1. PATTERN NAME* Picture giving architectural example Introduction giving context Introduction giving context *** *** Problem description Problem description Essence of Problem (1-2 sentences) Essence of Problem (1-2 sentences) Body of problem (longest section) Body of problem (longest section) Solution -- Stated in form of an instruction Solution -- Stated in form of an instruction Diagram giving solution graphically Diagram giving solution graphically Examples of use *** *** Resulting context Resulting context

11/26/00 17 11/26/00 18

Patterns--What they are NOT Patterns--What they are NOT (2)

• A way to make software cheaper • Just GOF – Instead of software: courses, organizations... • Just OOP • A way to make software faster • Just programming templates • Surprising to experts (mostly) • Just tricks • Invented by their authors • Extra material for students • Just a literary form • New material for students • Stand alone incremental improvements

11/26/00 19 11/26/00 20 Patterns--What they are NOT (3) Overheard

• If there is only one way to do something it • Why don’t you just have an immutable isn’t a pattern. (context and forces are key) singleton null object iterator mediate • If it doesn’t properly bring the applicable between your composite decorated facade forces into equilibrium, it isn’t a pattern. and the conoculator valve? • If there is no agreement among experts that • OR-- maybe bridge the flyweight proxy the solution is “best,” it isn’t a pattern. prototype with a factory method mememto adapter?

11/26/00 21 11/26/00 22

Pattern Languages Pattern Languages (2) • Patterns seldom occur alone • Patterns are defined at different time or • Seen properly they are part of pattern space “scale” languages • Patterns at different scale are all of similar • It is the languages that provide the emergent complexity behavior, not the individual patterns • Large scale patterns (towns)as simple as • Context of a pattern is the consequences of small scale (pictures on your wall) one or more other patterns. • Work from large scale down to small within – Patterns are applied in sequence a given context

11/26/00 23 11/26/00 24 Seminars: Fricke/Voelter Seminars

11/26/00 25 11/26/00 26

Seminars Pattern Languages are NOT

• Just catalogs of patterns – Patterns in a language work together to solve a complex problem whose parts are solved by the individual patterns. The Goodness and Liveness emerge from the interactions. – In Alexandrian terms, from the spaces defined by the elements in the pattern. Spaces in which humans live. (Architect positions walls but defines spaces between the walls.)

11/26/00 27 11/26/00 28 Patterns Community Wiki Web

• The patterns community tries hard to be • Ward Cunningham maintains a virtual supportive of its members meeting place for all patterns people at • There are many activities that work to this – http://c2.com/cgi/wiki/ end • The Wiki Wiki Web is an interactive web • PLoPs, Lists, Web sites site to which anyone can modify any page. • Patterns Process

11/26/00 29 11/26/00 30

Other Views-Resources More Resources

• Brad Appleton’s overview of patterns • Introducing Patterns into Organizations – http://www.enteract.com/~bradapp/docs/patterns-intro.html – Mary Lynn Manns and • More On Christopher Alexander – [email protected] – http://g.oswego.edu/dl/ca/ca/ca.html – Linda is spending this year in Copenhagen • Jim Coplien's Home Page – She is also the author of the Patterns Almanac – http://www.bell-labs.com/~cope/ and the Patterns Handbook • Hillside Group • http://www.cs.unca.edu/~manns/intropatterns.html – http://hillside.net/patterns/

11/26/00 31 11/26/00 32 Current Key Players

Elementary Patterns • Eugene Wallingford • Dwight Duego •Joe Bergin •Zung Nguyen • Robert Duvall • Viera Proulx Overview • Owen Astrachan • Richard Rasala • Alyce Brady • Stephen Wong http://www.cs.uni.edu/~wallingf/patterns/elementary/ •Ed Epp • Javier Galve-Frances (There is a mailing list also) •Rick Mercer • • Doug Dechow •

11/26/00 33 11/26/00 34

Elementary Patterns Goals

• Intended for novices • More effective teaching (not new material) •Both • More effective learning – simpler standard design patterns and – Students can say why they do what they do – Patterns created especially for novices – Students can follow a plan • Varieties of scale, but attacking problems – Students can make connections encountered by novices • Introduction to the patterns way of thinking • Efficiency when solving recurring problems

11/26/00 35 11/26/00 36 Example How to use Elementary Patterns • The can be used to dynamically add functionality to an object defined by an • Not a syllabus item or exam item interface without modifying the object • Tools for studying design principles • You can use it to develop search strategies in • Tools for reading and organizing programs simple lists/vectors • Tools for writing programs • It is also the basis of the design of the Java I/O libraries • Vocabulary for communication between • Once you understand Decorator, you understand instructor and student Java I/O • Benchmark for evaluating programs

11/26/00 37 11/26/00 38

Tools for reading & organizing Tools for studying design principles programs • Use Decorator or Composite • Enumeration -- Java collections – to show both inheritance and delegation in a • Observer -- Java events way that maximizes the benefits of both • Decorator -- Java I/O – to show dynamic polymorphism • Pipes & Filters -- Compiler passes – to show the power of interface • Immutable -- Making programs simple to understand

11/26/00 39 11/26/00 40 Tools for writing programs Example of Use

• What IS the problem? • Show the same problem solved with and • What IS the solution? without patterns. • WHY is one solution better than another? • Discuss the differences • HOW do the pieces fit together? – Why is one better? • Maintainability? Clarity? ...

• Students need to ask and answer these questions. Patterns can help.

11/26/00 41 11/26/00 42

Example of Use Example of Use

• Give an exercise in which patterns are likely • Prepare a Fixer-Upper (pedagogical pattern) to appear and a list of likely patterns – In this case a large program written without • Ask them to document patterns in their patterns solutions – Have the students (in pairs, perhaps) identify opportunities for refactoring into patterns from – The list can be as short as one pattern. a fixed small list of elementary patterns. – Have them carry out the work

11/26/00 43 11/26/00 44 How Have We Used Patterns? How Have We Used Patterns?

• Wallingford Example • Owen Astrachan has begun to create a – Balls series of exercises that show the difference • Bergin Examples between pattern poor and pattern rich – Understanding OO software in Java. • Polymorphism, factory, singleton, null object • The first in the series is hangman, a simple – Representing Gender word game played by children • State, strategy, decorator – http://www.cs.duke.edu/csed/patterns/oofirstyear/hangman – Decorator and Java I/O • Watch for more in this series

11/26/00 45 11/26/00 46

Instructor Written Patterns

• Helps the instructor understand the material Elementary Patterns • Helps the instructor organize the material – See first two pages of Patterns for Selection • Provides an outline for the students Patterns We Write – http://max.cs.kzoo.edu/cs210/Labs/AquaJava/index.shtml – http://max.cs.kzoo.edu/AP/Fish/AquariumLabSeries/ – http://max.cs.kzoo.edu/~abrady/CS420W00/Labs/index.shtml

11/26/00 47 11/26/00 48 Sample Pattern (Selection) Sample Pattern (Coding)

• Function For Complex Condition • Brace All – You want to write Simply Understood Code but –You want to Prepare for Change in your complex conditions in if and while statements programs. Your if and while statements may are hard to grasp quickly need additional actions added to them in the – Therefore: Write a separate boolean valued future. This can be error prone function to express the condition. – Therefore: When you first write an if or a – Make sure its name Expresses a Positive while, include its statement in braces, even Condition. when this isn’t required by the language.

11/26/00 49 11/26/00 50

You Can Do This at Home What Has Been Done?

• Think about some topic you regularly teach • Selection -- Java, C++ • Think about the problem you try to solve • Iteration • Think about the right solution • Recursion -- Scheme • Think about when/where the problem • Polymorphism (a start only) occurs • Elementary Coding -- Java • Think about what leads you to the right – None of this work is perfect. It can all be solution. revisited, refined. Some is preliminary.

11/26/00 51 11/26/00 52 Examples What Needs to be Done? • Object Selection (find the objects) • Selection from Selection • Responsibility assignment • Selection from Coding Patterns • Class Design • Inheritance • Method design and refactoring •I/O • Concurrency Organizing Everything •etc. 11/26/00 53 11/26/00 54

Community Goal Patterns Process

• Write for students in the • Author writes first CS course • Author Submits • Assume the course will be object-oriented • Shepherd Assigned • Using Java or C++ • Shepherd Gives Feedback/Author Revises • Will involve both programming and design, • Paper Workshopped by Group of Authors as well as important CS topics • Author Revises • We currently have only a few pieces of this • Paper Published

11/26/00 55 11/26/00 56 Patterns Process (2)

• There are pattern languages for – Writing patterns Elementary Patterns • http://webclass.cqu.edu.au/Patterns/Resources/writers/language/ – Shepherding patterns • http://jerry.cs.uiuc.edu/~plop/plop2k/shepherding.pdf Patterns Students Write – Workshopping patterns • http://www.bell-labs.com/~cope/Patterns/WritersWorkshops/

11/26/00 57 11/26/00 58

Student Written Patterns

• This is an interesting but largely untested idea. Elementary Patterns • Have students write up what they have learned on a topic in pattern form Patterns We Use • Outline form is probably best to start • A revision could use Alexandrian form

11/26/00 59 11/26/00 60 Useful Simple Patterns

• Null Object • Strategy Pedagogical Patterns • Decorator • Delegation • Composite • Object Pool Patterns for Educators • Singleton • Adapter • Immutable Object • Pipes and Filters http://www-lifia.info.unlp.edu.ar/ppp/ •Observer • Others depending on http://www.pedagogicalpatterns.org • Filter your course, skills, and background

11/26/00 61 11/26/00 62

Pedagogical Patterns Current Key Players

• Capture expert knowledge about teaching • Mary Lynn Manns • Máximo Prieto • Transmit the knowledge to those who need • Helen Sharp • Phil McLaughlin it • Jutta Eckstein • Many others have contributed • Provide tools for course construction, •Joe Bergin • delivery, and improvement • Markus Voelter • Patterns at several levels of scale • Kent Beck •Alan O’Callaghan – years...minutes

11/26/00 63 11/26/00 64 Sample Pattern (Large scale) Sample Pattern (Small Scale) • Need To Know • Gold Star – There is too much to teach and more is added daily. If you try to teach it all you will never – Students should be rewarded for what they do finish. well. It motivates them to do more and better – We prefer Active Students who learn thru doing – Rewards can be public as well as private – Therefore: Teach what the students Need To – Therefore: Find a way to give small tokens to Know to facilitate problem solving students who do something especially well • Siliconized topics can be omitted entirely – This can tangible or intangible. – Other material can be dropped or deferred

11/26/00 65 11/26/00 66

Pattern Languages Existing Work

•Seminars • Too much of it is not up to current standards • My attempts for (single) Course Design – Single use tricks • The community’s attempt to unify the –Too complex patterns on the web site. • Simpler patterns seem to be better (personal bias) – Too specialized • Authors haven’t sufficiently abstracted the essence • This is where the real benefit will lie – Can’t easily see how it can be integrated – beyond incremental improvements – Very little on pattern languages

11/26/00 67 11/26/00 68 BUT... Seminars--Fricke & Voelter

• The patterns community generally sees • A pattern language for design and delivery great promise here. of short courses • There is potential for creating really useful • Workshopped at EuroPLoP 2000 pattern languages that can serve as models • 48 Patterns in 5 phases for others, just as the organizational patterns • http://www.voelter.de/seminars/ have done. • Perhaps the best current example of a pedagogical pattern language

11/26/00 69 11/26/00 70

Seminars (Prep) Seminars (begin)

• Check Prerequisites • Seminar Plan • Welcome the • Personal • Adapt to Participants –Breaks Participants Communication Background – Buffers • Introduction Session – Anonymous Mailbox – Let them Decide – Reference the Plan – Nameplate • Comfortable – Review after breaks – Games Environment –Summary – Manuscript

11/26/00 71 11/26/00 72 Seminars (teaching) Seminars (teaching ends)

• Prepared Equipment • Teacher Group (7) • Kind of Exam • Be There First – Nobody is Perfect •Trial Exam • Process Group (7) – ... • Selectable Exam Time – Let the Plan go • Media Group (2) • Differentiated – ... – Change Media Feedback • Teaching Group (7) – Use Participants Media – Digestible Packets • Participant Feedback – ... Form

11/26/00 73 11/26/00 74

Pattern Language For CS Seminars (end) Courses • Seminar Debrief • In development • Currently about 100 patterns • Some overlap with Seminars and other work • 11 categories – Prior to Course. Course as a whole. Starting the course and major topics. Scale of Weeks, days, hours, minutes. Evaluation. Communication. Dealing with problems.

11/26/00 75 11/26/00 76 Pattern Language For CS Prior to Course Courses • Online • New Pedagogy for • Adapt to Student – http://csis.pace.edu/~bergin/patterns/coursepatternlanguage.html New Paradigms Background (Fricke & – http://csis.pace.edu/~bergin/PedPat1.3.html • Need to Know Völter) – http://csis.pace.edu/~bergin/patterns/fewpedpats.html • Iterative Course • Abandon Systems Development (Anthony) • Check Prerequisites (Fricke & Völter)

11/26/00 77 11/26/00 78

Course as a Whole Starting Course/Major Topics

•Early Bird • Buddy System • Set the Stage • Occam •Spiral (and Anthony's • Language Reinforces • Lay of the Land (and • Read Before Write Chicken and Egg,which may be Paradigm used at any level) Anthony's Module's Story) • Consistent Metaphor • Write Over Read • Visible Plan (and Fricke & • Multi Pronged Attack • High Leverage • General Concepts First Völter's Manuscript) • Groups Work (Fricke & Völter) • Learn Their Names • Lazy Professor (and • Study Groups (and Fricke & Völter's Fricke & Völter's Different Nameplate) Approaches) • Reduce Risk •Fixer Upper • Active Student • Stealth Instructor

11/26/00 79 11/26/00 80 Scale of Weeks Scale of Days •Toy Box •Example Lasts One • Larger Than Life • Explore-Present- • Fill in the Blanks Week (Anthony) •Tool Box Interact-Critique •Acquaintance (Knudsen & Madsen) • Quality is Job One • Take a Risk • Different Exercise Examples (Anthony) • Constant Challenge Levels (Fricke & Völter) • Lab-Discussion- Lecture-Lab (Manns) • Inlook - Outlook • Repeat Topics (Fricke & •Assigning and Völter) • Lecture-Activity- Grading (short) Team • Chunks of Information Student Presentation- (Bienhaus) Projects (Meyer) Discussion (Sharp) • • The Three Bears (Beck) 11/26/00 81 11/26/00 82

Scale of Hours Scale of Minutes

• Smile and Greet (and • Relevant Examples •Gold Star • In-Line Exercises Fricke & Völter's Welcome the (Fricke & Völter) •Test Tube (Marler) Participnts) • Digestible Packets • Reveal Yourself (Fricke & Völter) • Media Discipline • Student Design Sprint • Separate Similar • Honor Questions (Fricke & Völter) •Mistake Content (Fricke & Völter) • Nobody is Perfect •Icky Poo (and Anthony's • Reference Examples (Fricke & Völter) (Anthony) Simulation Games) • Review After Breaks • Expose the Process • Gagne'-Ausbel Pattern (Fricke & Völter) (Becker) of Lecture (DeClue) 11/26/00 83 11/26/00 84 Evaluation Communication

• Fair Project Grading •Trial Exam (Fricke & • Rule of 1 - Rule of 2 • Fair Team Grading Völter) • 24 by 7 •Self Test (Steindl) • Key Ideas Dominate • Constant Feedback • Debrief After Grading • Anonymous Mailbox Activities (Anthony) • Student Online (Fricke & Völter) Portfolios • Feedback (Fricke & Völter) • Grade It Again Sam • Ask Your Neighbor (Eckstein) • Student Selected Activities 11/26/00 85 11/26/00 86

Dealing With Problems Patterns and Academic Research

• Buffers (Fricke & Voelter) • Patterns are not original to their authors • Prepare Equipment • Patterns are not new or created, but (and have a backup) (Fricke & Völter) discovered (mined is the term of choice) • Let the Plan Go (Fricke • Perhaps dangerous undertaking for & Völter) untenured faculty to write patterns • Debrief (Fricke & Völter) • However, there ARE research possibilities • Human Professor – How do we know a solution is best? • Capture Everything

11/26/00 87 11/26/00 88 The Future Feedback About the Course

• Form a Patterns Reading Group in your • Send me email at [email protected] town. Get together monthly (weekly?) • Anonymous messages about the course can • Form a Patterns Writing Group in your be filtered through Michael Caspersen who town. Workshop each other’s patterns. can pass on the content. • Join a mailing list like patterns-discussion • Go to wiki web to get connected and find existing groups.

11/26/00 89 11/26/00 90

Many PLoPs

• PLoP: Held in Illinois each August – http://jerry.cs.uiuc.edu/plop/plop2k/ PLoP Conferences • EuroPLoP: Irsee, Germany each July – http://www.coldewey.com/europlop2000/ – http://WWW.hillside.net/patterns/EuroPLoP Mostly workshopping of papers • KoalaPLoP: Melbourne Australia , May (ChiliPLoP is all working groups) – http://www.cs.rmit.edu.au/KoalaPLoP/ • ChiliPLoP: near Phoenix, Arizona each March – http://www.agcs.com/patterns/chiliplop/ • SugarPlop: Rio de Janeiro, Brazil, October ??

11/26/00 91 11/26/00 92 Patterns FAQ Games

• Doug Lea • Jane Chandler on Understanding Alexander – http://g.oswego.edu/dl/pd-FAQ/pd-FAQ.html Through Games – mailto:[email protected] – http://www.dis.port.ac.uk/~chandler • George Platts on Non Competitive games George is games-master at most PLoPs – mailto: [email protected] – Also see: http://www.deepfun.com/

11/26/00 93 11/26/00 94

Plan

• Start with your idea Writing Patterns • Express it in outline form • Have it read and commented on (Shepherd) Time to Be Creative • Re-write it (perhaps in Alexandrian form) • Have it workshopped • Revise it again • Voila--rich and famous

11/26/00 95 11/26/00 96 Alexander?

• Alexander as Sacred Text Patterns • Alexander as Literary Form

Philosophical, Ethical, and Social • Even if we reject the first it may be useful to Dimension us to try to understand Alexander’s real purpose

11/26/00 97 11/26/00 98

Alexander Exericse

• Original Goals • Problem: Design the intersection of two or – Improve human life more rural roads – Give ordinary people a vernacular of • Context: Denmark architecture so they could • Forces: Low maintenance. Land is cheap. • Control their own spaces/world Electricity is expensive to deliver. Traffic is • Release and enable human potential light. Don’t cause an unnecessary stop. – NOT improve the lives of architects – NOT make buildings prettier/cheaper/faster… • Solution:

11/26/00 99 11/26/00 100 But: A better question QWAN

• What should we build • The Quality Without A Name (TTWOB) – NOT how should we build it – “There is a central quality which is the root •NOT just roads criterion of life and spirit in a man, a town, a building, or a wilderness. This quality is – public transport objective and precise, but it cannot be named. – other communication systems... – The search which we make for this quality, in our own lives is the central search of any person, and the crux of any person’s story.

11/26/00 101 11/26/00 102

The Gate

• “To reach the quality without a name we “I can’t define it, but I know it must then build a living pattern language as when I see it.” a gate.” • Not a barrier, but an opening to help us get from where we are to where we want and Famous quote of U.S Supreme Court justice speaking about pornography need to be.

11/26/00 103 11/26/00 104 The Way Consequences

• “Once we have built the gate, we can pass • Human scale, human needs through it to the practice of the timeless • No prefabricated parts way.” • Not just beauty, but “liveness” • “...merely release the fundamental order which is native to us.” • “...do exactly what emerges from ourselves” • Define WHAT should be built, not just how

11/26/00 105 11/26/00 106

Consequences Consequences

• Languages rather than patterns • There is no pattern language for doing • Universality rather than specificity biological warfare. • Release human potential, not just make – Either it would have only one pattern tomorrow’s software cheaper or more • JUST SAY NO maintainable – Or we would recognize that one force (destroying the human race) is so strong as to – e.g. in XP one of the rules (patterns) is be unbalance all possible combinations of other • 40 hour week. forces.

11/26/00 107 11/26/00 108 Is this the same for design Question patterns? • How many pattern languages of architecture • Probably not. There are probably many are there? pattern languages for design. – For Alexander the answer is ONE. • There are probably only a few pattern – The language doesn’t grow out of his thought languages for organizations. Different and desires or specific philosophy. It grows out organizations have different goals. of basic human nature which does not change. • It many be however, that there is only one – Therefore, if he has the right language pedagogical pattern language--but we are a (certainly it can be improved) then it is unique. long way from knowing what it is. 11/26/00 109 11/26/00 110

Beyond Patterns What should we build? • Alexander is working still on new ideas. He has developed the theory of centers which I • Not just how don’t understand much of. Coplien does. He • What should we NOT build also thinks that Patterns are defined by • How can we give the ordinary person geometry (clear in Architecture at least) and affected by IS the “vernacular” to build that my patterns exhibit this. their own systems? If that is impossible, – I’m still struggling with this. how can we guarantee that those affected – http://www.PatternLanguage.com/ are included in the critical design phases? • Look for “The Nature of Order”

11/26/00 111 11/26/00 112 A New Project (14/11/2000) Textual Electronic Comm.

• A Pattern Language for Textual Electronic • Intimate Communication Communication (Collaborative Project) • Low-overhead Messages – an actual pattern language that would guide a • Peripheral Awareness person in deciding what to build, rather than how to build it • Automatic Connection – the people affected by the design of these • Closed Door (email) systems is enormous – http://www.egroups.com/group/apl4tec

11/26/00 113 11/26/00 114

Controversy Responsibility

• Not all members of the community hold the • Responsibility of the Teknowlegable* same views about the importance of QWAN – Those who know the consequences should – Coplien, Gabriel, Bergin … do • Protect the rights of those affected – Some others just want to get on with the work • Include those affected • Not all members feel that patterns have a • Power (or lack of) of the IS worker moral component • A Pattern for protecting people’s rights – Accounting in the US • Audit required *Author forgotten

11/26/00 115 11/26/00 116 Responsibility Ideas for New Patterns Discussed

• Safety Critical Systems • Constant Challenge • Interdependent Group • Privacy Critical Systems – Worst Grade Project Dominates • Teach Me • – Big Group Projects • Group Questions • – Individual Follow up – Group Oral Exam •Don’t Answer • – Variable Speed – The affected people must have a say in the • Graduated Projects design (opt-in vs. opt-out) • Open ended projects

11/26/00 117 11/26/00 118

Ideas for New Patterns Discussed Ideas For New Patterns

• More Loop Patterns • From UML to Java • Bumpy Road (pedagogical pattern) • Recursion in Java – When to use association, – If your lecture is too uniform, especially if it is • Algorithmic Patterns delegation… long, you will be boring • Family of Courses • Class Design – Therefore vary what you do. Styles of • Refine – Responsibilities… presentation, activities, question periods... • Set the Stage –& see GRASP – Create an educational (Larman) environment • Interfaces – when-where-how

11/26/00 119 11/26/00 120 Ideas For New Patterns Ideas For New Patterns

• Mark Sharp Turns (pedagogical pattern) • Brave Professor – Sometimes you come to a difficult part in a – Sometimes you foul up grandly lecture or presentation. Difficult to learn, – Sometimes there is a lesson in it difficult to explain. Maybe you don’t even – Therefore, admit your mistake to your students know yet how to present the idea clearly and and point out what led you to the mistake completely. – Therefore, let the students know that this is a difficult bit and why so they are prepared to Suggested by Michael Caspersen focus especially on it.

11/26/00 121 11/26/00 122