The One Laptop Per Child Project at Yale
The One Laptop Per Child Project at Yale (Yale OLPC) is a non-profit social welfare organization being developed by undergraduate students at Yale University, in collaboration with local, regional, national and international partners. Yale OLPC aims to develop intelligent, targeted applications of technology which can be integrated into school curricula to enhance and empower student learning. More concretely, it is implementing projects in Yale's home city of New Haven Connecticut, and in other nearby communities, which will serve as testbeds for technology-enhanced learning programs at the elementary, middle and high-school levels. The programs developed by Yale OLPC include but are not limited to the application of software and hardware (such as the XO laptop) developed by the Cambridge MA based One Laptop Per Child Project for this purpose.
Yale OLPC believes that technology can open doors to allow children to learn powerful ideas and modes of thought in school, as opposed to just discrete skills or rote facts. In turn, new ways of thinking can empower students to "learn how to learn", and to acquire practically useful skills with greater confidence and facility. In addition, experience with technology in and of itself can provide directly applicable skills. A key perspective held by the members of Yale OLPC, however, is that merely bringing technology (e.g., laptop computers) into the classroom is not sufficient to make these learning goals a reality. Instead, we must develop technology-enhanced learning experiences that are:
- 1) supported by clear, detailed documentation, including,
- a) a solid description of the underlying educational/learning theory, and the of key concepts or thinking-strategies which the experience is meant to convey
- b) easy-to-follow instructions for using the relevant technological tools
- 2) scalable, broadly applicable and customizable
- 3) fun, creative, open-ended and engaging, even to students who may not have a prior interest in technology
- 4) integrated into accepted school curricula
- 5) well-tested and verified to fulfill curricularly relevant goals
- 6) where possible, based on one-to-one student ownership of the software and devices involved
 Programming as a Learning Tool
Learning activities developed by Yale OLPC will draw inspiration from decades of research in the area of technology-based "constructionist learning". We are particularly interested in using simplified versions of computer programming languages to allow children to express, embody and manipulate abstract concepts (such as those which math and science classes attempt to convey) in the form of computer programs. These computer programs will be processes which children themselves design to unfold dynamically in the computer. For children, we will use primarily pictorial computer programming environments rather than programming environments based on written "code" or "text". A major initial goal of our some of our testbed projects will be to develop programming-based exercises for a range of age groups which are both high-quality and curricularly well-integrated (and which may also incorporate physical peripherals such as light and sound sensors to make the computational world inside the computer more concretely understandable).
At the high-school level, we can contrast two possible approaches to teaching students about the inputs and outputs of chemical reactions.
In one approach, the teacher lectures to students about the abstract issues involved in chemical reactions, and about how to calculate the quantities of the various output molecules from the quantities of the various input molecules. The teacher also shows several specific examples on the board. Then students are given many examples to work out on their own, using scratch paper and a calculator. Students have varying success in arriving at the correct answers. This is in part due to variations in how well they understand the nature of chemical reactions, and in part due to variation in their abilities with arithmetic, their handwriting etc.
In another approach, after the lecture the students spend one or more class sessions in which they are coached in writing their own computer programs which can "solve the problems for them". They also write programs to animate the input-output process of chemical reactions. They then apply their programs to specific example reactions. This latter approach has several advantages:
- 1) Rather than dealing only with specific examples, children work directly with the general or abstract problem of how chemical reactions work. In particular, they engage with this abstract framework by working to embody it in a computer program which can itself solve any specific instance.
- 2) Children are engaged creatively in a design problem with multiple possible solutions (i.e., multiple computer programs with different form but the same ultimate function), rather than in a rote problem whose only goal is to arrive at the correct answer. This can lead them to be more engaged with the material and to gain a greater sense of accomplishment from their work.
- 3) Computer programs are a form of abstract expression which children can share with one another and can explain to one another. This is in contract to hand-written arithmetic calculations which are often difficult (and boring) for children to attempt to rationalize, share or explain in words after the fact.
- 4) Children get the thrill of producing visual outputs that depict the concepts under study.
- 5) Even during the design phase when the program does not yet function, a versatile programming environment will give feedback to the student, allowing him or her to visualize what is going wrong and more importantly how it is going wrong. The student can then learn to follow the right path to correcting the problem. In addition, mistakes or changes made in a computer environment can be more easily reversible than pencil or paper calculations, in which it can be very difficult to back-track. This can allow students to try more strategies more quickly. Too often, science and math questions are portrayed as a linear route to the correct answer. Programming can allow students to explore the entire landscape of correct and incorrect solutions and in this way acquire a robust understanding of how the correct paths to the answer function and relate to one another.
- 6) We believe that with the proper design of programming tools and programming-based activities for children, these approaches may be easier for students to learn than those currently practiced.