A programming environment
                     supporting a prototype-based
                         introduction to OOP



martes 23 de agosto de 2011
CONTEXT

                     First OOP course
                     Previous knowledge in structured
                     programming (PASCAL)
                     Tight schedule



martes 23 de agosto de 2011
PROBLEM


                     Paradigm shift
                     A lot of new “stuff” to learn in order to
                     get a first working program




martes 23 de agosto de 2011
EXAMPLE IN JAVA




martes 23 de agosto de 2011
EXAMPLE IN SMALLTALK




martes 23 de agosto de 2011
MOTIVATION

             Focus on:

                     Messages
                     Objects
                     Rich interaction between them
                     Polymorphism

martes 23 de agosto de 2011
SOLUTION


                     Start with a custom programming
                     environment
                     Delay the introduction of classes and
                     inheritance



martes 23 de agosto de 2011
WHAT ABOUT SELF?




martes 23 de agosto de 2011
WHAT ABOUT SELF?


                     Traits, prototypes, parent slots, etc.
                     GUI is not familiar to the students




martes 23 de agosto de 2011
FEATURES

                     Definition and usage of objects
                     Multiple object environments
                     Live object diagrams
                     Explicit diferentiation between objects
                     and references


martes 23 de agosto de 2011
EXAMPLE IN LOOP




martes 23 de agosto de 2011
TOWARDS CLASSES
                     saphira >> eat: aThing
                       self weight: self weight + aThing weight.


                      arthur >> weight
                        ^yearsInThrone * 666


                       daisy >> weight
                         ^732




martes 23 de agosto de 2011
TOWARDS CLASSES
                     Dragon >> eat: aThing
                       self weight: self weight + aThing weight.


                      King >> weight
                        ^yearsInThrone * 666


                       ScottishHairyCow >> weight
                         ^732




martes 23 de agosto de 2011
EXPERIENCE
                                                  WITHOUT           WITH
                     Quarter    Pass Rate
                                            100
                     2011 Q1     84,62%
                     2010 Q2     68,42%     80
                      2010 Q1    69,76%
                                            60
                      2009 Q2    80,95%
                      2008 Q2    66,67%     40
                      2008 Q1    74,07%
                                            20
                      2007 Q2    73,33%
                      2006 Q2    75,00%      0
                                                        Pass Rate



martes 23 de agosto de 2011
CONCLUSIONS


                     More time for the important concepts
                     More time for more complex exercises
                     Concrete to abstract learning path



martes 23 de agosto de 2011
QUESTIONS




                                 ?
martes 23 de agosto de 2011

LOOP

  • 1.
    A programming environment supporting a prototype-based introduction to OOP martes 23 de agosto de 2011
  • 2.
    CONTEXT First OOP course Previous knowledge in structured programming (PASCAL) Tight schedule martes 23 de agosto de 2011
  • 3.
    PROBLEM Paradigm shift A lot of new “stuff” to learn in order to get a first working program martes 23 de agosto de 2011
  • 4.
    EXAMPLE IN JAVA martes23 de agosto de 2011
  • 5.
    EXAMPLE IN SMALLTALK martes23 de agosto de 2011
  • 6.
    MOTIVATION Focus on: Messages Objects Rich interaction between them Polymorphism martes 23 de agosto de 2011
  • 7.
    SOLUTION Start with a custom programming environment Delay the introduction of classes and inheritance martes 23 de agosto de 2011
  • 8.
    WHAT ABOUT SELF? martes23 de agosto de 2011
  • 9.
    WHAT ABOUT SELF? Traits, prototypes, parent slots, etc. GUI is not familiar to the students martes 23 de agosto de 2011
  • 10.
    FEATURES Definition and usage of objects Multiple object environments Live object diagrams Explicit diferentiation between objects and references martes 23 de agosto de 2011
  • 11.
    EXAMPLE IN LOOP martes23 de agosto de 2011
  • 12.
    TOWARDS CLASSES saphira >> eat: aThing self weight: self weight + aThing weight. arthur >> weight ^yearsInThrone * 666 daisy >> weight ^732 martes 23 de agosto de 2011
  • 13.
    TOWARDS CLASSES Dragon >> eat: aThing self weight: self weight + aThing weight. King >> weight ^yearsInThrone * 666 ScottishHairyCow >> weight ^732 martes 23 de agosto de 2011
  • 14.
    EXPERIENCE WITHOUT WITH Quarter Pass Rate 100 2011 Q1 84,62% 2010 Q2 68,42% 80 2010 Q1 69,76% 60 2009 Q2 80,95% 2008 Q2 66,67% 40 2008 Q1 74,07% 20 2007 Q2 73,33% 2006 Q2 75,00% 0 Pass Rate martes 23 de agosto de 2011
  • 15.
    CONCLUSIONS More time for the important concepts More time for more complex exercises Concrete to abstract learning path martes 23 de agosto de 2011
  • 16.
    QUESTIONS ? martes 23 de agosto de 2011