There are many cognitive tasks that people can do easily and almost subconsciously, but that have proven
extremely difficult to program on a computer. Artificial Intelligence (AI) is the process of developing
computer systems that can carry out these tasks, and it is devoted to the computational study of intelligent
behavior. Such intelligent behavior includes a wide range of phenomena, such as perception, problem
solving, use of knowledge, planning, learning, and communication in order to take a complicated task and
convert it into simpler steps that the robotics system can handle. Based on the Lego Mindstorms robotic
system, this book develops a wide range of techniques in the Java programming language for modeling
these phenomena, including state-space search, several knowledge representation schemes, and task-
The book begins with an introduction to Lego Mindstorms EV3 and leJOS, an open source project
created to develop the technological infrastructure, and a tiny Java virtual machine in which to implant
software into Lego Mindstorms products using Java technology. It then continues with a discussion of
problem- solving techniques, such as breadth-first search, depth-first search, heuristic search, hill-
climbing search, and A star (A*) search, and finishes with robotics behavior programming in Java
multithreading programming with a set of sensors.
A major goal of AI is to give computers the ability to think, or in other words, mimic human behavior.
The problem with this mimicry is that, unfortunately, computers don't function in the same way as the
human brain; that is, they require a series of well reasoned-out steps in order to find a solution. Therefore,
one challenge in robotics programming is how to convert something complex into something simple that
can be done by algorithms. This book bridges the gap between the theoretical AI algorithms and practical
robotics systems by developing a set of algorithms and building them into the well-known Lego
Mindstorms EV3 system in order to achieve an enhanced intelligence.