In order to design and implement the new environment (objectKarel) research was carried out with the aim of:
reviewing students’ difficulties, errors and misconceptions when introduced to programming
categorizing approaches to teaching programming and the relevant educational tools
categorizing the most important design principles for integrated novice programming environments
Programming Microworlds – Mini-languages: CARISTO, Boxer, LOGOMotion, StarLogo, MultiLogo, SuperLogo, BPS Robot Simulator, Karel The Robot, Karel++ for Windows, Karel-3D, Marta, Darel, RoboPascal for Delphi, Knobby’s World, Karel Genie, JKarelRobot, Jeroo, Karel J. Robot, Alice, ...
Compilers with Improved Diagnosing Capabilities: THETIS, CAP
Structure Editors – Iconic Programming Languages: MacGNOME Genies, Alice Pascal, BACCII, BACII++, FLINT, KidSim/Cocoa
Program Animation Systems (Software Visualization): DynaLab, AnimPascal, BlueJ
Applying Algorithm Animation Techniques: LENS
Program Auralization: CAITLIN, LogoMedia
Xinogalos, S. & Satratzemi, M. (2004) Introducing Novices to Programming: a review of Teaching Approaches and Educational Tools, Proceedings of the 2nd International Conference on Education and Information Systems, Technologies and Applications (EISTA 2004), Orlando, Florida, USA, July 21-25, Vol. 2, 60-65.
Selecting as the main teaching approach, Programming Microworlds:
it is the only approach that solves nearly all the didactical problems of the classic approach
Incorporating the technology of Program Animation:
supports students in comprehending the semantics of programming concepts/structures and flow of control
supports students in debugging their programs
Incorporating the technology of Explanatory Visualization:
provides an alternative means of visualization that might suit better to some students
deeper understanding of the meaning of concepts that are difficult for novices (such as control structures) and program flow of control
Although the programming language consists of a limited instruction set, we decided to incorporate a Structure Editor:
focus on concepts and developing problem solving abilities
teaching the material in less time
teaching programming concepts to smaller aged students
Reporting user-friendly error messages:
revealing the misconceptions that usually account for the errors
Incorporating a Series of Lessons containing theory and hands-on activities:
teaching the material in less time
familiarizing students with concepts before implementing programs
History of compilations
Xinogalos, S. & Satratzemi, M. (2002) Αn Integrated Programming Environment for Teaching the Object-Oriented Programming Paradigm, Lecture Notes in Computer Science (LNCS), 2510, Shafazand Η Α Min Tjoa (Eds.), Springer Verlag, 544-551.
Participants:
19 undergraduate students of the Department of Applied Informatics (working in groups of two)
conditions for participating:
students should have difficulties in programming (had failed the exams)
students had to attend six 2-hour lessons, to fill-in two questionnaires at the beginning and at the end of the lessons
«reward»: credits for the course «Introduction to Programming»
Material:
teaching took place entirely in the lab using the environment of objectKarel Camtasia Recorder was used for recording (video) two of the groups
The design of the study:
Lessons:
Objects - Classes
Inheritance
Polymorphism & Overriding
Selection Structures
Repetition Structures
Evaluation
Duration of each lesson: 2 hours
Frequency: weekly
Conclusions
The overall design of the lessons was successfully applied:
the general didactical aims of the 5 lessons were achieved in a high degree
students faced difficulties with selection structures, a fact that shows that an extra lesson is needed
some students faced difficulties with the concepts of polymorphism and overriding
Students’ performance was very good:
students comprehended the basic OOP concepts and control structures
several misconceptions recorded in the literature regarding OOP were not recorded in our study
The programming environment in combination with the series of lessons supported students and made it possible to teach the main principles of the OOP paradigm in a short period of time.
All the features of the programming environment helped students:
Xinogalos, S., Satratzemi, M. & Dagdilelis, V. (2006) An Introduction to object-oriented programming with a didactic microworld: objectKarel, Computers & Education, Volume 47, Issue 2, September 2006, 148-171, Elsevier Publishers.
Comparing the evaluation of objectKarel’s features by two groups of students with different level of experience in programming languages and environments, and proposing design guidelines for programming environments:
Incorporate brief and concise theory and hands-on activities to the environment
Use a combination of a structure – text editor
Use explanatory visualization in combination with program animation
Xinogalos, S., Satratzemi, M. & Dagdilelis, V. (2006), Evaluating objectKarel - an educational programming environment for object oriented programming, In A. Mendez-Vilas et al. (eds) "Current Developments in Technology-Assisted Education”, vol. 2, 821-825, Formatex press.
students’ conceptual grasp is deeper in objectKarel
objectKarel can not be used for teaching the real thing
the combined use of the two environments is proposed
Xinogalos, S., Satratzemi, M. & Dagdilelis, V. (2007), A Comparison of Two Object-Oriented Programming Environments for Novices, Proceedings of the 10th IASTED International Conference on Computers and Advanced Technology in Education (CATE 2007), 8 -10 October 2007, Beijing, China, 49-54.