anden information michael e. caspersen workshop #3 @ sigcse 2011 pedagogical progressions for...

28
Anden information Michael E. Caspersen Workshop #3 @ SIGCSE 2011 Pedagogical Progressions for Teaching OOD Workshop #3 @ SIGCSE 2011 Pedagogical Progressions for Teaching Object-Oriented Design Learning Theory Background and an example of pedagogical progression for teaching OOD to novices

Post on 19-Dec-2015

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Anden information Michael E. Caspersen Workshop #3 @ SIGCSE 2011 Pedagogical Progressions for Teaching OOD Workshop #3 @ SIGCSE 2011 Pedagogical Progressions

Anden information

Michael E. CaspersenWorkshop #3 @ SIGCSE 2011

Pedagogical Progressions for Teaching OOD

Workshop #3 @ SIGCSE 2011

Pedagogical Progressions for Teaching Object-Oriented

Design

Learning Theory Background

and an example of

pedagogical progression for teaching OOD to novices

Page 2: Anden information Michael E. Caspersen Workshop #3 @ SIGCSE 2011 Pedagogical Progressions for Teaching OOD Workshop #3 @ SIGCSE 2011 Pedagogical Progressions

Anden information

Michael E. CaspersenWorkshop #3 @ SIGCSE 2011

Pedagogical Progressions for Teaching OOD

Agenda

Brief introduction to learning and our cognitive architecture

Cognitive Load Theory (CLT), Worked Examples (WE), and CLT Effects

An example of pedagogical progression for teaching OOD to novices intro programming course @ Aarhus University (7

weeks)

Page 3: Anden information Michael E. Caspersen Workshop #3 @ SIGCSE 2011 Pedagogical Progressions for Teaching OOD Workshop #3 @ SIGCSE 2011 Pedagogical Progressions

Anden information

Michael E. CaspersenWorkshop #3 @ SIGCSE 2011

Pedagogical Progressions for Teaching OOD

Reading

et a lg nimo cs ire pa psw e ngni nr ome ht

the morning newspaper is coming late

Page 4: Anden information Michael E. Caspersen Workshop #3 @ SIGCSE 2011 Pedagogical Progressions for Teaching OOD Workshop #3 @ SIGCSE 2011 Pedagogical Progressions

Anden information

Michael E. CaspersenWorkshop #3 @ SIGCSE 2011

Pedagogical Progressions for Teaching OOD

Reading

Expert Knows 100.000s of words and

phrases Patterns and pattern matching

Novice Knows few (if any) words and

phrases; perhaps hardly the letters

Page 5: Anden information Michael E. Caspersen Workshop #3 @ SIGCSE 2011 Pedagogical Progressions for Teaching OOD Workshop #3 @ SIGCSE 2011 Pedagogical Progressions

Anden information

Michael E. CaspersenWorkshop #3 @ SIGCSE 2011

Pedagogical Progressions for Teaching OOD

Chess

Expert Knows 100.000s of board

configurations and their associated moves

Patterns and pattern matching!

Novice Knows few (if any) board

configurations and their associated moves

Page 6: Anden information Michael E. Caspersen Workshop #3 @ SIGCSE 2011 Pedagogical Progressions for Teaching OOD Workshop #3 @ SIGCSE 2011 Pedagogical Progressions

Anden information

Michael E. CaspersenWorkshop #3 @ SIGCSE 2011

Pedagogical Progressions for Teaching OOD

Expert Versus Novice

Expert schemas: many, at many different levels of abstraction automation: masters many automated process which

can be carried out with minimal conscious thought

Novice schemas: none, need to be built automation: no automated processes; all processes

require conscious thought, i.e. load on working memory

Education (pattern-oriented instruction)

Page 7: Anden information Michael E. Caspersen Workshop #3 @ SIGCSE 2011 Pedagogical Progressions for Teaching OOD Workshop #3 @ SIGCSE 2011 Pedagogical Progressions

Anden information

Michael E. CaspersenWorkshop #3 @ SIGCSE 2011

Pedagogical Progressions for Teaching OOD

Cognitive Learning Processes

Page 8: Anden information Michael E. Caspersen Workshop #3 @ SIGCSE 2011 Pedagogical Progressions for Teaching OOD Workshop #3 @ SIGCSE 2011 Pedagogical Progressions

Anden information

Michael E. CaspersenWorkshop #3 @ SIGCSE 2011

Pedagogical Progressions for Teaching OOD

Our Cognitive Architecture

Long-Term Memory:Schemas

Working Memory:Integration

encoding decoding

recoding/chunking

(unconscious)

decision(conscious)

Senses Muscles

Environment

New information is processed in WM to form

new knowledge structures called schemas stored in

LTM.

Learning

Memory structures that permit us to treat a large amount of information as

one unit.

Schemas

Automated processes which can be carried out with minimal conscious

thought.(Procedural schemas.)

Automation

Page 9: Anden information Michael E. Caspersen Workshop #3 @ SIGCSE 2011 Pedagogical Progressions for Teaching OOD Workshop #3 @ SIGCSE 2011 Pedagogical Progressions

Anden information

Michael E. CaspersenWorkshop #3 @ SIGCSE 2011

Pedagogical Progressions for Teaching OOD

Cognitive Load Theory(1982-)

The fundamental axiom of CLT: learning outcome is optimized when cognitive load fully utilizes the capacity of working memory with elements that

allow for optimal schema acquisition.

• Intrinsic cognitive load (I)– cognitive load intrinsic to the problem that

cannot be reduced without reducing understanding

• Extraneous cognitive load (E)– a non-intrinsic cognitive load caused by

instructional procedures that interfere with rather than contribute to learning

• Germane cognitive load (G)– a non-intrinsic cognitive load that

contributes to, rather than interfere with, learning by supporting schema acquisition (pattern-oriented instruction)

Learning outcome

Cognitive load

L = I + E + G

Optimize learning:minimize E, maximize G

John Sweller

Page 10: Anden information Michael E. Caspersen Workshop #3 @ SIGCSE 2011 Pedagogical Progressions for Teaching OOD Workshop #3 @ SIGCSE 2011 Pedagogical Progressions

Anden information

Michael E. CaspersenWorkshop #3 @ SIGCSE 2011

Pedagogical Progressions for Teaching OOD

Pre CLT Dogma

Cognitive PsychologyIn the early 1970s, problem solving became one of the central fields of cognitive

psychology.

Assumption and AdviceProblem solving is the best form of learning.

The more, the merrier!

Cognitive Load TheoryNo!

A misguided advice!

Page 11: Anden information Michael E. Caspersen Workshop #3 @ SIGCSE 2011 Pedagogical Progressions for Teaching OOD Workshop #3 @ SIGCSE 2011 Pedagogical Progressions

Anden information

Michael E. CaspersenWorkshop #3 @ SIGCSE 2011

Pedagogical Progressions for Teaching OOD

Worked Examples

A Worked example (WE) is an instructional device that provide a problem solution for a learner to study.

WE include– a problem statement– a procedure for solving the problem

WE are meant to illustrate how other similar problems might be solved (prototypical examples).

The WE approach is particularly relevant to programs of instruction that seek to promote skills acquisition, e.g. music, chess, programming, problem solving, etc.

Page 12: Anden information Michael E. Caspersen Workshop #3 @ SIGCSE 2011 Pedagogical Progressions for Teaching OOD Workshop #3 @ SIGCSE 2011 Pedagogical Progressions

Anden information

Michael E. CaspersenWorkshop #3 @ SIGCSE 2011

Pedagogical Progressions for Teaching OOD

Selected CLT Effects

Worked Examples Effect (1985)Alternation of WEs and problems increase learning outcome and transfer.

Example Completion Effect (1992)Partially completed problems presented to learners are as effective as worked

examples and better than full problems.

Expertise-Reversal Effect (2003)Effects gradually disappear as students develop expertise. With further

expertise, effects reverse, i.e. learning outcome is reduced.

Guidance-Fading Effect (2003)Complete examples followed by partially completed examples followed by full

problems is superior to any of the three in isolation.

Page 13: Anden information Michael E. Caspersen Workshop #3 @ SIGCSE 2011 Pedagogical Progressions for Teaching OOD Workshop #3 @ SIGCSE 2011 Pedagogical Progressions

Anden information

Michael E. CaspersenWorkshop #3 @ SIGCSE 2011

Pedagogical Progressions for Teaching OOD

WE with Faded Guidance

represent “atomic” activities in the process of solving a task

represents a model approach to a solution

represents a novice’s attempt at a solution

Page 14: Anden information Michael E. Caspersen Workshop #3 @ SIGCSE 2011 Pedagogical Progressions for Teaching OOD Workshop #3 @ SIGCSE 2011 Pedagogical Progressions

Anden information

Michael E. CaspersenWorkshop #3 @ SIGCSE 2011

Pedagogical Progressions for Teaching OOD

Music Composition

Learning goal: Compose a piece of music in three “voices”

Give the melody, ask for the two additional voices.

...

Give the melody and most of the two additional voices; ask for the missing bar(s).

Page 15: Anden information Michael E. Caspersen Workshop #3 @ SIGCSE 2011 Pedagogical Progressions for Teaching OOD Workshop #3 @ SIGCSE 2011 Pedagogical Progressions

Anden information

Michael E. CaspersenWorkshop #3 @ SIGCSE 2011

Pedagogical Progressions for Teaching OOD

WE and Faded Guidance in Programming

3. In a lab session, the students use, modify, and extend both examples.

1. In a video, we present development of a program with two classes, Playlist and Track. P T*

2. In a lecture, we present (a partial) development of a similar example, say Account and Transaction.

A T*

4. In an exercise, the students extend the Playlist-Track example by adding an Image class.

P T*

I

*

5. In an assignment, the students implement a similar system of three classes, say Notebook, Note, and Keyword.

Nb N*

K

*

Page 16: Anden information Michael E. Caspersen Workshop #3 @ SIGCSE 2011 Pedagogical Progressions for Teaching OOD Workshop #3 @ SIGCSE 2011 Pedagogical Progressions

Anden information

Michael E. CaspersenWorkshop #3 @ SIGCSE 2011

Pedagogical Progressions for Teaching OOD

Generic Schema for Use of WEs

3. Let the students use, modify and extend one or both WEs in a lab session.

1. Present a complete WE in a pod- or pencast.

2. Present and discuss a partial WE in a lecture.

4. Let the students make a more elaborate extension to one of the WEs in a follow-up exercise.

5. Let the students solve a similar problem (same structure and problem solving approach, but different cover story) in a mandatory assignment.

Page 17: Anden information Michael E. Caspersen Workshop #3 @ SIGCSE 2011 Pedagogical Progressions for Teaching OOD Workshop #3 @ SIGCSE 2011 Pedagogical Progressions

Anden information

Michael E. CaspersenWorkshop #3 @ SIGCSE 2011

Pedagogical Progressions for Teaching OOD

The Three Takeaways

Worked examples are effective pedagogical tools

Pattern-oriented instruction as germane cognitive load

Use, modify, create is an effective generic principle of progression for instructional designs can be used simultaneously at different levels

Page 18: Anden information Michael E. Caspersen Workshop #3 @ SIGCSE 2011 Pedagogical Progressions for Teaching OOD Workshop #3 @ SIGCSE 2011 Pedagogical Progressions

Anden information

Michael E. CaspersenWorkshop #3 @ SIGCSE 2011

Pedagogical Progressions for Teaching OOD

Groupwork

Choose a technique or concept that the students must learn

Discuss how WE and faded guidance can be used to present key aspects of the technique

What could be appropriate stepping stones in the learning process?

Page 19: Anden information Michael E. Caspersen Workshop #3 @ SIGCSE 2011 Pedagogical Progressions for Teaching OOD Workshop #3 @ SIGCSE 2011 Pedagogical Progressions

Anden information

Michael E. CaspersenWorkshop #3 @ SIGCSE 2011

Pedagogical Progressions for Teaching OOD

Workshop #3 @ SIGCSE 2011

Pedagogical Progressions for Teaching Object-Oriented

Design

Learning Theory Background

and an example of

pedagogical progression for teaching OOD to novices

Bonus slid

es

Page 20: Anden information Michael E. Caspersen Workshop #3 @ SIGCSE 2011 Pedagogical Progressions for Teaching OOD Workshop #3 @ SIGCSE 2011 Pedagogical Progressions

Anden information

Michael E. CaspersenWorkshop #3 @ SIGCSE 2011

Pedagogical Progressions for Teaching OOD

Pattern-Oriented InstructionIn Programming

MotivationPatterns capture chunks of programming knowledge and skills.

Reinforces schema creation when cognitive load is “controlled” (increased germane cognitive load).

Design patternsAssociationObserverStrategy...

Algorithmic patternsfindOnefindAllfindBest (min, max, ...)...

Page 21: Anden information Michael E. Caspersen Workshop #3 @ SIGCSE 2011 Pedagogical Progressions for Teaching OOD Workshop #3 @ SIGCSE 2011 Pedagogical Progressions

Anden information

Michael E. CaspersenWorkshop #3 @ SIGCSE 2011

Pedagogical Progressions for Teaching OOD

import java.util.*;

bs = new ArrayList<B>();

private List<B> bs;

public void add(B b) { bs.add(b); } public void remove(B b) { bs.remove(b); }

Design Pattern: Association

A B*

class B { ...}

class A { ... // A fields public A() { ...

}

... // A methods

}

Page 22: Anden information Michael E. Caspersen Workshop #3 @ SIGCSE 2011 Pedagogical Progressions for Teaching OOD Workshop #3 @ SIGCSE 2011 Pedagogical Progressions

Anden information

Michael E. CaspersenWorkshop #3 @ SIGCSE 2011

Pedagogical Progressions for Teaching OOD

Associations All Over

Inbox * Email

Player * Playlist

Playlist * Track

Track * Picture

Album * Photo

Calendar * Appointment

DNA register * DNA string

DNA string * AminoAcidResidue

Presentation * Slide

Slide * SlideObjects

Animation * Picture

...

Page 23: Anden information Michael E. Caspersen Workshop #3 @ SIGCSE 2011 Pedagogical Progressions for Teaching OOD Workshop #3 @ SIGCSE 2011 Pedagogical Progressions

Anden information

Michael E. CaspersenWorkshop #3 @ SIGCSE 2011

Pedagogical Progressions for Teaching OOD

An Emerging Algorithmic Pattern

public List<Track> findAllByArtist(String artist) { List<Track> res= new ArrayList<Track>(); for ( Track t: tracks ) if ( t.getArtist().contains(artist) ) res.add(t); return res;}

public List<Photo> findAllAfter(Date d) { List<Photo> res= new ArrayList<Photo>(); for ( Photo e: photos ) if ( e.getDate().isLaterThan(d) ) res.add(e); return res;}

Page 24: Anden information Michael E. Caspersen Workshop #3 @ SIGCSE 2011 Pedagogical Progressions for Teaching OOD Workshop #3 @ SIGCSE 2011 Pedagogical Progressions

Anden information

Michael E. CaspersenWorkshop #3 @ SIGCSE 2011

Pedagogical Progressions for Teaching OOD

Algorithmic Pattern: findAll

public List<T> methodName(List<T> lst, additional params) { List<T> result= new ArrayList<T>(); for ( T e : lst ) { if ( criteria(e) ) { result.add(e); } } return result;}

1. Substitute concrete type for T2. Choose proper method name3. Choose appropriate additional parameters for the concrete criteria

Instantiation of pattern findAll

Page 25: Anden information Michael E. Caspersen Workshop #3 @ SIGCSE 2011 Pedagogical Progressions for Teaching OOD Workshop #3 @ SIGCSE 2011 Pedagogical Progressions

Anden information

Michael E. CaspersenWorkshop #3 @ SIGCSE 2011

Pedagogical Progressions for Teaching OOD

Time for Practicing...

“Make the students feel the pain”Erich Gamma, OOPSLA 2003

Sometimes a good motivation, but practice it with care…

Page 26: Anden information Michael E. Caspersen Workshop #3 @ SIGCSE 2011 Pedagogical Progressions for Teaching OOD Workshop #3 @ SIGCSE 2011 Pedagogical Progressions

Anden information

Michael E. CaspersenWorkshop #3 @ SIGCSE 2011

Pedagogical Progressions for Teaching OOD

Generic Method: findAll

public static <T>List<T> findAll(List<T> lst, Criteria<T> c) { List<T> result= new ArrayList<T>(); for ( T e : lst ) { if ( c.satisfiedBy(e) ) { result.add(e); } } return result;}

interface Criteria<T> { boolean satisfiedBy(T e);}

List<Person> persons= new ArrayList<Person>();class SeniorCriteria implements Criteria<Person> { ... }

findAll(persons, new SeniorCriteria());

Page 27: Anden information Michael E. Caspersen Workshop #3 @ SIGCSE 2011 Pedagogical Progressions for Teaching OOD Workshop #3 @ SIGCSE 2011 Pedagogical Progressions

Anden information

Michael E. CaspersenWorkshop #3 @ SIGCSE 2011

Pedagogical Progressions for Teaching OOD

Example of ProgressionAt several levels

First level Use, modify and extend various A -->* B problems

(practicing the association pattern with lists and iterations)

Algorithmic patterns: findAll, findBest, ...

Second level Use generic methods min/max to realize findBest Present generic method for findAll Modify findAll... Create generic methods for other algorithmic patterns

Page 28: Anden information Michael E. Caspersen Workshop #3 @ SIGCSE 2011 Pedagogical Progressions for Teaching OOD Workshop #3 @ SIGCSE 2011 Pedagogical Progressions

Anden information

Michael E. CaspersenWorkshop #3 @ SIGCSE 2011

Pedagogical Progressions for Teaching OOD

Algorithmic Pattern: findBestUsing Generic MethodsFinding a “best” object in a collection/list

• best rated track• shortest track• ...

Collections:- T min(Collection<T> c)- T max(Collection<T> c)

Natural order...

interface Comparator<T> { int compare(T a, T b);}

List<Track> tracks= new ArrayList<Track>();class RatingComparator implements Comparator<Track> { ... }

Collections.max(tracks, new RatingComparator());

An optimization problem