Student Profile Sample - We help schools to connect the data they have, with ...
Pedagogical patterns for learning programming by mistakes (presentation) (1)
1. Ljubomir Jerinić
Faculty of Science
Department of Mathematics and Informatics
Chair of Computer Science
Email: ljubomir.jerinic@dmi.uns.ac.rs
2. Learning Programming
Programming is hard. It's the process of telling a bunch of
transistors to do something, where that something may
be very clear to us fuzzy humans, with all our built-in
pattern matching, language processing, and existing
knowledge, but really, horrifically, tediously difficult to
communicate to a bunch of dumb transistors.
Dethe Elza
2
3. Starting point…
Pedagogy, the art of teaching, under various names, has been adopted by the
academic world as a respectable and an important field. The art of learning
is an academic orphan. One should not be mislead by the fact that libraries
of academic departments of psychology often have a section marked
“learning theory.” The older books under this heading deal with the activity
that is sometimes caricatured by the image of a white-coated scientist
watching a rat run through a maze… newer volumes are more likely to be
based upon the theories of performance of computer programs than on the
behavior of animals… but… they are not about the art of learning… they do
not offer advice to the rat (or to the computer) about how to learn.
Seymour Papert,
The Children’s Machine
Seymour Papert (1993). The Children’s Machine: Rethinking School in the Age of the Computer, Basic Books: New York.
3
4. Genetic Epistemology (J. Piaget)
So…
Gestalt Theory (M. Wertheimer)
GOMS (Card, Moran & Newell)
General Problem Solver (A. Newell & H. Simon)
Learning Theories: Information Pickup Theory (J.J. Gibson)
Information Processing Theory (G.A. Miller)
ACT-R (John Anderson)
Lateral Thinking (E. DeBono)
Adult Learning Theory (P. Cross)
Levels of Processing (Craik & Lockhart)
Algo-Heuristic Theory (L. Landa)
Mathematical Learning Theory (R.C. Atkinson)
Andragogy (Malcolm Knowles)
Mathematical Problem Solving (A. Schoenfeld)
Anchored Instruction (John Bransford) Minimalism (J. M. Carroll)
Aptitude-Treatment Interaction (L. Cronbach & R. Snow) Model Centered Instruction and Design Layering (Andrew Gibbons)
Attribution Theory (B. Weiner) Modes of Learning (D. Rumelhart & D. Norman)
Cognitive Dissonance Theory (L. Festinger) Multiple Intelligences (Howard Gardner)
Cognitive Flexibility Theory (R. Spiro) Operant Conditioning (B.F. Skinner)
Cognitive Load Theory (J. Sweller) Originality (I. Maltzman)
Component Display Theory (M. David Merrill) Phenomenonography (F. Marton & N. Entwistle)
Repair Theory (K. VanLehn)
Conditions of Learning (Robert Gagne)
Script Theory (Roger Schank)
Connectionism (Edward Thorndike)
Sign Theory (E. Tolman)
Constructivist Theory (Jerome Bruner)
Situated Learning (J. Lave)
Contiguity Theory (Edwin Guthrie)
Soar (A. Newell et al.)
Conversation Theory (Gordon Pask) Social Development (L. Vygotsky)
Criterion Referenced Instruction (Robert Mager) Social Learning Theory (A. Bandura)
Double Loop Learning (C. Argyris) Stimulus Sampling Theory (W. Estes)
Drive Reduction Theory (C. Hull) Structural Learning Theory (J. Scandura)
Dual Coding Theory (A. Paivio) Structure of Intellect (J. Guilford)
Elaboration Theory (C. Reigeluth) Subsumption Theory (D. Ausubel)
Experiential Learning (C. Rogers) Symbol Systems (G. Salomon)
Triarchic Theory (R. Sternberg)
Functional Context Theory (Tom Sticht)
Transformational Theory (J. Mezirow)
4
5. … and…
•“We” chose: Active learning with Constructivist Theory (Jerome
Bruner) with a goal to prepare student to solve “real world”
problems…
•Constructivism - A philosophy masquerading as a theory. A way of
looking at the world that says that people construct their view of the
world based on their previous experiences. People construct their
own unique knowledge from raw materials. A teachers have to
provide, that:
• Instruction must be concerned with the experiences and
contexts that make the student willing and able to learn
(readiness).
• Instruction must be structured so that it can be easily grasped
by the student (spiral organization).
• Instruction should be designed to facilitate extrapolation and
or fill in the gaps (going beyond the information given).
5
6. … and…
What about teachers?
1. Create real-world environments that employ the context in which
learning is relevant;
2. Focus on realistic approaches to solving real-world problems;
3. The instructor is a coach and analyzer of the strategies used to solve
these problems;
4. Stress conceptual interrelatedness, providing multiple representations
or perspectives on the content;
5. Instructional goals and objectives should be negotiated and not
imposed;
6. Evaluation should serve as a self-analysis tool;
7. Provide tools and environments that help learners interpret the
multiple perspectives of the world;
8. Learning should be internally controlled and mediated by the learner.
9. Teachers serve in the role of guides, monitors, coaches, tutors and
facilitators…
6
7. … the goal is…
Our goal is to transform how children learn,
what they learn, who they learn from.
Mitchel Resnick,
A Media Lab for Kids
Resnick, M. A Media Lab for Kids: $27 Million from Isao Okawa Creates Center for Future
Children at MIT, MIT News, November 18, 1998.
7
8. Teaching Programming
From my point of view, few textbooks treat methodological skills
of teaching programming appropriately. They teach programs, not
programming. They focus largely on knowledge, not skill. Indeed, I
would claim that computer scientists in general do not think much
about the programming process and have little idea about how to
teach programming.
David Gries
Computer Science
Cornell University
Gries, D., and P. Gries. Multimedia Introduction to Programming Using Java. Springer Verlag, NY. 2005.
8
9. Experience at DMI Novi Sad…
•“Usage Computer in Education” (in CS) started in 1987 at Institute
of Mathematics (now Department of Mathematics and Informatics)
– OSOF: LEA, TEA & EXA (Paunic Dj., Budimac Z., Ivanovic M.,
Jerinic Lj., Putnik Z., etc.
•Later, research went in different ways:
•CAI, CAL, CBE, CBL, CMI, ITS, ILE…
•EduSof, GetBits, Svetovid
•eEducation = eTeaching + eLearning
•Pedagogical Agents
•Web Based Education – Ontology approach, etc.
•Pedagogical Patterns…
together with “new” people (Devedzic V., Vesin S., Radovic D.,
Lomic M., Komlenov Z,, Pribela I. etc.
9
10. Problem Statement...
• Learning (teaching) IT and CS is hard – how to learn (teach) IT
and / or CS?
• Problem with small number of candidates for CS and IT, as well
as drop-out problem from CS and IT courses in USA, Finland,
Australia, etc. at the University level – why?
• Where to put learning of elementary knowledge about CS and IT
(organization level) for non specialist?
• Where to start in CS and IT learning (teaching), on secondary or
primary level of Education?
• What is the bottom line (minimum knowledge) on knowledge
that student have to bring to University?
• OO First?
10
11. In Serbia
In Serbia Educational reform is on 2/3 of long, long way…
(?)
We have done reform at the University education and
Primary (?)
IT and CS are put in Primary education, i.e. the students
learn basic of IT from 6-th grade (obligatory course as a
part of Technical education) and elementary programming
(as the elective course in 6, 7 and 8 grade)
In Secondary level the reform is stopped for now so… we
don’t know what will be.
11
12. The Goal Of Research
To investigate Pedagogical Patterns approach (Pedagogical
Patterns Project Home:
www.pedagogicalpatterns.org, Bergin, J., Fourteen
Pedagogical Patterns.
http://csis.pace.edu/~bergin/PedPat1.3.html)
Try to find out new ones
And to modify and explore the existing Patterns in a sense
of their Instances for teaching Elementary programming
12
13. Terminology…
The American Educational Research Association (AERA) has classified the
field of educational research into 12 divisions that represent broad
substantives or professional interests.
However, some fields were not given such an independent status. For
example, the philosophy of education did not exist as its own field of a
classification title level.
In addition, continental Europe (without Great Britain) researchers have
understood didactics slightly differently than Anglo-American
researchers. In Anglo-American countries didactics was found in under
several division titles such as Curriculum Studies, Learning and
Instruction, and School Evaluation & Program Development ("12
divisions within AERA", Retrieved January 24, 2011 from
http://www.aera.net/divisions/Default.aspx?menu_id=62&id=179
13
14. Terminology…
The difference in classification and emphasis of subfields in the
Continent and the America is a matter of different cultures that have
their own philosophical and political roots. Uljens ("On General
Education as a Discipline", Studies in Philosophy and Education, 20, 291-
301. pp. 295, 2001), for example, stated that “From an American
perspective it may seem odd to have several sub-disciplines in
education. From a Nordic perspective again it is odd that education is
not an autonomous discipline at every American university, but is
instead conceived of as a ‘a field of research’.”
Methodic of CS (IT) ??? (I do not find yet!!! I find
Didactics, Pedagogy, Subject-matter Didactics , Education of CS /
Computing / IT / ICT edt.)
14
15. So…
Education (Pedagogy)
Didactics
Methodic
Subject-matter Didactics
(Computing Education
Didactics)
CS IT
etc.
15
16. Pedagogical Patterns
Pedagogical patterns, like all patterns, attempt to capture
expert practice.
In this case it is the practice of experienced teachers, both in
academia and in industrial settings.
The pedagogical patterns project [Pedagogical Patterns
Project Home: www.pedagogicalpatterns.org] is working on
collecting many types of patterns that can help teachers
teach and students learn.
16
17. Examples…
Learning by (on) mistakes is very fine teaching techniques or teaching method
generally speaking. In teaching Computer Science, Informatics, Information
Technologies, and similar disciplines based on technique or technologies, and it is
used very often. Joseph Bergin (Fourteen Pedagogical Patterns.
http://csis.pace.edu/~bergin/PedPat1.3.html) proposed couple of general
Pedagogical Patterns which are directly involved in learning by mistake method of
learning, with special implications in usage of them in teaching CS1 and CS2
courses.
Mistake - Students are asked to create an artifact such as a program or design that
contains a specific error. Use of this pattern explicitly teaches students how to recognize
and fix errors. We ask the student to explicitly make certain errors and then examine the
consequences.
Grade It Again Sam - To provide an environment in which students can safely make
errors and learn from them, permit them to resubmit previous assignments for
reassessment and an improved grade.
17
18. …Examples…
A couple of Composite Pedagogical:
Design-Do-Redo-Redo (DDRR) - pattern by Marcelo Jenkins [Pedagogical Pattern #13:
Design-Do-Redo-Redo (DDRR) Pattern, http://sol.info.unlp.edu.ar/ppp/pp13.htm], used
in teaching Object-Oriented Programming (OOP) to senior students based on a multi-
language approach. The idea is to teach OOP concepts such as
encapsulation, abstraction, and polymorphism, independently of the OOP language used.
To do that, a Design-Do-Redo-Redo (DDRR) pattern is used, in which students design an
OOP solution to a programming assignment and then implement it in three different
languages. They have to elaborate differences and possible errors.
Design-Implement-Redesign-Re-implement (DIRR) – pattern by Richland, Kornell
and Kao [The Pretesting Effect: Do Unsuccessful Retrieval Attempts Enhance Learning?
Journal of Experimental Psychology: Applied, 2009, Vol. 15, No. 3, 243–257.]. The pattern
could be used to bridge the gap from an old paradigm to a new paradigm (from procedural
to object-oriented), emphasizes common programmers mistakes when they tried to
“compile” solutions form procedural point of view to object-oriented directly, for example.
18
19. … and Examples…
And the nice one:
Icky Poo - pattern by Joseph Bergin and Owen Astrachan. You want to
teach a topic in a way that the students will never forget it. You want a very
dramatic demonstration of some idea. Students often forget details of
abstract concepts and confuse similar concepts. Analogies are a good way
to prevent this if the analogy is close to the concept being taught and the
student can quickly make appropriate associations when the details are
required. Dramatic, visible, and unexpected demonstrations are
remembered. If they are also good analogies, then the students will carry
important and unforgettable lessons. Therefore use a physical device, such
as a toy, that has some of the characteristics of the concept being taught.
Give a very vivid classroom demonstration of its use.
Astrachan uses a toy called Icky Poo ™ to illustrate many of the important
concepts of C++ pointers. The toy is a sticky plastic that will stretch 20 times its
length. It comes in the form of a snake. When you hold one end and "whap" the
other against a surface it sticks. If the surface is a lightweight piece of paper, the
object can be retrieved. Pieces of paper form the heap (free store). Calling new
(whapping the Icky Poo against a piece of paper) retrieves it. Calling dispose
detaches all Icky Poo snakes from it.
19
20. … and Examples.
Or, Michael Clancy originated a very vivid
parameter passing exercise that demonstrates
the concept of a parameter and the
difference between value and reference
parameters. Astrachan has adapted this as
well. Frisbees™ are passed between caller and
called function. The Frisbee represents a
variable and has a name and a value written
on it with a grease pen (Post-It™ notes can be
used as well). In a reference variable, any
change in the variable is written directly on
the Frisbee. In a value parameter, the
original value is written on the Frisbee, but
the Frisbee is bagged in a transparent bag
before being passed. Any change by the
called function is written on the bag.
Therefore the original value is not affected.
20
21. My Examples…
Pedagogical Pattern: Wolf, Wolf, Mistake
Topic which is taught is divided into smaller pieces called subtopics or fragments.
Fragments are introduced step by step. The goal of the topic is to show usage of
these fragments in solving certain problems. After the whole material is
presented, some examples of implementation these fragments (or the methods based on
them) are shown to the students. They have active participation in constructing the
solutions. At the end, an artifact such as a program, object and/or design, with a
particular error has been realized. Lecturer knows that mistake is made, but say
nothing about that. At the end of the class lecturer just says that all examples have to be
tested and verified as homework assignment. Next time, lecturer asks students do they
found something in their homework assignments. Lecturer is interested about their
opinions on the correctness of the solution that he presented last time. Students should
explain the nature and possible consequences of the error, if they were find the mistake at
all. Lecturer just conducts the discussion. Using this form, students learn how to
recognize specific errors of construction and design, as well as the importance of testing
software.
21
22. Pedagogical Pattern Language
PROBLEM / ISSUE
AUDIENCE / CONTEXT
FORCES
SOLUTION
DISCUSSION / CONSEQUENCES / IMPLEMENTATION
SPECIAL RESOURCES
RELATED PATTERNS
EXAMPLE / INSTANCES
CONTRAINDICATIONS
REFERENCES
22
23. Example of PPL…
EXAMPLE / INSTANCES (for Pedagogical Pattern: Wolf, Wolf, Mistake)
This pattern could be used effectively in teaching some introductory CS course. If you wish to
teach the students about importance of analyzing the boundary cases in program design, and
why the testing software is not an easy job, you may use this pattern.
For example, the pattern was used in Basic of Computer Literacy course for non-professionals
(like students with major in Geography) at the University of Novi Sad. Topic on data types
and potential problems with them (such as division by zero for numbers, for example) was
taught at the beginning of the course. After a while, branching and control structures were
done, and their usage in solving some problems is presented. The students together with
lecturer solve some problem using these branching and control structures. The
lecturer conducted the output. But, the “hidden” special case is not seen by students,
i.e. for the particular data entry the program could crushed. They miss to observe the
case which leads in dividing by zero. This case lecturer "wisely" ignore in the analysis of the
task. Next class, students still did not notice the mistake, and lecturer admitted his “sin”, and
explains the reason and consequences of mistake. Couple weeks later, students get the
assignment very similar to previously, but in some other context. They all do the
assignment without a single mistake.
23
24. Feedback
----- Original Message -----
From:* Jutta Eckstein <mailto:jutta-eckstein@t-online.de>
To:* Ljubomir Jerinic <mailto:jerinicl@eunet.rs>
Sent:* Thursday, February 10, 2012 10:41
Subject:* Re: Question
Hi Ljubomir,
thanks for sending me your pattern. This looks really good, I think you should send it to one
of the PLoP conferences (EuroPLoP, PLoP, or any other xPLoP). The main thing I have been
wondering when reading your pattern, was if this pattern doesn't depend on a specific
culture? You talk already about students taking the professor's opinion for granted, however
e.g. in China or India the professor might even lose his face using this pattern... Maybe you
want to add something along those lines to the contraindications or consequences?
However, your pattern is really up for being presented at a PLoP conference!
All the best,
Jutta
24
25. Further Work…
How to Teach Elementary Programming Course (the
whole approach)?
Spiral and / or Semiotic Ladder are dominant, but
are they good enough?
Approach Stepwise Improvement, or the
modification, known as Stepwise Refinement, have
been modified (by us) with FINE TUNNING.
The choice of first Programming Language, the AP
Courses, CS ZIRO, Scandinavian Model of
variables, etc.
25
26. Something Interesting…
Transforming High School Computer Science: CS /
10,000 Project
(For further information, contact Jan Cuny, Program
Officer for Broadening Participation in
Computing, National Science Foundation
(jcuny@nsf.gov, 703-292-8489).)
26
27. Something Interesting…
If we are to build a globally competitive 21st century workforce and maintain our
leadership in IT innovation, there is no stage in the academic pipeline more
crucial than high school. It is true that students begin to lose interest in
computing much earlier, probably in grades 4-5. Yet engagement programs for
middle school students will not be effective if those students have no further
opportunities during their four years of high school. Likewise, new and reinvigorated
college computing programs cannot have a significant impact if there are too few
interested and qualified students to show up at their doors. There are clear indications
that college programs are already impacted. Since 2000, the percentage of
incoming college freshman who intend to major in computing has decreased
more than 70%; for women, the figure is closer to 80%. While some universities
believe this trend may be leveling off or even turning around, the HERI data – a survey
of incoming college freshman which has been extremely accurate in predicting degree
attainment after four years – declined still further in 2008, with just 1% of students
intending to major in computing.
27
28. Something Interesting…
The AP CS is a rigorous college preparatory course; however, nationally only 2000 computing
teachers have passed the AP audit, indicating that it is being taught in less than 10% of our
high schools. Even that course is not optimal: it is programming-centric; it is inaccessible to
students with no prior experience; it does not focus on the fundamental concepts of computer
science or computational thinking; and it does little to teach the breadth of application or
“magic” of computing. Consequently, the AP CS A test was taken by only 14,529 students in
2008, as compared to the 204,564 who took the Calculus AB exam, the 141,321 who took the
Biology exam, or the 96,282 who took the Statistics exam.
AP CS A also had the worst gender balance of any of the AP tests. Just 18.3% of the CS AP test
takers were women in comparison to the Calculus AB test, where 48.7% were women, or
Statistics, where 50.2% were women. Only 11.8% of the AP CS A, test takers were
underrepresented minorities. Clearly, high school computing needs to change. We are
serving too few of our students well. We propose:
CS/10,000 Project Goal: To develop an effective new high school curriculum for
computing, taught in 10,000 high schools by 10,000 well-qualified teachers by 2015.
28
29. … At the End
Our goal is to transform how children learn, what they learn, who they learn
from.
Mitchel Resnick,
A Media Lab for Kids
Resnick, M. A Media Lab for Kids: $27 Million from Isao Okawa Creates Center for Future Children at MIT, MIT News, November
18, 1998.
The goal (of all teachers and researchers) have to be to transform how
children learn, what they learn, who they learn from, to reach the
utopian Summerville way of learning and teaching.
29
30. The End… Replace children with students and
parents with teachers in:
Teach your children well, Teach your parents well,
Their father's hell did slowly Their children's hell will
go by, slowly go by,
And feed them on your And feed them on your
dreams dreams
The one they picked, the one The one they picked, the
you'll know by. one you'll know by.
Don't you ever ask them Don't you ever ask them
why, if they told you, you why, if they told you, you
would cry, would cry,
So just look at them and sigh So just look at them and
and know they love you. sigh and know they love
you.
Who sing this song?
30