Hot Topic Proposal

ChiliPlop 2006


Curriculum Design Using Pedagogical and Apprenticeship Patterns



Moderators:  Pam Rostal, Dave West


Possible Attendees: Will provide email address for attendees at Agile and OOPSLA conferences last year as well as other potentially interested parties.


Why:  Most of the activity in the Patterns community has been focused on discovery, documentation, and dissemination of patterns – including pedagogical and apprenticeship patterns.  Some work has been done in the area of creating “pattern languages” – integrating and relating discrete patterns; e.g.  Jim Coplien, in Organizational Patterns of Agile Software Development, expands the definition of pattern, “a recurring structural configuration that solves a problem in a context, contributing to the wholeness of some whole or system, that reflects some aesthetic or cultural value.;” a definition we will utilize in our discussions.  With the exception of a relatively small number of experience reports there is far less information about using patterns than there is about finding them.


With little or no input from the pedagogical patterns community, organizations like ACM/IEEE and curriculum committees in university departments everywhere have been developing model curricula.  Individual faculty may or may not use patterns as a foundation for the delivery of such curricula but the moderators for this proposed hot topic are unaware of any systematic attempts to create a patterns-driven (or at minimum patterns-informed) model curriculum for IT.


We believe that such an effort would be beneficial to the patterns community (and therefore a worthy hot topic) for several reasons - not the least of which is a shared belief that “patterned thinking can be powerful thinking.”  Some others:



Such an effort has been impeded in the past by the fact that patterns are generally related to each other via anonymous arcs that have different meanings, depending on which patterns they connect.  There has been no systematic way to represent how patterns complement or build on each other.


The problem we pose for discussion is the reinvention of an entire curriculum – which is essentially equivalent to inventing a new paradigm for software education.  We are therefore seeking patterns and relationships among patterns that will support this new paradigm.


Pam Rostal and her colleagues have developed and deployed (e.g. a project management office redesign,  a Business Architecture Practice at the nation’s leading grocery retailer, and a System Development Lifecycle redesign at a Fortune 500 insurance company ) a framework called Autochthony that we will use to frame our discussion of a new educational paradigm – the framework and details about its use will be included in the Hot Topic website.


The use of this framework will allow us to track the discussion and relate it to other issues and aspects of using patterns to reinvent software education even if we are unable to cover every aspect and issue presented by the problem.


In addition to the numerous pedagogical patterns and related discussions we will draw upon the Apprenticeship Pedagogical Patterns Workshop held at Agile 2005 in Denver and the Patterns discovered and discussed at OOPSLA 2005 in San Diego.



How:  Shortly after acceptance of this proposal a Web-site would be established with a description of the workshop, useful and necessary background (e.g. links to existing pedagogical patterns sites, documentation from the summer Apprenticeship Pedagogical Patterns Workshop), invitation to join the effort with a link to registration, and a Wiki where prospective participants would be expected to introduce themselves to each other as the foundation for creating a community around this effort.  The goal of this pre-workshop communication would be to frame the current state of affairs in software development education and to identify where participants believe improvement is necessary.  The Autochthony framework would also be presented in detail along with guidelines for its use.


 The discussion will also be grounded in a couple of philosophical presuppositions: 1) the curriculum is grounded in the goal of “nurturing better people” rather than compensating for human failings with better tools, algorithms, or methods; and 2) the work of software development is not centered in the creation of artifacts but involves holistic involvement in living complex adaptive systems with profound impact on human beings that are part of those systems.


It will also be necessary to limn the knowledge, experience, and skill set expected of individuals completing the curriculum (perhaps the competencies defined for our cancelled program at Highlands) as well as the individuals running the program and the institutions that would support them.   Based on these constraints, collaboration among the same stakeholders would be discussed.  Based on these decisions, discussion would proceed to defining mechanisms for the management of the program -- addressing assessment, issue resolution and recommitment when necessary.  Again, the discussion must address all three levels – student, instructor and institution.


During the discussion around the practical implementation of the curriculum, we would identify academic constraints and indicate how each might be ameliorated – e.g. an academic calendar cannot be altered, but it would be possible to offer multiple 1 credit courses instead of a single 3-4 credit course during a semester, identify new or modified roles that would be necessary to support the new curriculum, and describe the types of tools and methods required. 


At all times, the patterns identified this summer would be available as input to the discussion and grounding in what has actually been proven successful in other settings – Fearless Change in organizations, Active Learning and Experiential Learning in educational settings, and Reflection in both venues.  Conversely, the discussion itself may prompt the identification of new patterns that have been applied previously.


The workshop description and agenda would be modified in response to Wiki postings but would begin with the following form.


Wednesday AM – Session one


Outline, discuss, modify the approach suggested above (also done via the Wiki pre-conference)

Define specific objectives for the time available at the workshop

Wednesday AM – Session two (assume a model curriculum plan is desired)

      Draft a charter for the new curriculum/program that addresses its historical context

Wednesday PM – Session one

      Define the curriculum/program

Wednesday PM – Session two

      Define the mechanisms that stakeholders can use to collaborate

Thursday AM – Session one

      Define how the stakeholders involved in the curriculum/program collaborate

Thursday PM – Session one

      Define the processes required to deliver the curriculum and the roles, tools and methods required to support them.

Thursday PM – Session two

      Consolidate and modify draft results

Friday AM – Session one

       Publish model curriculum – footnotes to informing/driving patterns

Friday AM – Session two

       Retrospective – future efforts


Discussion Topics – any or all of the following might prove fruitful:


            What needs to be fixed in software development education as it exists?

            What needs to be retained from the current curriculum options?

            What are the limitations and possibilities inherent in the current state?

            Under what circumstances have the greatest advances come?

            What do we believe about how people learn and develop?


What values should underlie the new curriculum (e.g., competitiveness, integrity, collaboration, self-motivation, etc.??)

What should the world/industry/civilization have after the new curriculum is instated that it doesn’t have now?

What forces should the new curriculum try to balance – e.g., preparation for a job, preparation for a life of learning, involvement in other activities, intensity of focus on software development, service to the school, community, etc.?

How will the curriculum be evaluated for alignment with the existing context, vision, mission, values on an ongoing basis?


What should the goals for the new curriculum be?

To what scope should they extend – graduate, undergraduate, professional education?

To what extent should the new curriculum accommodate existing academic constraints on scheduling, place of delivery, integration with other subject areas, etc.?

How will the goals be measured and adjusted based on experience?



What competencies or capabilities should be required of the students in the curriculum upon graduation?

What competencies or capabilities are required by the instructors and university administrators to support such a curriculum?

Center and periphery – given a module how is it organized in terms of primary, supporting, and expanding materials?

How will the curriculum be measured and improved?


What types of collaboration are required of instructors, visiting professionals or luminaries, and university staff to support the delivery of the new curriculum – e.g., labs, lectures, projects, field trips, etc. for students, other types for other roles?

What types of collaboration will be required of those taking the new curriculum - pair learning, team organization/structuring/duration

What types of preparation will be required of collaborators at each collaboration point?

How do the curriculum and university schedules integrate?

How will collaborations be evaluated and improved?


What are the key decision points for the program, the supporting university, and the students themselves?

Are all students evaluated in lockstep, cohort, or individual learning sequences?

What type of information or assessment is necessary to support those decision points?

What types of conflict resolution avenues are available when decisions are deadlocked?

What are the issue escalation options?

When a decision is made to change significantly, how do all stakeholders recommit to the new decision?



Is learning delivered “Just-in-time”?

Does it require a “One room schoolhouse”, web delivery, face-to-face contact?

What vehicles are appropriate - (tutorial, seminar, studio, apprenticeship, courses organized around isolated treatment of algorithms, data, analysis and design, etc.)?

Who controls when group/individual/team activities will occur and for what reasons?

What happens during a typical day and where - in Classroom, Studio, office, building settings?

At what intervals are students evaluated -- semester versus short intensive (e.g. three one credit classes or one three credit class)?

How are processes evaluated and improved?


What roles do the various collaborators play?

How do roles shift over time?

How do students develop in various roles?

How do bottlenecks get resolved across the different roles?

How are responsibilities distributed across roles?

How are roles evaluated?

Tools & Methods

What supporting tools and methods are required at university, program and student levels to deliver the content defined during DEFINITION?

How are they distributed among those who need them?

How do people receive training in them?

How is their relevance measured?