Instructional Design of a Programming Course A Learning Theoretic - - PowerPoint PPT Presentation

instructional design of a programming course
SMART_READER_LITE
LIVE PREVIEW

Instructional Design of a Programming Course A Learning Theoretic - - PowerPoint PPT Presentation

Instructional Design of a Programming Course A Learning Theoretic Approach Michael E. Caspersen Jens Bennedsen ICER 07, Atlanta, 15-16 September 2007 U N I V E R S I T Y O F A A R H U S Department of Computer Science Calibration of


slide-1
SLIDE 1

Instructional Design of a Programming Course

U N I V E R S I T Y O F A A R H U S Department of Computer Science

Michael E. Caspersen Jens Bennedsen  A Learning Theoretic Approach

ICER ’07, Atlanta, 15-16 September 2007

slide-2
SLIDE 2

2

Calibration of Expectations ;-)

Reviewers’ Comments (excerpt)

Does the paper have a clear theoretical basis? 5: Very clear and strong, well-documented with citations What it is This work presents our attempt at improving (the instructional design of) an introductory programming course by incorporating selected results of cognitive science and learning theory. Consider it a first step... Does the paper have a strong empirical basis? 1: No data collected

slide-3
SLIDE 3

3

Theses and Research Question

Research Questions What is the foundation in learning theory that supports (or contradicts) the theses above? Theses Revealing the programming process to novices eases and promotes the learning of programming. Teaching skill as a supplement to knowledge promotes the learning of programming.

slide-4
SLIDE 4

4

Agenda

Background Motivation, model-based programming, course context Learning-Theoretic Foundation Cognitive (architecture, load theory, and apprenticeship) Pattern-Based Instruction Direct injection of cognitive schemas Instructional Design Macro and micro perspective Conclusion Future work, evaluation, how? Discussion...

slide-5
SLIDE 5

5

Agenda

Background Motivation, model-based programming, course context Learning-Theoretic Foundation Cognitive (architecture, load theory, and apprenticeship) Pattern-Based Instruction Direct injection of cognitive schemas Instructional Design Macro and micro perspective Conclusion Future work, evaluation, how? Discussion...

slide-6
SLIDE 6

6

Grand Challenges in Computing (GCC ’04) Education and Research Newcastle upon Tyne 29-31 March 2004

Grand Challenges in Computing

Perception of computing

Promote an improved and ultimately very positive public image of computing, ensuring that public gains respect for the field and the professionals who practice within it.

Innovation

Provide simpler models of computing as a discipline and have this reflected in a better mix of high quality computing courses that genuinely accommodates a broad spectrum of student ability and interest

Competencies

Ensure that the quality of computing skills and competence are recognized as important by graduates throughout their career, and put in place an infrastructure to provide support and guidance on a career-long basis.

Formalism

Ensure that students of computing see relevant mathematics and formalism in a very positive light, as providing support, guidance and illumination.

About e-learning

Establish e-learning as a credible, viable complement to face-to-face education.

Pre-university issues

Rationalize the situation at the pre-university level and direct it towards the promotion of computing to would-be students of computing. Create for students a smooth transition from school to university by enthusing and informing potential students and by creating a positive influence affecting pre-university computing.

Programming issues

Understand the programming process and programmer practice to deliver effective educational transfer

  • f knowledge and skills.
slide-7
SLIDE 7

7

GCE 4: Programming Issues

“The particular concern is that, after more than forty years of teaching an essential aspect of

  • ur discipline to would-be

professionals, we cannot do so reliably.” “Indeed, there are perceptions that the situation has become worse with time.”

A Summary

1. Incorporate the results of psychological studies into our curricula and textbooks. 2. Establish student aptitude for programming. 3. Understand the programming process and programmer practice to deliver effective educational transfer of knowledge and skills. 4. Encourage students to practice programming. 5. Establish assessment methods that assess individual programming competency effectively.

slide-8
SLIDE 8

8

Failure Rates

41% 2,653 17 Non US 33% 5,513 54 Total

  • Avg. fail rate

Students Universities Average failure rate for introductory programming courses Many European universities reported failure rates of more than 50%. The maximum failure rate reported was 95% Internal report of community colleges in a coalition to improve their retention rates in computing: One school reported an avg. failure rate over a ten year period of 90%!

slide-9
SLIDE 9

9

Programming Education Research

Over the past 25 years, study after study, even multi- institutional and multi-national studies, have provided empirical evidence that students cannot program and that the major problems they experience are composition- based how to put the pieces together. It is not syntax! We have a long-standing problem of international scale, which we are aware of, and yet we persist to teach programming primarily by explaining language constructs and show-casing finished programs even though it is procedural knowledge and strategies for putting the pieces together, that is needed! From language issues to programming skills

slide-10
SLIDE 10

10

In Short...

“Houston, we have a problem!”

slide-11
SLIDE 11

11

Course Description

Aims: The participants will after the course have insight into principles and techniques for systematic construction of simple programs and practical experience with implementation of specification models using a standard programming language and selected standard classes. Goals: Upon completion the participants must be able to apply fundamental constructs of a common PL identify and explain the architecture of a simple program identify and explain the semantics of simple specification models implement simple specification models in a common PL apply standard classes for implementation tasks. Evaluation: Each student is evaluated through a practical examination where the student solves a simple programming task.

7 weeks (a quarter) 1/3 of the students time 4 lecture hours per week 4 lab hours per week (pair programming) Weekly mandatory assignment (individual) ~ 400 students per year (mixed group) ~ 20 TAs

slide-12
SLIDE 12

12

Programming as a Modeling Process

Conceptual Model Problem/vision Specification Model Implementation Model Analysis Implementation Design

Reference System Model System The process involves identification of concepts and phenomena in the referent system and representation of these in the model system. The process consists of three subproceses: Abstraction in the model system (implementation) Abstraction in the referent system (analysis) Modeling (design) No Particular ordering is imposed on the subprocesses.

slide-13
SLIDE 13

13

General Approach

Model-Based Programming tasks starts from a specification model. The specification model is expressed as a class model with functional specifications of all methods. Progression Models become increasingly complex during the course. Associated systematic programming techniques (at three levels). Language issues are covered “by need”. Programming Techniques Inter-class structure: Standard coding patterns for the implementation of relations between classes Intra-class structure: Class invariants and techniques for evaluating these Method structure: Algorithmic patterns and loop invariants.

slide-14
SLIDE 14

14

Course Progression

Conceptual model Problem/vision Specification model Implementation model Analysis Implementation Design

Problem domain Model

slide-15
SLIDE 15

15

Model-Based Progression

A Stand-alone class Shape, Crayon, Person, Die, Date, Heater, Account, ... A Simple association and composition B A B

2 2

DieCup, ClockDisplay, ... A Recursive Association

0..1

A

*

Person (lover and fiancee), Person (friends) Animal (parents, brood), ... A Association (to another class) B A B

* 0..1

Car-Person (isOwnedBy), Track-Playlist (contains) Implementing an interface A B

*

I Comparable and Comparator Use of Collections.sort(), etc.

slide-16
SLIDE 16

16

Agenda

Background Motivation, model-based programming, course context Learning-Theoretic Foundation Cognitive (architecture, load theory, and apprenticeship) Pattern-Based Instruction Direct injection of cognitive schemas Instructional Design Macro and micro perspective Conclusion Future work, evaluation, how? Discussion...

slide-17
SLIDE 17

17

The Human 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 knowledge structures called schemas stored in LTM. Learning Memory structures that permit us to treat a large amount of information elements as one. Schemas

slide-18
SLIDE 18

18

Cognitive Load Theory

Cognitive load: the load on working memory during problem solving, thinking, reasoning, ... Cognitive load theory: a universal set of learning principles that are proven to result in efficient instructional environments as a consequence of leveraging human cognitive learning processes The fundamental axiom of CLT: that learning outcome is

  • ptimized when cognitive load fully utilizes the capacity of

working memory with elements that allow for optimal schema acquisition

slide-19
SLIDE 19

19

Three Categories of Cognitive Load

  • 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

Learning

  • utcome

Cognitive load

L = I + E + G

Optimize learning: minimize E maximize G

slide-20
SLIDE 20

20

Selected CLT Effects

Worked examples effect Alternation of worked examples and problems increase learning

  • utcome and transfer.

Variability effect Worked examples with high variability increase cognitive load and learning provided that intrinsic cognitive load is sufficiently low. Guidance-fading effect Complete examples followed by partially completed examples followed by full problems is superior to any of the three used in isolation.

slide-21
SLIDE 21

21

Cognitive Apprenticeship

The theory of cognitive apprenticeship holds that masters of a skill often fail to take into account the implicit processes involved in carrying out complex skills when teaching novices. Modeling Scaffolding Fading Coaching Give models of expert performance. Support given by the master to carry out a a task. The master gradually pulls back leaving the responsibility for performing the task more and more to the apprentice The entire process of apprenticeshipoverseeing the process of learning.

slide-22
SLIDE 22

22

Agenda

Background Motivation, model-based programming, course context Learning-Theoretic Foundation Cognitive (architecture, load theory, and apprenticeship) Pattern-Based Instruction Direct injection of cognitive schemas Instructional Design Macro and micro perspective Conclusion Future work, evaluation, how? Discussion...

slide-23
SLIDE 23

23

Pattern-Based Instruction

Motivation Patterns capture chunks of programming knowledge and skills. Reinforces schema creation when cognitive load is “controlled” (+germane cognitive load). (Cognitive science and educational psychology) Origin Ideas similar to pattern-based instruction can be traced back to Mayer (1981), Soloway (1986), Rist (1989), Linn & Clancy (1992). East et al. (1996) and Wallingford (1996) were among the first to accept the challenge put forward by Soloway. Soon, others followed, e.g. Astrachan et al. (1997, 1998), Reed (1998), Bergin (2000).

slide-24
SLIDE 24

24

Patterns at Two Levels

Inter-class structure Standard coding patterns for the implementation of relations between classes. Intra-class structure Class invariants and techniques for evaluating these. Method structure Algorithmic patterns, elementary patterns and loop invariants. Association pattern Aggregation pattern Specialization pattern Sweep pattern Search pattern Divide, solve, and combine ...

slide-25
SLIDE 25

25

Association Pattern

B A

*

class A { ... // A-fields public A() { ... } ... // A-methods } class B { ... } import java.util.*; bs = new ArrayList(); private List bs; public void add(B b) { bs.add(b); } public void remove(B b) { bs.remove(b); }

slide-26
SLIDE 26

26

Sweep Pattern (findOne)

class B {} class A { ... private List<B> bs; public B findOneX() { B res= bs.get(0); for ( B b : bs ) { if ( “b is a better X than res” ) { res= b; } } return res; } }

slide-27
SLIDE 27

27

Inductive vs. Deductive

Inductive Patterns are “discovered” by the students after N examples. Deductive Patterns are presented up-front and students are asked to apply them to N examples.

slide-28
SLIDE 28

28

Agenda

Background Motivation, model-based programming, course context Learning-Theoretic Foundation Cognitive (architecture, load theory, and apprenticeship) Pattern-Based Instruction Direct injection of cognitive schemas Instructional Design Macro and micro perspective Conclusion Future work, evaluation, how? Discussion...

slide-29
SLIDE 29

29

Principles of Programming Education

Practice consume before produce Present worked, exemplary examples Reinforce patterns and conceptual frameworks ...

5 4 3 Create 4 3 2 Extend 1 1 1 Use Model Class Method

Allows more interesting things to be done. Helps separate spec and impl. Applies at many levels (code specification, class libraries, design patterns, frameworks, ...)

slide-30
SLIDE 30

30

Course Phases

(1) Getting started: Overview of fundamental concepts. Learning the IDE and other tools. (2) Learning the basics: Class, object, state, behaviour, control structures. (3) Conceptual framework and coding recipes: Control structures, data structures (collections), class relationship, recipes for implementing structure (class relations). (4) Programming method: The mañana principle, schemas for implementing functionality. (5) Subject specific assignment: Practice

  • n harder problems.

(6) Practice: Achieve routine in solving standard tasks. Method extend Method create Class extend Method use Class create Class create Class create

Reduce extraneous CL Increase germane CL (patterns) Cognitive apprenticeship (to reveal process) Worked examples and faded guidance Cognitive skill acquisition and automation

slide-31
SLIDE 31

31

Faded Guidance and Cognitive Apprenticeship

  • 3. A lab session follows where the students interact with,

modify, and extend both examples.

  • 1. In a lecture we present an example of development of a

program with two classes, Playlist and Track.

P T *

  • 2. A video presentation of a partial development of a similar

example (say Account and Transaction) is made available.

A T *

  • 4. A follow-up exercise is provided where the students

extend the Playlist-Track example by adding an Image class.

P T * I *

  • 5. In the following week we give a mandatory assignment

where the students implement a system of three classes, say Notebook, Note, and Keyword.

Nb N * K * W

  • r

k e d e x a m p l e s w i t h h i g h v a r i a b i l i t y i n c r e a s e c

  • g

n i t i v e l

  • a

d a n d l e a r n i n g p r

  • v

i d e d t h a t i n t r i n s i c c

  • g

n i t i v e l

  • a

d i s s u f f i c i e n t l y l

  • w

. V a r i a b i l i t y e f f e c t

slide-32
SLIDE 32

32

Agenda

Background Motivation, model-based programming, course context Learning-Theoretic Foundation Cognitive (architecture, load theory, and apprenticeship) Pattern-Based Instruction Direct injection of cognitive schemas Instructional Design Macro and micro perspective Conclusion Future work, evaluation, how? Discussion...

slide-33
SLIDE 33

33

Conclusion

Instructional Design of a Programming Course Based upon results of cognitive science and educational psychology. Model- and pattern-based approach. Progression defined by complexity of specification models. Focus on skill development rather than just knowledge. Objects-First Debate Heated debate (SIGCSE mailing list, symposium, ...) Formal Evaluation of our Approach Be my guest! ;-)

slide-34
SLIDE 34

Instructional Design of a Programming Course

U N I V E R S I T Y O F A A R H U S Department of Computer Science

Jens Bennedsen Michael E. Caspersen  A Learning Theoretic Approach

ICER ’07, Atlanta, 15-16 September 2007

slide-35
SLIDE 35

35

Sample Final Exam Assignment

Playlist

String playlistName void addTrack(Track t) void removeTrack(Track t) Track findShortestTrack() void printTracks()

*

Track

String artist String songName int min int sec String toString()

Driver

void exam() 1. Create a simple class Track ... with constructor and a toString method… 2. Create a test method… 3. Create two instancies… 4. Create a new class Playlist ... 5. Implement the methods addTrack and removeTrack 6. Modify the test method to create a Playlist object… 7. Implement the method findShortestTrack 8. Modify the test method to use the findShortestTrack method to… 9. Let the Track class implement the Comparable interface…

  • 10. Implement the method

printTracks and modify ...