Microworlds
objectKarel
objectKarel was designed, implemented and evaluated by Stelios Xinogalos in the context of his PhD Thesis:
"Educational Technology – A Didactical Microworld for an Introduction to Object-Oriented Programming", Department of Applied Informatics, University of Macedonia, September 2002.(Supervisor: Prof. Satratzemi Maya, Advisors: Prof. Dagdilelis Vasilios, Prof. Evangelidis Georgios)
Available (in Greek) from:
- National Documentation Centre (Greece):http://phdtheses.ekt.gr/eadd/handle/10442/14473
- Digital Library and Institutional Repository, University of Macedonia:http://hdl.handle.net/2159/15668
The main features of objectKarel
The microworld objectKarel
objectKarel is based on the book “Karel++ – A Gentle Introduction to the Art of Object-Oriented Programming”, 1997, John Wiley and Sons by Bergin, J., Stehlik, M., Roberts, J. and Pattis, R.
objectKarel is based on the metaphor of a world of robots. The actor of the microworld is one or more robots (objects) that are assigned various tasks in a world that consists of (Figure 1):
- Crisscrossing horizontal streets and vertical avenues forming one block intervals;
- Wall sections between adjacent streets or avenues used to represent obstacles (hurdles, mountains, mazes etc); and
- Beepers – small plastic cones that emit a soft beeping noise – placed on street corners.
Students write programs that instruct robots how to perform their tasks. A task is anything we want the robot to execute based on the capabilities that they have; such as moving the robot to a particular intersection, escaping from a labyrinth, locating a beeper and moving it to another position, etc.
Figure 1. The world of objectKarel.
The lessons module
Every unit in the lessons module (Figure 2) contains brief and consice theory (theory tabsheet) and a hands-on activity (activity tabsheet) for familiarizing students with the programming concepts before they are asked to implement them.
- fundamental OOP concepts are presented prior to control structures
- each activity lies in the heart of the underlying concept
- the main aim of the activities is to help students comprehend deeper the OOP concepts
Figure 2. The lessons module of objectKarel.
Program development
Programs are developed with the use of a structure editor consisting of a Statements Menu (Figure 3) and dialog boxes.
Features of the structure editor:
- the menu is automatically updated
- the source code is auto-indented
Differences in comparison with a typical structure editor:
- it allows the violation of some syntactic rules, in order to allow making changes easier
- semantic and logic errors are reported during compilation in order to familiarize students with error messages regarding the comprehension of basic concepts and the debugging process
Figure 3. The statements menu of the structure editor.
Program compilation
User-friendly error messages:
- in Greek (or English)
- using natural language (no codes)
- reporting the actual line of the error reporting the source of the error
Interaction with the results of the compilation:
- students focus on the exact line of the source code
Program execution
Execution choices:
1. Running
2. Tracing
3. Step by step execution
Program animation: when tracing or step by step execution of a program is used, explanations regarding the semantics of the current statement are presented in natural language (explanatory visualization).
Explanatory visualization:
- offers an alternative means of presenting the semantics of concepts/structures and flow of control during program execution
- helps in comprehending – dealing with misconceptions about concepts/structures that are difficult for students
Figure 4. Step bys step execution of a program.
History of compilations
- each time a program is compiled (or saved) it is saved along with the compilation results
- the history of compilations is presented with the form of a two level tree
Benefits:
- recording students’ difficulties-misconceptions when introduced to OOP programming
- studying students’ problem solving techniques
- helps the teacher adjust the lesson to students’ need
Karel
Karel: a learning environment for an introduction to imperative/procedural programming
Learning module: series of lessons with brief theory and hands-on activities
Programming environment: structure editor, friendly error messages, program animation (step-by-step execution, tracing), explanatory visualisation, recordability of students’ actions (compiled source code versions & compilation output)
The environment is based on the book “Karel the Robot – A Gentle Introduction to the Art of Programming”, (1995), 2nd edition, John Wiley and Sons by Richard E. Pattis, revised by Jim Roberts and Mark Stehlik
and was developed in the context of
Pythagoras II-Funding of research groups in the University of Macedonia, Priority Action 2.2.3.e, Action 2.2.3, Measure 2.2, implemented within the framework of the Operational Programme “Education and Initial Vocational Training II (EPEAEK)” and co-financed by the European Union [3rd Community Support Framework, 75% financed by the European Social Fund 25% National Resources])