What is contextual programming

Context orientation in computer science lessons


1 Context orientation in computer science classes Janine Lachner Alpen-Adria-Universität Klagenfurt Universitätsstraße Klagenfurt Abstract: In computer science subject didactics, context orientation is a topical issue. The idea of ​​using contexts in the classroom goes back to the principle of application orientation in computer science classes. Context-oriented teaching is being implemented more and more often in schools. An example of this is the use of special programming environments such as Alice, Media Computation, robot technology or Lilipad Arduino, which try to make it easier for students to get started with programming. In addition, the context orientation should also increase the motivation of the learners for the subject. The aim is to increase the number of students who are interested in computer science. A concrete example of context-oriented teaching is the topic of artificial intelligence. Using the "Chatbots" object, the pupils should grasp this specific context and thereby learn important IT concepts. An interesting question is what kind of context should be chosen in order to implement the context-oriented teaching as effectively as possible. At the end of this seminar paper, a study will be presented that investigates this question. 1 Introduction In computer science subject didactics, context orientation is a topical issue. But the topic is not entirely new, it can be traced back to the principle of application orientation, which has been addressed in literature since the mid-1970s [F90]. The application-oriented approach of computer science didactics describes the teaching by solving practical problems that always include social, cultural, psychological and other dimensions. The applications of computer science in administration, production and science are seen as the focal points in terms of content [F90]. The technical content is enriched by specific contexts. Context-oriented teaching evolved from this idea. However, the focus here is even more on the context. The starting point is the contexts that structure the lessons [KSSW09].

2 But what is a context anyway? Simply put, context is the circumstance or state of affairs in which something exists or occurs. For computer science lessons this means that the context includes the circumstances in which its technical content exists [CC10]. 2 The importance of contexts for learning Learning always takes place in some context. Contexts are important for the human learning process because they give the material to be learned meaning and thus motivation for the learner [D09]. Cooper and Cunningham criticize the fact that contexts are unfortunately often neglected in computer science classes. Students often need to acquire knowledge with very little context, or with contexts that have little meaning for the students. The focus is mostly on learning principles and processes [CC10]. The reason for this lies in the development of computer science teaching. Computer science lessons have adopted many approaches from mathematics lessons, which are based on formal theories and techniques and have little relation to the areas where these techniques come from or can be applied [CC10]. Another problem is that teachers in computer science classes might like to build on problems from the real world, but the recommendations of the curricula do not contain much about the possibilities of implementation [CC10]. However, students should not only learn the basic principles and processes of computer science, but also understand the sources and applications of these principles and processes. The use of contexts should enable the learner to come into contact with IT topics in a clear and personal way [CC10]. Students need to learn both the context of a problem and its relevance in a way that engages and challenges the students [D09]. Computer science lessons can be enriched by various programming environments that are intended to support learning. Some examples are presented in Chapter 5. Dealing with contexts and the details of the context is a powerful motivational tool for learners. For example, learning how to use a parachute properly when standing on solid ground is not as important, but in the context of free fall from an airplane, motivation increases to learn this ability very quickly [D09].

3 Context orientation in the classroom has another great potential. Increased motivation for the subject of computer science could ultimately also increase the number of students who like computer science and who are subsequently interested in studying computer science or related subjects and would like to continue working in the field [D09]. According to Knobelsdorf and Schulte, there has been a decline in computer science students for over ten years, especially in the USA, but also in Germany and Austria. This decline is characterized by a decreasing number of beginners, consistently high failure rates and a low number of female students [KS07]. As Knoblesdorf and Schulte found, the context is very important, especially for female learners. Schoolchildren often link their interest in computer science to other areas such as medicine, art, or space exploration. The usefulness and usability of computer science alone is often not that obvious to them. Computer science only becomes useful when it is linked to an application area in order to achieve certain goals there [KS07]. 3 types of context DeClue [D09] has developed a taxonomy of different contexts that are used in computer science classes. 3.1 Physical context The physical context relates to the physical aspects of a problem or task. This includes, for example, the keyboard, the monitor or the mouse. This context is often found in instructions, with sentences such as "Move the mouse until the mouse pointer points to the selection field". This context represents the lowest potential for self-motivated learning and should therefore not be used in the long term [D09]. 3.2 Content context Concrete and elementary knowledge that is required to solve a problem or a task is referred to as content context. Definitions, formulas and syntax are in the foreground here. An example would be the simplification of a logical expression. Such examples are often used in computer science classes to check learning processes and also to make assessment easy. However, it is precisely these examples that often lead to a loss of motivation among the learners, since the question "Why do I have to know that at all?" opens [D09].

4 3.3 Technical context The technical context describes how a problem or a task relates to the subject of computer science. In computer science classes, the focus here is on recognizing the type of problem, choosing the right tools and writing efficient, maintainable and understandable programs that effectively solve the problem. Many training programs are organized within this context and can therefore also demonstrate success. However, this success has to be questioned, since in this context technical competencies are imparted, but social competences fall by the wayside [D09]. 3.4 Professional context The professional context goes beyond the purely technical competencies. It refers to professional qualifications, so to speak to "befitting behavior". This includes social skills, a basic legal understanding and basic economic values. This context is often neglected; some universities try to incorporate it into their training through courses on project work, ethics or legal foundations [D09]. 3.5 Life context The consideration of ethical, spiritual, relational and political aspects of the problem or the task is carried out in the life context. This context is perhaps the most important in order to increase the motivation of learners, since the lessons could be oriented towards the life of the students. Thus, the meaningfulness of the subject matter can be conveyed to the students more easily [D09]. 4 Context-Oriented Lesson Drafts The structuring of the context-oriented lesson is done through the context, an area of ​​application, which offers a very good opportunity to motivate or illustrate the topics. The context provides so many examples and project ideas for teaching [CC10]. Planning contextual lessons can be done in two ways. One option is to find contexts that fit the concepts that should be taught in the classroom. Further material is then collected on the contexts, on the basis of which the lessons can be planned. The second way is to first develop an interesting context in terms of content and then to filter out the IT concepts and principles it contains. Even if you should be able to work through all the concepts in every context, you will not deal with all of them at once in class [KSSW09].

5 In order to structure the lessons in a context-oriented way, the following points should be included [CC10]. Use of a consistent and coherent set of examples from a clearly defined area. Organization of the examples in such a way that the core ideas of the course can be built up from them. Motivation of the concepts to be taught through suitable problems and tasks from the defined area that the procedures are more general than the examples and how they can be used elsewhere Use of examples as a basis for student projects Inviting experts to discuss the relationship between the field covered and computer science The context should of course take into account the importance to society and the learner's world are analyzed [CC10]. When planning context-oriented teaching, four phases should be considered [KSSW09]: 1. Encounter phase 2. Curiosity and planning phase 3. Development phase 4. Networking and deepening phase When planning, it should also be taken into account that context-oriented teaching is very suitable for interdisciplinary and subject-related lessons. Possible connections should be shown and sketched [KSSW09]. 5 Programming Environments for Context-Oriented Lessons Appropriate programming environments are important for the implementation of context-oriented computer science lessons. Students learn programming concepts by simply using the environment. This chapter introduces four programming environments that can be used to implement context-oriented teaching.

6 5.1 Alice With Alice pupils can create virtual worlds. Alice is a 3D programming environment that is very easy to use for beginners [CDP03]. The name Alice was given in honor of the English mathematician Charles Lutwidge Dodson, who among other things wrote the book "Alice in Wonderland" under the pseudonym Lewis Carroll. Dodson felt that the most important thing in learning complex subjects is that things are made simple and fascinating for the learner, and the developers shared that view [Cmu]. Alice offers a comprehensive library of 3D objects that students can use. In this way you become the director of a 3D film in which the objects on the screen play according to the script that has been created beforehand. Another possibility is for the students to create interactive video games, for example by letting the user control the objects with the keyboard or mouse [CDP03]. Alice is easy to use because objects and actions can be pushed together with the mouse to create the desired sequence. So there is no programming language or special syntax to be learned before something can be achieved [CDP03]. Alice can teach many computer science concepts and animation topics. Some example worlds and scenarios have already been prepared, such as the Alice mathematics world or the Alice music world. In addition, short self-study units have been developed at various levels. It is important that these exercises are designed in an appealing way for the students by focusing on the context. Titles should therefore be used that are meaningful for students and enable them to relate to them. An example of this would be the title "Design an original penguin" instead of naming the IT concept (inheritance) behind it [RBD10]. 5.2 Media Computation The term "Media Computation" denotes a context-oriented teaching concept that designs computer science lessons on the basis of the omnipresent topic of multimedia. Students create and manipulate media using programming concepts such as arrays and linked lists. However, this application takes place at a low level of abstraction. This makes it easier to access and understand the concepts behind it. By working on examples, the students learn basic programming concepts and procedures [H02, Mctw]. Examples of tasks in this context are editing images by changing pixel values, superimposing different images, generating noises, or creating collages or digital video special effects [Mctw].

7 5.3 Robot technology For many students, robot technology offers a good point of contact, since many of them have been involved with robots in a playful way as children identify [LBB09]. One of the best-known ways to learn computer science concepts using robotics is Lego Mindstorms. Lego Mindstorms are available in every major toy store. It consists of the typical flexible and expandable Lego building blocks, and also includes a programmable building block (RCX), as well as active sensors and motors. The block can be programmed with Java or C ++. There is also a graphical user interface and a command line interface [LBB09]. Through the use of robots, the learners can learn important programming concepts, especially the paradigm of object orientation. The advantage is a natural modeling process for the problems and tasks that the students are supposed to solve. The effects of the programmed behavior can be physically observed immediately. For example, it can be seen directly on the robot whether the light sensor is switched on, whether the robot is turning to the right, or whether a certain sound is playing. The inheritance concept is also easy to convey here. For example, one arm of the robot is the super class. A newly installed gripping tool turns the arm into a gripper arm. The gripper arm is the special class that inherits all attributes and methods of the arm class, but also has additional properties [LBB09]. Since Lego Mindstorms robots have a very robust design, it is also not a problem if they fall off the table or run into a wall. This makes it possible for the students to experiment on many levels with the robot and thus also with programming. You can rebuild the robot yourself or change the environment to make the robot easier to program. In the best case scenario, the students will expand their programs to improve the capabilities of the robot in its current environment as much as possible. In this way, not only are the teacher's assignments fulfilled, but ways are found to solve the problem as well as possible. This of course arouses interest among the students [LBB09]. 5.4 Lilipad Arduino LiliPad Arduino [La] enables students to design and program e-textiles. The system makes it possible to experiment with embedded programming and to challenge your own creativity by making clothes yourself. This is done by sewing microcontrollers, sensors and actuator modules onto various textiles [BECC08].

8 The circuits look like a completely normal circuit board, with the difference that they are constructed from textiles. The conductive thread with which the individual components can be connected to one another is important. There are different looking circuits so as not to restrict the students' creativity too much. In addition, attention was paid to good sewability when designing the circuits [BECC08]. The e-textiles can be programmed using an integrated programming environment. This makes it possible, for example, to write a simple C program that controls the system [BECC08]. The students sew the circuits on bags, caps, jackets or other items of clothing, can be creative and learn to program in the process.The system is similar to Lego Mindstorms: It is possible to experiment creatively, only e-textiles are used instead of robots. This enables programming concepts and processes to be acquired in this context. Lilipad Arduino is particularly popular with female learners due to its special context [BECC08]. 6 An example of a context-oriented teaching unit This chapter is intended to present a possible implementation of a concept-oriented teaching: Artificial intelligence as a context for a teaching unit in computer science teaching [WH08, WH09]. The technical and social dimension of the topic "Artificial Intelligence" is to be developed through text-based dialogue systems ("Chatbots", chat machines). The choice of this topic for the development of IT concepts can be justified by the fact that artificial intelligence is increasingly finding its way into everyday life, for example through ,, anna on the IKEA website (The virtual IKEA employee directs visitors to the desired pages of the Online catalog by trying to react intelligently to the words entered in the input field and starting a conversation. Another reason is the popularity of chatting with young people. The topic can be motivated by asking if you are sure can mean that the chat partner is not a robot [WH08]. The teaching unit, which is divided into nine hours, was planned for secondary level 1, but can also be adapted to secondary level 2 through extensions [WH08].

9 The pupils dedicate the first three lessons to the classic Eliza program by Joseph Weizenbaum. By studying this program, you can grapple with the question of what makes a computer program intelligent. They investigate whether Eliza could replace a trust teacher and try to find out how the program works independently by recording how Eliza reacts to various inputs [WH08]. In the further course of the lesson, a group puzzle on various topics of artificial intelligence, as well as a role play, is carried out in which the question of whether a company should commission a call center to answer customer inquiries or, better, a chatbot. Two lesson hours are dedicated to these tasks, which are intended to build up competencies [WH08]. The next three lessons are dedicated to the implementation of a small project in which the students create their own chatbot with the AIML (Artificial Intelligence Markup Language) editor GaitoBot. This is done using a graphical user interface, so syntax errors are not possible. The script created can be tested directly in the editor. The students should then work out the differences and similarities to Weizenbaum's Eliza and recognize the limitations of the understanding of machines [WH08]. At the end of the lesson, one hour is devoted to summarizing the functionalities and effects of artificially intelligent systems. Group work should develop your own ideas for similar systems. Based on an analysis model developed in-house, these ideas should ultimately also be viewed critically [WH08]. The teaching unit has already been tried out several times, whereby Witte and Hornung found that the students were always very active and interested in the matter. The reason for the motivation of the students cannot be determined one hundred percent. On the one hand, it was probably due to the many student-activating teaching methods that were used (group puzzles, group work, etc.). On the other hand, the high level of motivation was certainly also due to the choice of context, which related to the students' immediate world of experience [WH09]. 7 Choosing the Right Context One of the most difficult questions to answer in the context of contextual teaching is what type of context should be chosen in order to effectively implement contextual teaching.

10 Context should definitely be built in in such a way that it is meaningful and realistic for the learners. The guiding principle is "learning in realistic situations with realistic problems" [KS07]. Because computer science is such a rapidly changing subject, it is difficult to confront students with ever new realistic situations or problems. What is a real situation for the learners also depends crucially on their backgrounds and future plans [KS07]. To find out more, Knobelsdorf and Schulte carried out a survey among computer science students. The biographies of the students were examined in relation to how the first contact with the computer came about and how the computer-related activities developed [KS07]. The study found that most of the respondents first came into contact with the computer through computer games. Only then does the computer appear as an aid for school, learning and homework. During the time when the respondents decided to study computer science, they had the greatest influence on working in (school) projects and in various IT-related jobs. The project activities extended, for example, to working on school websites, setting up and configuring the school network, and robot technology. These project-related activities suggest that computer science became really interesting when you were working with it in a certain context [KS07]. However, those few results were all that could be found about context. The respondents did not explicitly mention the importance of contexts in computer science lessons [KS07]. Knobelsdorf and the school come to the conclusion that contexts are either not as important as previously assumed or, what is more likely, that the students simply do not know exactly how computer science is built / embedded in contexts. In order to be able to grasp the effects of context-oriented teaching more precisely, more investigations and surveys are necessary in any case to clarify the question of the relevance of context-orientation in computer science teaching for pupils [KS07]. 8 Conclusion Learning always takes place in a context, whether the context is named and studied or is simply ignored. It is not yet clear how strong the impact of learning in context is on the motivation to start studying in this subject, but it does have an impact on the motivation in learning itself. Computer science teachers have to decide whether to use the context as likely to use very effective support to help students learn computer science content. The way in which computer science teachers pass on their knowledge definitely influences the motivation of learners.

11 Bibliography [BECC08] Buecchlex, L., Eisenber, M., Catchen, J., Crockett, A .: The LilyPad Arduino: Using Computational Textiles to Investigate Engagement, Aesthetics, and Diversity in Computer Science Education. In: CHI '08 Proceeding of the twenty-sixth annual SIGCHI conference on Human factors in computing systems, [Cmu] Carnegie Mellon University: Alice. An Educational Software that teaches students computer programming in a 3D environment. URL: [accessed on]. [CC10] Cooper, S., Cunningham, S .: Teaching computer science in context. ACM Inroads 1, 58 (2010). [CDP03] Cooper, S., Dann, W., and Pausch, R .: Teaching Objects-First in Introductory Computer Science. Special Interest Group in Computer Science Education, Reno, NV, [D09] DeClue, T .: A Theory of Attrition in Computer Science Education Which Explores the Effect of Learning Theory, Gender, and Context. CCSC Central Plains, [F90] Forneck, H.J .: Development tendencies and problem lines in the didactics of computer science. In: Cyranek G., Forneck H.J., Goorhuis H. (Ed.): Contributions to the didactics of computer science. Diesterweg / Sauerländer, Frankfurt / Main, 1990, S [H02] Hubwieser, P .: Object Models of IT Systems Supporting Cognitive Structures in Novice Courses of Informatics. In van Weert T., Munro R. (Eds.): Informatics and The Digital Society: Social, Ethical and Cognitive Issues, IFIP TC3 / ​​WG3.1 & 3.2 Open Conference on Social, Ethical and Cognitive Issues on Informatics and ICT, Dortmund , Germany, [Iik] Computer Science in Context. URL: [Access on [KS07]]. Knobelsdorf, M., Schulte, C .: Computer Science in Context - Pathways to Computer Science. In: Proceedings of the 7th Annual Finnish / Baltic Sea Conference on Computer Science Education. Koli, [KSSW09] Koubek, J .; Schulte, C .; Schulze, P .; Witten, H .: Computer Science in Context. An integrative teaching concept for computer science lessons. INFO [La] Lilipad Arduino. URL: [accessed on]. [LBB09] [Mctw] [RBD10] [WH08] [WH09] Lawhead, P., Bland, C., Barnes, D., Duncan, M., Goldweber, M., Hollingsworth, R., Schep, M .: A Road Map for Teaching Introductory Programming Using LEGO Mindstorms Robots. In: ACM SIGCSE Bulletin, 35 (2), 2009, S Media Computation Teachers Website. URL: [accessed on]. Rodger, S., Bashford, M., Dyck, L., Hayes, J., Liang, L., Nelson, D., Qin, H .: Enhancing K-12 Education with Alice Programming Adventures. In: ITiCSE (2010), S Witte, H., Hornung, M .: Chatbots Part 1: Introduction to a series of classes on “computer science in context (IniK), In: LOG IN issue No. 154/155 (2008), S Witte, H., Hornung, M .: Chatbots - Part 2 and End: The Turing Test and the Consequences - On the History of Symbolic AI in Computer Science Classes, In: LOG IN Issue No. 157/158 (2009), p