teaching object oriented programming courses by sandeep k singh jiit,noida

48
Some Approaches, Innovations and Experiences in teaching Object Oriented Programming Courses Faculty Development Program on Emerging Trends in Computing Education 6th July - 11th July – 2015

Upload: sandeep-singh

Post on 16-Jan-2017

487 views

Category:

Engineering


0 download

TRANSCRIPT

Page 1: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

Some Approaches, Innovations and Experiences in teaching Object Oriented Programming Courses

Faculty Development Program on

Emerging Trends in Computing Education

6th July - 11th July – 2015

Page 2: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

What to expect from this session?

• No explicit trends.• Not a faculty centric- “Simple for you, tough

for students receiving it.”• Not a curriculum design perspective.

Page 3: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

Computer Science Curricula 2013: Object Oriented Programming

• PL Knowledge Area– PL/Object Oriented Programming– PL/Functional Programming– PL/Advanced Programming Constructs

• SDF Knowledge Area– SDF/Fundamental Programming Concepts

• Information Management– IM/Data Modelling: Object-oriented models– IM/Query Languages: Object-oriented queries

• Software Engineering– SE/Software Design– SE/Software Verification and Validation

Page 4: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

Let’s Begin

• “The best teacher is not the one who knows most but the one who is most capable of reducing knowledge to that simple compound of the obvious and wonderful.” ― H.L. Mencken

Page 5: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

Difficulties of LearningObject-Orientation : Students’ perspective• Transitions: Procedural to OO paradigm. Shift

backwards is much easier. • Key Concepts: Data hiding, Encapsulation, Classes,

object creation, constructor invocation, overloaded constructors, implicit calls, use of copy constructors, friend functions ,virtual functions etc.

• Message passing- understanding the flow of execution in/between objects.

• Functions accessing variable members without passing.• Difficulty with reuse or class library usage.• Storage model of programme and how the objects in

memory relate to one another.

Page 6: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

• Empirical studies: Only 20%-30% students are able to understand.

• Challenge in OO analysis and design itself. • Multiple OO analysis and design diagrams along with

complexities in diagramming notations.• Need for both declarative (language syntax and

semantics) and Object Oriented (OO) knowledge.• Teaching object-orientation as the first programming

course.

Difficulties of LearningObject-Orientation : Students’ perspective

Just think of these while delivering

Page 7: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

Intervention for mitigating difficulties

• Methodology Level – Object-first approach– Use of Memory Models– Methodology First and Language Second– Collaborative / Smart designs– Early Design Patterns

• Content Level– Classification laboratory assignments– Sequencing laboratory assignments– Teachlets

• Programming Environment Level– Game based approach– Using 3D animation environments

Innovations, if we do not follow any of them while teaching OOP courses !

Page 8: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

Truly objects first (FattaOO)• Umeå University, Sweden, Cornell University, University

West, Sweden University of Aarhus, Denmark• An object-centric holistic approach “Object-first”

is a good pedagogy. • Introduce object concept before the class

concept: class is an abstraction of object. • After classes discussion, the understanding of the

object concept can be reinforced based on the class concept.

• Examples involving multiple objects should be used early on.

Page 9: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

Truly objects first (FattaOO)• Everything in the world is an object .• Every system is composed of objects (certainly a system is also an object). • The evolution and development of a system is caused by the interactions

among the objects inside or outside the system.

An object must be• “uniquely named”, i.e., any object should carry a unique name or

identification;• “created or destroyed”; and• “communicative”, i.e., an object can exchange messages with other objects;• “nested”, i.e., a complex object has other objects as its components (which

in turn may have object components);• “active and autonomous”, i.e., an object is not controlled directly by

people; and• “collaborative”, i.e., collaborative relationships between objects arise.

Page 10: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

TEACHABLE MEMORY MODELS• Univ. of Toronto, Univ. of Georgia and Cornell Univ.• Notation of class and a way of drawing objects to

which students can relate. • A class is simply a file drawer, and the class

definition defines what goes in it.(class box)• It contains all the static components defined in

the class, all instances (objects) of class.• Reference value and the object, Execution of a

method call, Scope of variable especially static variables and drawing the call stack

Page 11: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

To ensure that students do not confuse frames, objects, and classes, draw memorywith three regions: frames are drawn in the method space, objects in the objectspace, and classes in the class space

Page 12: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

Includes frames on the call stack and the steps in executing method calls, including recursive calls, nested and inner classes.

Page 13: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

Separates the stack from the heap (the class and object spaces combined) and preventsstudents from writing static information inside objects or thinking that local variablesare persistent.

Page 14: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

Methodology First and Language Second

• An approach to teach first an object-oriented methodology, and then the language

1) Discuss fundamental principles of object-orientation with respect to conventional thinking;

2) Introduce an object concept by observing the real world;3) Acquire the class concept by abstraction of many common

objects;4) Introduce instantiation after the class concept is learned;5) Illustrate subclasses by adding more details to an existing

class and super classes by finding common things among several classes;

Page 15: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

Collaborative / Smart designs• Umeå University, Sweden , Free University Berlin, Germany • Kent Beck, Apple Computer, Inc.

Ward Cunningham, Wyatt Software Services, Inc.• Cognitive Apprenticeship (CA) approach - describe the most

relevant features of successful teaching concepts in a coherent way ; thinking processes of experts have to be made visible ; tasks should be situated in authentic context .

• CRC cards: immerse the learner in the "object-ness" of the material, syntax and programming environment will be picked up quickly .

• Class name of an object creates a vocabulary for discussing a design. Responsibilities (a handful of short verb phrases )identify problems to be solved. collaborators objects which will send or be sent messages in the course of satisfying responsibilities

Page 16: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

Collaborative / Smart designs

Page 17: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

Collaborative / Smart designs• Role play Diagrams (RPDs) are used to

document object interaction. The objects in a RPD are instances of the classes modeled by CRC-cards. simpler and more informal

• Worked for teaching novice programmers , and in introducing experienced programmers to complicated existing designs.

Page 18: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

Collaborative / Smart designs• University of Trier , Germany ; University of Antwerp, Belgium• Need to remember the particular classes (and their order); Dominating

member in a group; Difficulty to transfer information to subsequent steps• CREWSpace—a tool for co-located collaboration that implements a digital

version of the CRC method.• Students use this tool to analyze and adjust the proposed design through

role play.• CREWSpace records these analyses for a later replay such that the

students are able to reflect on their decisions.• Students can use CREWSpace to create a rudimentary UML class diagram.

In a UML , they are able to link CRC cards using aggregation, inheritance, and association edges and afterwards export their diagram for a further use with common UML tools.

• Students perceived tool positively. Logged activities as well as the teacher questionnaire showed that dominant and quiet students can be decently handled through the card ownership during role play.

Page 19: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

Collaborative / Smart designs

Page 20: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

Early Design Patterns

• Kwantlen University College, Canada• A constructivist learning approach: select an

appropriate, interesting, engaging, but ill-defined problem for students.

• Some unstated goals, constraints, possesses multiple solutions and multiple criteria for evaluating solutions.

• Design patterns : singleton and composite , are introduced with appropriate, interesting, and engaging examples in the first year Java programming.

• Students are required to explore in their final project a selected design pattern.

Page 21: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

• Singleton pattern introduced while covering abstraction and encapsulation. – An electronic book (EBOOK) for the college

library.• Composite pattern introduced while covering

inheritance. – EBOOK object is further made up of different

types of learning media: text, sound, and video.

Early Design Patterns

Page 22: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

Problems Proposed solutions by students

Concepts learned and reflections

How to implement an EBOOK object so that it can be accessed by any clients?

Declare EBOOK as global data

The solution violates the rule of data encapsulation. Abstraction and Encapsulation should be applied.

How to ensure data encapsulation?

Declare EBOOK as class. EBOOK object can then be accessed by clients through its methods.

The EBOOK object has to be referenced by its object identifier. This ends up a problem of finding a good name for a globally declared object identifier.

How to ensure encapsulation without globally declaring an object identifier?

Use static method approach. The method getEBookInstance() is invoked by any client by referencing the class name instead of object identifier.

Students learned when, why and how static method is applied.

How to ensure only one instance of EBOOK is created?

Use a private class constructor which prevents the EBOOK information from access by any clients. This implies that only the EBOOK class can create an EBOOK object.

Students learned when, why and how private class constructor is applied. This is a singleton pattern.

Early Design Patterns•Evaluation Format: Use of Singleton Pattern

Page 23: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

Classification of lab assignments• B.V. Bhoomaranddi, College of E&T, Hubli, India• Classification of lab assignments as demonstration,

exercises, structured enquiry and open ended types with an approach of using conceptual model as intermediate step before writing java code for a given problem statement.

• Move the responsibility from a professor to student, Improves the students understanding of object oriented concepts and eases the student effort in translating the class diagram into program code by following the syntax.

• The lab assignments are chosen from the known domains to the students like banking, Credit card transactions, cell phone services etc.

Page 24: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

Classification of lab assignments

Page 25: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

Structured Enquiry: More student involvement to identify the classes, attributes of classes, relationship between the classes: is-a/has-a, methodoverloading/ overriding from a given domain.

Classification of lab assignments

Page 26: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

Open Ended Questions: List of possible domains are given to group of students along with a separate objectives are set for open ended questions. All students are informed study the different literature to find the details of domain and identify the data to be stored manipulate from your applications.

Classification of lab assignments

Page 27: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

Sequencing of Assignments

• University of Patras, Greece• Constructivism-based approach. • A multi-entity system from every-day life was adopted.• A coherent sequence of assignments strictly adapted

to the design-first approach.• A six step design methodology to teach and apply OO

concepts.• Simplified versions of use-cases, class diagrams, and

OIDs in a very informal UML notation, are used to create draft models to highlight the structure and behavior of the system.

Page 28: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

– 1st Assignment: Informal Use-Cases and Object Interaction Diagrams– 2nd Assignment: Lego Construction Approach: Students make use of existing classes

from the beginning, to create relatively sophisticated applications. Code graphical applications from the very beginning

– 3rd Assignment: Class Responsibilities– 4th Assignment: Using GUIs-students are requested to write a program demonstrating

the integration of classes.– 5th Assignment: Examine alternative designs (data member types and function )– 6th Assignment: Abstract Classes – Inheritance – Polymorphism– 7th Assignment: Abstract Window Toolkit – Event Handling– 8th Assignment: Event Handling – Modifying Code to Increase Reusability– 9th Assignment: Increase Flexibility – 10th Assignment: Hands on Java API– 11th Assignment: Finding Bugs – Extending System’s Behaviour– 12th Assignment: Hands on Exception Handling

Sequencing of Assignments

Page 29: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

Design Methodology

Page 30: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

Teachlets and Teachlets Laboratory

• University of Hamburg, Germany• A middle course between teacher-centred instruction and

individual learning.• “A teachlet is an interactive teaching unit in which an

executable piece of software is to be extended by a clearly defined functionality in order to illustrate a design pattern or a programming language concept”.

• “A moderator uses a computer and a video projector to present the initial system and the proposed extension and is then given directions by the participants on the necessary changes to be made to the source code.

• A teachlet laboratory is a workshop-like course in which the participants develop new teachlets.

Page 31: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

Teachlets and Teachlets Laboratory

• An initial system: an executable application that is as small as possible and that is available in source code.

• A learning goal: knowledge of a design pattern or a programming language concept.

• One or more assigned problems: they involve extending/modifying the initial system by collaborative programming.

• A set of slides: not only to present the initial system, the learning goal and the assignment and to explain the basic terminology, but also to discuss alternative solutions and generalizations; may be supplemented with handouts.

• Proved successful for teaching design patterns in groups of up to 16 participants.

Page 32: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

Game based Teaching• University of Hertfordshire, UK• a GUI-centered approach to teaching object-

orientation concepts.• An assistive software environment called Greenfoot- to

create interactive, simulation-like applications in 2D.• The Greenfoot system is an IDE: an editor, a compiler

and a debugger.• Allows implementation of and interaction with objects

in the context of scenarios.• Students can perform activities like: Observing

behaviors, Invoking methods and Instantiating objects

Page 33: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida
Page 34: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

Game based Teaching at Laboratory Level

• National Taipei University of Technology, Taiwan• Students, 38 in number (19 teams) implement a small-

to-medium scale interactive computer game in one semester.

• Use Game – Object library framework (http://www.csie.ntut.edu.tw/game).

• Students have no prior experience in implementing any sort of game.

• Designs are bottom-up and iterative.• Framework-assisted, computer-game programming :a

highly effective , learners engaged and facilitated in broadening and deepening OOP skills.

Page 35: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

Game based Teaching• University of Cádiz, Spain • Tangible user interfaces (TUIs)- Sifteo cubes communcate

wirelessly, respond to gestures.• Illustrate some important OOP concepts as class, object,

attribute, method, inheritance and event-based programming concepts .

• Group of students that attended the course including the TUI demos showed a higher interest level (i.e. they felt more motivated) during the course exposition and also achieved an overall better marks.

• Sifteo Software Development Kit- Siftdev,Siftrunner and Siftulator.

Page 36: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

• Between 75% and 83% of students are visual learners .

• Flowcharts better than Pseudocode – JOOPA2– Animated UML– OOP-Anim– RAPTOR– Alice

Teaching based on Animation environments

Page 37: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

Teaching based on Animation environments

• JOOPA2, animates the classes and objects of Java programs in a 3D environment.

• User can explore the relationships between classes, objects, methods and attributes as a program executes.

• Entity types, class load, object instantiations, array, reference and method invocation and execution.

Page 38: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

Animated UML• Three dimensional animated illustrations are

created from UML diagrams.• Uses an XML structure representing UML

diagrams to transform into VRML that can be displayed in web browsers.

• A combination of class- and object diagram can be animated.

• Dynamic creation and destruction of objects, their links, and their interaction through exchanging messages.

Page 39: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

OOP-Anim

• An educational environment, OOP-Anim- help students visualize how their own object oriented programs work.

• OOP-Anim shows the program code, a representation of its classes and objects and a brief explanation of what the program is doing at each step.

Page 40: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida
Page 41: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

BlueJ

• BlueJ is an integrated system including an object-oriented language and an object-oriented development environment.

• It was developed specifically for teaching object-oriented programming to beginners.

• BlueJ uses UML- like class diagrams to present a graphical overview of a project structure.

• It allows the interactive creation of objects from any given class and object icon.

Page 42: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

RAPTOR

• RAPTOR is an iconic programming environment that creates programs visually using a combination of UML and flowcharts.

• The resulting programs can be executed visually within the environment and converted to Java.

• Students create their class hierarchy in a UML designer and then represent method bodies as flowcharts.

Page 43: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida
Page 44: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

Alice• Alice by Carnegie Mellon University, is a widely used

3D graphics and a drag-and-drop interface.• Teaching students to program rather than teaching

students a specific programming language. • Students create animations by placing objects in a 3D

virtual world, and then programming their behavior. • It does not directly support inheritance• Students can create virtual worlds on their computers

and populate them with some really interesting 3D objects.

Page 45: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida
Page 46: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

• One stop solution- Simplifying the instructional tools and technology (where possible)

• Minimalist approach: restricts the view of the class hierarchy to only those relevant.

• Prune- set of OO analysis and design diagrams and use a restricted subset of the complete notation

• More Comprehension of programs: reading and understanding code.

• More real world examples in class room teaching and in laboratory .

• Object visualization and object interaction visualization.

Conclusions

Page 47: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

References• Kleanthis C. Thramboulidis. 2003. A sequence of assignments to teach object-oriented programming: a constructivism design-first approach. Informatics in education 2, 1 (January

2003), 103-122.• Haibin Zhu and MengChu Zhou. 2003. Methodology first and language second: a way to teach object-oriented programming. In Companion of the 18th annual ACM SIGPLAN

conference on Object-oriented programming, systems, languages, and applications (OOPSLA '03). ACM, New York, NY, USA, 140-147. DOI=10.1145/949344.949389 http://doi.acm.org/10.1145/949344.949389

• Paul Gries and David Gries. 2002. Frames and folders: a teachable memory model for Java. J. Comput. Sci. Coll. 17, 6 (May 2002), 182-196.• K. Beck and W. Cunningham. 1989. A laboratory for teaching object oriented thinking. SIGPLAN Not. 24, 10 (September 1989), 1-6. DOI=10.1145/74878.74879

http://doi.acm.org/10.1145/74878.74879 • K. Beck and W. Cunningham. 1989. A laboratory for teaching object oriented thinking. In Conference proceedings on Object-oriented programming systems, languages and

applications (OOPSLA '89). ACM, New York, NY, USA, 1-6. DOI=10.1145/74877.74879 http://doi.acm.org/10.1145/74877.74879 • Börstler, Jürgen, and Carsten Schulte. "Teaching object oriented modelling with CRC cards and roleplaying games." Proc. of WCCE 2005 (2005).• Carlisle, M., Wilson, T., Humphries, J. and Hadfield, S., "RAPTOR: a visual programming environment for teaching algorithmic problem solving", Proc. of SIGCSE 05, USA, 2005.• Cooper, S., Dann, W., and Pausch, R., "Teaching Objects-first In Introductory Computer Science", Proc. of the 34th SIGCSE technical symposium on Computer science education,

Nevada, USA, 2003, 191-195.• Woei-kae Chen; Yu Chin Cheng, "Teaching Object-Oriented Programming Laboratory With Computer Game Programming," Education, IEEE Transactions on , vol.50, no.3,

pp.197,203, Aug. 2007 doi: 10.1109/TE.2007.900026• Bennedsen, J.; Caspersen, M.E.: "Teaching Object-Oriented Programming — Towards Teaching a Systematic Programming Process", Proceedings of the Eighth Workshop on

Pedagogies and Tools for the Teaching and Learning of Object-Oriented Concepts, 18th European Conference on Object-Oriented Programming (ECOOP 2004), 14-18 June, 2004, Oslo, Norway.

• Westin, L.K.; Nordstrom, M., "Teaching OO concepts-a new approach," Frontiers in Education, 2004. FIE 2004. 34th Annual , vol., no., pp.F3C,6-11 Vol. 2, 20-23 Oct. 2004.• Axel Schmolitzky. 2005. A laboratory for teaching object-oriented language and design concepts with teachlets. In Companion to the 20th annual ACM SIGPLAN conference on

Object-oriented programming, systems, languages, and applications (OOPSLA '05). ACM, New York, NY, USA, 332-337. • Sivasakthi, M., & Rajendran, R. (2011). Learning Difficulties of 'Object-oriented Programming Paradigm Using Java': Students' Perspective. Indian Journal Of Science And

Technology, 4(8), 983-985. • Difficulties Experienced by Students in Maintaining Object-oriented Systems: An Empirical Study In Proceedings of the Ninth Australasian Conference on Computing Education -

Volume 66 (2007), pp. 81-87 by Amela Karahasanović, Richard C. Thomas• Janke, Erica ; Brune, Philipp ; Wagner, Stefan (2015) Does outside-in teaching improve the learning of object-oriented programming? Proceedings of the 37th International

Conference on Software Engineering (ICSE '15) In Proceedings• Steven D. Sheetz, Gretchen Irwin, David P. Tegarden, H. James Nelson, and David E. Monarchi. 1997. Exploring the difficulties of learning object-oriented techniques. J. Manage.

Inf. Syst. 14, 2 (September 1997), 103-131.• Kölling, M. (1999a). The Problem of Teaching Object-Oriented Programming, Part 2: Environments. Journal of Object-Oriented Programming, 11(9), 6-12.

Page 48: Teaching Object Oriented Programming Courses by Sandeep K Singh JIIT,Noida

References• Kölling, M. (1999b). Teaching Object Orientation with the Blue Environment. Journal of Object-Oriented Programming, 12(2), 14-23.• Kölling, M. (2001). BlueJ - Teaching Java [Website]. Retrieved September 2001 at: http://www.bluej.org• Rajashekharaiah, K.M.M.; Patil, M.S.; Joshi, G.H., "Impact of classification of lab assignments and problem solving approach in object oriented programming lab

course: A case study," MOOC, Innovation and Technology in Education (MITE), 2014 IEEE International Conference on , vol., no., pp.205,209, 19-20 Dec. 2014• Introducing Design Patterns in First Year Object-Oriented Programming ANDY C. H. LAW Kwantlen University College

https://www.cs.ubc.ca/wccce/program04/Papers/andylaw.htm• Tim Storer and Ishbel Duncan. 2007. 3D animation of Java program execution for teaching object oriented concepts. In The Seventh IASTED International Conference

on Visualization, Imaging and Image Processing (VIIP '07), Juan J. Villanueva (Ed.). ACTA Press, Anaheim, CA, USA, 76-81.• M. Ben-ari and N. Ragonis and R. Ben-bassat Levy, A Vision of Visualization in Teaching Object-Oriented Programming, In Proceeding of 2nd Program Visualization

Workshop, 2002, 83--89• https://www.cmu.edu/corporate/news/2007/features/alice.shtml• An Innovative Instructional Method for Teaching Object-Oriented Modelling Khalid Al-Tahat Department of Information Technology and Computing, Arab Open

University, Jordan The International Arab Journal of Information Technology, Vol. 11, No. 6, November 2014• Uwe Thaden and Friedrich Steimann, Animated UML as a 3d-illustration for teaching OOP, In Workshop on Pedagogies and Tools for Learning Object-Oriented

Concepts, 2003, Springer• Micaela Esteves and António Mendes. 2003. OOP-Anim, a system to support learning of basic object oriented programming concepts. In Proceedings of the 4th

international conference conference on Computer systems and technologies: e-Learning (CompSysTech '03), B. Rachev and A. Smrikarov (Eds.). ACM, New York, NY, USA, 573-579.

• Lutz, R.; Schafer, S.; Diehl, S., "Teaching object-orientation with smartphones as digital CRC cards," Software Engineering Education and Training (CSEE&T), 2013 IEEE 26th Conference on , vol., no., pp.89,98, 19-21 May 2013

• A game-based approach to the teaching of object-oriented programming languages José María Rodríguez Corrala, , , Antón Civit Balcellsb, , Arturo Morgado Estéveza, , Gabriel Jiménez Morenob, , María José Ferreiro Ramosc, Computers & Education Volume 73, April 2014, Pages 83–92

• José María Rodríguez Corral, Antón Civit Balcells, Arturo Morgado Estévez, Gabriel Jiménez Moreno, and María José Ferreiro Ramos. 2014. A game-based approach to the teaching of object-oriented programming languages. Comput. Educ. 73 (April 2014), 83-92.

• Don Slater, Wanda Dann, and Steve Cooper. 2012. Teaching with Alice (abstract only). In Proceedings of the 43rd ACM technical symposium on Computer Science Education (SIGCSE '12). ACM, New York, NY, USA, 678-678.

• Stephen Cooper, Wanda Dann, and Randy Pausch. 2000. Alice: a 3-D tool for introductory programming concepts. J. Comput. Sci. Coll. 15, 5 (April 2000), 107-116. • Stephen Cooper, Wanda Dann, and Randy Pausch. 2000. Alice: a 3-D tool for introductory programming concepts. In Proceedings of the fifth annual CCSC

northeastern conference on The journal of computing in small colleges (CCSC '00), John G. Meinke (Ed.). Consortium for Computing Sciences in Colleges, , USA, 107-116.