Introducing Computer Science with Project Hoshimi Ramiro A. Berrelleza Pérez
Javier González Sánchez
Maria Elena Chávez Echeagaray
B.S. Computer System Engineering Tecnológico de Monterrey, Campus Guadalajara Zapopan, Jalisco, México +52 (33) 3669 3000
Computer Science Department Tecnológico de Monterrey, Campus Guadalajara Zapopan, Jalisco, México +52 (33) 3669 3000
Computer Science Department Tecnológico de Monterrey, Campus Guadalajara Zapopan, Jalisco, México +52 (33) 3669 3000
Keywords Project Hoshimi, programming
Abstract Introductory programming course have two very specific difficulties for novice students. First is the lack of real world examples in the sessions. It is very difficult to find areas of application where all the students are familiar enough and that offers challenging and engaging examples. Second it is the lack of palpable results of the job done. Introductory courses in other fields generate products that the students can show to others, and feel proud about it. In CS1, for example, explaining loops by printing a series of numbers on the screen doesn’t yield the same sense of accomplishment as drawing a basic perspective in an architecture course. We propose using Project Hoshimi , a Microsoft Platform, as a base for introducing computer programming to CS1 students. Through the paper we discuss how it could be implemented in the classroom, the main advantages and disadvantages in our experience of using Project Hoshimi, comparing its use against other more traditional approaches, as well as against other graphic programming methods such as Alice or videogame based learning.
1. INTRODUCTION The inclusion of videogames in the CS1 courses has been proposed in several papers , as a way of making courses more challenging, and interesting. It is a fact that videogames are part of actual students' life; it is for sure that they have had some experience playing with them. The important concepts of competition, scoring and winning are familiar and attractive among current CS1 students. There is also the proposal of using visual oriented programming environments, focused on teaching programming basics. This kind of environment emphasizes logical deduction and spatial reasoning, rather than calculation and algebraic reasoning. The features of the environment are introduced incrementally; once the students learn the details of an apparently simple programming language, they will soon be designing well structured programs. Along the way, the students will start learning the art of solving programming problems. A variant of this approach consists in the use of visual environments to teach programming concepts, being an example of this Karel the robot . Another variant of this approach is the use of 3-dimensional interactive animation
Categories and Subject Descriptors K.3.2D.3.3 [Computers and Education]: Computer and Information Science Education – computer science education, curriculum
environment, like Alice .
General Terms Programming, Teaching Computer Science, Visual Programming Environments, CS1
Project Hoshimi could be the next step in this path. Taking students into a competitive 3D world, where they are the center of a comic strip adventure, has proved to be an engaging experience. By having students designing strategies to complete objectives, as well as competing with all of their classmates, we could provide a more interesting environment for teaching and learning CS1 concepts. Project Hoshimi was created as one of the competitions of the Microsoft Imagine Cup at Japan 2005. In the competition, students from around the world write code that repre-
Copyright is held by the author/owner(s). OOPSLA’07 October 21–25, 2007, Montréal, Québec, Canada. ACM 978-1-59593-865-7/07/0010.
the needle is filled with 100 units of AZN molecules, the collector can go to another needle and repeat the process. Points are scored every time the needle is filled.
sents the behavior and strategy of a team of characters, nanorobots, which have been injected in the human body, trying to save it from all kinds of diseases. Nanorobots navigate through different missions, each with a unique layout and objectives. The resulting strategy is played out in a virtual 3D representation of the human body, allowing students to graphically see what their program (their logic and strategy) does and how it (their code) works. Figure 1.
Teachers or students could design their own scenario through different maps and objectives. This makes Project Hoshimi an attractive tool to learn due its versatility.
3. ABOUT VISUAL TEACHING TECHNIQUES Current practices for teaching computer programming focus on two different practices. In the classical approach, the teacher will first give the student a lecture on the theory, such as the uses and application of for loops. Then, he will proceed to the practical part, showing some code on how to code for loops in the elected language. Then, the student will get some homework where he has to create a little program that somehow uses for loops. The main critique that this approach faces is its very steep learning curve, especially when the students make mistakes while coding and have to deal with compiler errors, usually leading the inexperienced programmer to lots of frustration. Also, this technique fails to help the students understand the real application of the concepts being taught: using a very simplistic example (since the student couldn’t handle a complex and real one), the result is meaningless, useless code that doesn’t solve any particular problem.
Figure 1. Hoshimi project scene
2. WHAT´S PROJECT HOSHIMI? Project Hoshimi is a game in which Dr. Hoshimi finds a cure for all diseases, in the form of nanorobots. The nanorobots have to be injected into the human body, where they are ordered to find virus and destroy them, as well as going to certain key body points to deliver medicine.
Some of the issues have being addressed with the creation of languages specially tailored to a learning environment. These languages, such as SP/K , try to reduce the complexity of learning to program by limiting the characteristics, and gradually increasing them as the student learns. However, this particular solution doesn’t solve the problem of training student in a language that has no real application outside of the classroom.
A Project Hoshimi scenario may consist of a series of different objectives. The most important objective is to have the main nanorobot (named NanoAI) alive by the end of 1500 turns. There are also navigational objectives, in these, a nanorobot has to reach a certain point of the map before a certain amount of turns have passed. Another kind of objective is enemy destruction, where some, or all, of the opponents nanorobots must be destroyed by the end of the game. Finally, there are point objectives, where the player must have scored a certain amount of points before the game is over.
The second approach can be called Visual Programming Environments, an effort clearly exemplified by Alice . In this approach, the students are taught how to program by dragging blocks, each of them representing a structure, such as a for loop, or an if statement. This approach, which resembles construction of flow charts, tries to isolate the student from the code while he learns how to think like a programmer. However, the main problem with this approach is precisely its main philosophy, isolating the student from the code. When the course on Alice finishes and the students take a course in a non-visual language, such as Java, or C, there is no resemblance to what they previously learned. Having now to work directly with code, instead of using graphics or icons, it becomes very hard for the students to relate what they learned to actual programming .
Points in Project Hoshimi can be collected by in different ways. The first way is by destroying enemies. Each destroyed enemy will give the player a certain amount of points. Also, a player can score points by filling NanoNeedles. For a needle to be filled, a special kind of nanorobots, called, collectors, have to collect AZN molecules (a type of medicine), and then transport them to a certain special location in the map, called Hoshimi Points. In those points, the NanoAI has to build a NanoNeedle. Once the needle is built, the collectors can transfer the medicine to the needle. Once
A third mixed approach has already being gaining popularity in several schools around the world. The approach,
point”. By using this mode, the student is capable of exploiting about 90% of the functionality available. This mode is focused towards nonprogrammers as well as novice programmers.
based on programming videogames as part of the CS1 course curriculum, is developed by taking the previous problems into consideration, and somehow solving them. In this approach, the students are much more interested, since they are doing something they are more attracted to. And when students are interested they work harder, and learn more .
And finally, there is the Expert mode. In this mode, the student has to write the code of their strategy in C#, instead of using the click and play interface. This mode, the most flexible and powerful, allows the student access to the full functionality of the SDK. This mode is focused to experienced programmers.
However, there have been some problems with this approach. The main problem is that creating videogames is inherently difficult, and requires a lot of knowledge outside the scope of a CS1 course. For example, the creation of graphics, or enemy intelligence, dwells with programming concepts that are unreachable for the average CS1 student. These problems can cause frustration, incurring in the same problems that traditional programming methodologies have.
This model of progression offers a very interesting challenge for the student. First, since the platform, and the knowledge acquired through its use, can be used in different courses, the student has an extra motivation in learning the platform, since he isn’t learning something that has to be discarded by the end of the course. Second, the platform itself offers different levels of difficulties, so it never becomes a trivial exercise, even when the student’s skills increase. The Project Hoshimi SDK can be used to teach object oriented programming, or flow control structures at basic courses, but it can also be used in advanced courses, such as AI, to teach about path finding algorithms, or graph walks, among other things. And third, since the platform is supported by a world competition with cash prices, there is also a motivation in gaining notoriety and prizes as the skills and knowledge of the student increases.
The ideal method, then, should present a mix of the aforementioned methodologies. An approach that takes advantage of the ease use of graphic programming, but allowed the student to start coding little by little could be ideal. Adding to this the use of meaningful examples, and a way to clearly visualize the explained context could improve the learning process, while letting the student get familiar with writing code. 4. INCREMENTING THE CHALLENGE When learning a new tool, it is crucial for the student to see a value in investing time in learning that tool. For a student, it is very common, and frustrating, to learn a tool that the next semester will be useless. This feeling has a direct impact in the student, preventing him for embracing the platform with interest and good spirit. At the very least, the platform must offer the student a possibility to use it in other curses, or better yet, in extra-academic projects. The Project Hoshimi SDK offers this advantage, by offering an incremental challenge according with the student skills and background. The SDK offers three different levels to play. Each level is targeted for a different skill level of computer programming.
It might sound as a large trip to go from a Discovery mode to a Intermediate mode and even larger to an Expert mode. Project Hoshimi offer a very well defined and transparent way to cross form one mode to the next one. Students will grow up their skills and will be able to translate a task into an abstraction and finally into a piece of code. 5. PROJECT HOSHIMI AND THE CLASSROOM Project Hoshimi is used in the classroom as a way to implement the mixed approach mentioned in the two previous sections. This could be implemented by creating customized scenarios that present the need of using a certain programming structure covered through a lesson. Teacher will then present the scenario to her students, and let the students try and solve the problem.
The first one, called Discovery mode, functions as an exploratory mode, fit to discover what the game is all about, and to try out very basic strategies, everything through a simple click and play interface. In this mode, the strategy is based on tasks, with very little chance of abstraction. For example, in order for a nanorobot to go from point A to point B and then to point C, the student has to add a task ordering the nanorobot to move from point A to point B, and then add another task to order the robot to move to point C. By using this mode of play, the student is capable of using approximately 40% of the SDK’s capabilities, although in a very simplistic way. This mode is targeted for nonprogrammers.
Let’s analyze the following scenario. The CS1 teacher creates a map where the main objective is to have a nanorobot extract AZN molecules from a certain AZN point, and then transfer the molecules to a certain NanoNeedle. A nanorobot can transfer up to 20 units of AZN molecules at a time, while a NanoNeedle is filled with 100 units, thus needing 5 round trips in order to fill the needle. At the first try, the student, using the Discovery mode, would have to start adding tasks, ordering the nanorobot to go to the AZN point, collect the molecules, go to the NanoNeedle’s point, transfer the molecules, go back to the AZN point, collect more molecules, and repeat until the needle is full. Since this mode doesn’t allow the use of loops or conditionals, the student is
The second game mode is called Intermediate mode. This mode also uses the click and play mode, but now the strategy isn’t task based, but of a more generalized nature, allowing the student to create adaptive strategies. In this mode, instead of issuing direct commands, the user can form his strategy based on abstractions, such as “move to the closest objective 910
idea that Project Hoshimi platform could be used in courses different from CS1. Since there is a utility after a single course, student would spend more time learning and mastering the platform to solve further complex applications.
forced to add over 20 different tasks, several of them being equal. By then, the students realize that they are repeating a lot of instructions. At this point, the teacher starts explaining about loops, and how they can simplify this kind of scenarios. Armed with the knowledge that loops exist, the students can then use the Intermediate mode, and design a strategy where they implement the use of loops, effectively reducing the size of their strategy, although still using the click and play interface.
6. CLASS RESULTS During 2007 we use Project Hoshimi in three different scenarios: A. High-school students. We used the Discovery mode with a group formed by 6 women and 11 man highschool senior students in order to explain what computer science is in a practical way using three sessions.
Sensibly students on how important is to implement algorithms whit smaller and powerful code is one of the CS1 course objectives. Project Hoshimi provides a great environment where students can see how one strategy could be define with a bunch of tasks and then how the samestratey could be written in a short piece of code, that means less time and effort that will be reflected on a better performance of his strategy, that finally means he has a better chance to win among his classmates.
B. Training to Imagine Cup. We use with a group formed by high-school and computer science students. The objective of this workshop was to train teams to participate in the international contest auspiced by Microsoft. Beside this objective, we wanted to evaluate the Project Hoshimi applicability and feasibility working with heterogeneous group of students, non programmer students and advanced programmers students working together. Students worked on a five hours based sessions on Saturdays.
When the student is ready to handle some code, teacher can present the Expert mode, and repeat the same exercise. While the student is actually coding the loop, he is able to relate easier what he previously learned, since he is using the knowledge acquired complete an objective where he already realized the need for a for loop. By employing scenarios such as this, we are, while still retaining the ease of use of the graphical programming approach, avoiding the complete isolation from code. Also we are providing students with meaningful examples, allowing them to realize by themselves the reason why a certain structure should be used, as well as the link between the dragging orders, and writing code to implement the same thing, facilitating the learning process through the entire lesson.
C. CS1 course. Finally we use Project Hoshimi as part of a CS1 course for first semester students of B.S. Computer Systems Engineering. Through these three scenarios we can confirm what we mention before about Project Hoshimi. Advantages of Project Hoshimi are similar to the ones mentioned in the use of videogames and visual environments, but with some additional elements: 1. Motivation: (a) Some students find games very motivating, and (b) Many students have prior experience with a variety of computing games, so using games in courses connects with students’ background. Project Hoshimi also generate a competitive environment, which is well received among the male students. However, since the structure of Project Hoshimi isn’t a real time environment, but a simulation of the strategy already created, it also encourages the application of socially constructive skills, which have been proved to be very well received among female students . Having teams conformed within equal number of males and females is a good experience. Another factor that proved to be beneficial occurs when the students present their results to the class. If we consider that all the students have to pay attention when the strategies are being simulated on the screen, we are also diminishing the distraction factor, normally inherent with videogames.
In more advanced courses, we could have a scenario where the objective is not to use control structures, but something more complex. One classical example for AI programming is Hunt the Wumpus . Theacher could create a scenario very similar to this, where a group of enemies are moving around the human brain. The students will then be required to code the necessary AI for their nanorobots to navigate the scenario, avoid the enemies, and arrive safely to a key map point. The learning process could be the same than when running the classical Wumpus problem. However, it would be much more attractive to students to see a group of nanorobots navigate a 3D scenario, that a console screen printing messages describing the same scenario. Once again, current generations are very visual, and are more stimulated and attracted by graphical descriptions than by textual representations. Scenarios like these exemplify the broad use of Project Hoshimi for different courses. While the use of Project Hoshimi is not suitable for every course in the CS curriculum, it can be very helpful in some of them, especially CS1, algorithms design, and AI. These examples help to reinforce the
2. Fancy graphics capture students' interest and imagination. It is important that graphics are involved, but the students must not have to create them, as it is if they were programming a videogame in Java or C. Familiarizing the student with the environment consume precious time, available for such fundamentals as algorithms, data structures and soft911
graphical environments such as Alice prove to be worthless once the student learns how to program, Project Hoshimi showed a lot of potential in more advanced classes, especially AI.
ware engineering. This is a big advantage of visual environments such as Project Hoshimi over projects involving the development of a complete videogame. 3. Project Hoshimi is easy to understand, so developing strategies directly highlight problem solving, data structures, classes/methods, and other high-level skills. In tests conducted at our university, high school nonprogrammer students took about 1 – 2 hours to learn the basics of Project Hoshimi, enough to start coding their own strategies to the problems presented.
Next step in this research is to teach a whole summer course using this platform. The idea is to have a CS1 course taught over the course of 4 weeks, with about 20 students, ideally with 10 male students and 10 female students. Testing Project Hoshimi throughout the length of a regular summer course will allow us to observe the learning process with more detail, as well as register the reactions of the student. Also, having a group with 50% gender distribution would allow us to analyze if there are differences in how each gender learns and takes advantage of the platform. A satisfactory result in the summer course could lead to the design of a full semester CS1 course using Project Hoshimi as the main development platform.
4. Project Hoshimi provides options for creativity in assignments, possibilities for extensions, and opportunities to develop projects through a sequence of assignments growing in complexity. 5. Project Hoshimi allows assignments to be described in layers, where a moderate level of functionality is required for a “C” grade, additional features constitute a “B”, and extensive refinements yield an “A”.
Acknowledgments The integration of the Project Hoshimi technology at Tecnológico de Monterrey Campus Guadalajara has been supported by Microsoft Education Mexico.
6. Project Hoshimi provides opportunities for the early introduction of elements of modern technology, such as client/server computing, concurrency, and object-oriented programming.
References 7. COMMUNITY
 Project Hoshimi official website, Retrieved March 16, 2007 from http://www.project-hoshimi.com/
Last but not least, there is also the benefit of a growing com-
munity of users of the Project Hoshimi SDK. This is the third year in a row that the Imagine Cup hosts the competition. However, this year the Project Hoshimi is starting to change from a competition of the Imagine Cup to a separate, individual entity. It already has its own website , where the developers and user constantly create and post content regarding their experience with the project. The site even has a separate competition for Project Hoshimi, organizing competitions every two or three months, for fun and prizes. Several participants are starting to post articles, as well as creating blogs devoted to different aspects of Project Hoshimi, from technical aspects, strategy, to creating separate tools for automatic testing of strategies . Even the creator of Project Hoshimi, Richard Clark, is part of this effort .
 Valentine, D. W. 2005. Playing around in the CS curriculum: reversi as a teaching tool. J. Comput. Small Coll. 20, 5 (May. 2005), 214-222.  Ladd, B. C. 2006. The curse of Monkey Island: holding the attention of students weaned on computer games. J. Comput. Small Coll. 21, 6 (Jun. 2006), 162-174.  Bergin, J., Stehlik, M., Roberts, J., and Pattis, R., Karel++: A gentle introduction to the art of object-oriented  Holt, R. C., Wortman, D. B., Barnard, D. T., and Cordy, J. R. 1977. SP/k: a system for teaching computer programming. Commun. ACM 20, 5 (May. 1977), 301-309. DOI= http://0doi.acm.org.millenium.itesm.mx:80/10.1145/359581.35 9586  Powers, K., Ecott, S., and Hirshfield, L. M. 2007. Through the looking glass: teaching CS0 with Alice. In Proceedinds of the 38th SIGCSE Technical Symposium on Computer Science Education (Covington, Kentucky, USA, March 07 - 11, 2007). SIGCSE '07. ACM Press, New York, NY, 213-217. DOI= http://0doi.acm.org.millenium.itesm.mx:80/10.1145/1227310.1 227386
8. CONCLUSIONS The use of Project Hoshimi in the classroom has shown several advantages over both traditional and graphical methodologies. One of the main advantages observed was that the students showed more interest, and were willing to work harder than in typical CS1 classes. This was probably caused by the resemblance to a videogame, a topic in which the students are very well versed. Also, the fact that there was a worldwide competition involving the tool they were learning sparked a lot of interest in the participants. The other advantage seen was that while the platform is very easy to use at first, it provides a challenge at different skill levels. While
 Bayliss, J. D. and Strout, S. 2006. Games as a “flavor” of CS1. In Proceedings of the 37th SIGCSE Technical Symposium on Computer Science Education (Houston, Texas, USA, March 03 - 05, 2006). SIGCSE '06. ACM Press, New York, NY, 500-504. DOI= http://0912
 RaptorXP, Finding a good injection point. Retrieved on March 15, 2007 from http://www.projecthoshimi.com/article.aspx?ID=EN/Raptor/ip1
doi.acm.org.millenium.itesm.mx:80/10.1145/1121341.1 121498  Goldstein I.P. 1982. WUMPUS. In Handbook of Artificial Intelligence II, ed. A. Barr and E.A. Feigenbaum. Addison-Wesley.
 ZogStrip, Playor V2.0. Retrieved on March 15, 2007 from http://www.zogstrip.info/Playor/  Richard Clark, Project Hoshimi. Retrieved on March 17, 2007 from http://projecthoshimi.spaces.live.com/
 Educational Foundation Commission on Techonology, Gender and Teacher Education. 2000. Tech-Savvy: Educating Girls in the New Computer Age, American Association of University Women Educational Foundation.