Our Mission is to increase the quality, quantity, and diversity of students who choose to study computer science, through experience with real-world group software engineering projects.
We teach kids software engineering by forming them into a project group to build their own modern object-oriented version of the 1970s game "Hunt the Wumpus." We pair teams of students from local schools with mentors from Microsoft and other local companies. We provide a Hunt the Wumpus game spec, assign each student to design and build a part of the game, and help them through the process. Mentors visit the school once a week to work with the students in class. At the end of the school year, we invite the teams to a final event at Microsoft where they demo their games, win prizes, and hear from Microsoft speakers.
Wumpus is a team-centered project, expected to be used with teams of 4-6 students, but scalable to as low as 3 or as high as 8 students. We choose the team size, in consultation with the teacher, based on the coding skills of the students in the team. More highly-skilled students can handle smaller teams. We do not usually allow individual or 2-person teams, however, because part of the expectation is that students must learn how to work together. Teamwork is an indispensable part of professional software engineering; professional software developers cannot succeed individually, and neither can Wumpus students.
The Wumpus curriculum is designed to teach about teamwork and communication. We work with students who have already grasped the basic mechanics of coding. We have students convert the game specification into code plans, then communicate with each other about overlaps and gaps in their plans as they do their coding. We will help with coding as needed along the way, but our objective is to show students that there s much more to software development than just coding.
We provide the students with a spec describing the game they will be building. Hunt the Wumpus is a turn-based game where the player is exploring a cave system with hazards such as bottomless pits and bats, trying to figure out where the Wumpus is and shoot it with an arrow from an adjacent room. Conflicts such as falling into a pit or walking into the same room as the Wumpus are handled by asking the player trivia questions.
We also define a set of objects that the team should implement, such as: Cave, Trivia, Game Control, User Interface, Hazards, High Score, Sound. Usually each student in a team is assigned to implement one object. The number of objects the team is expected to implement varies with the number of students on the team. This way students can work independently on their objects. We do not provide a specific interface they must implement: we work with the students to define the responsibilities of their objects, turn those into code, and communicate with each other about responsibilities and needs.
We allow students a lot of flexibility to redefine the project in their own way. They are allowed to change the objects and change the spec. They can build an entirely different game, if they want to. The spec provides a structure for a project that can feasibly be finished in the given time period, and that can reasonably split the work among multiple people in a team. We will give the students guidance if we don t think their alterations to the plan can achieve either of these goals, but sometimes we will let them learn the hard way if they try something too ambitious. In all the flexibility we provide, we keep a guiding principle that we want the students to have an enjoyable software development experience where they gain some insight into what professional software engineering is like. Whether that means providing more structure and easier goals to weaker coders, or providing more flexibility and bigger challenges to stronger coders, we will do it.
Many of the classes we work with are studying AP computer science, which is taught in Java. However, the preferred language we work with is C#. This is partly due to the skill-set of our mentor pool, partly due to the strength of Visual Studio as a coding and debugging tool, and partly to show students that their skills in Java can carry over to other languages. C# is similar enough to Java that we find that students pick it up quickly. However, we choose our primary language in consultation with the teachers. Java is an option, though building a game with a working UI is a bit harder in Java than in C#.
We also allow flexibility for student choices every year some groups choose to build projects in Unity or other game engines, which ends up dictating the language they use.
Teachers do not need to invest any time preparing lesson plans for the project. We bring the curriculum and mentors. Early classes start with a 15-30 minute lecture and then project time; later classes are all project time. We prefer for teachers to pay attention during lectures so they also understand the assignments and expectations. This way, teachers can support when we are not there by answering questions and reminding students to work on their projects.
School IT departments often either dictate the choices of language and source control systems, or need to make changes to support our choices. Tools like Visual Studio, VSCode, Eclipse and git need to be usable at the school. Our initial planning meetings with teachers usually involve choosing tools and making sure they are set up for use on school computers. Access to sites such as GitHub also needs to be verified.
The schedule and format vary per school as we fit the needs of the teacher and class. With most of our schools, Wumpus is an add-on to the AP computer science class. In most schools we start the project around late January / early February, visiting class one day per week until about early April. We take a break from Wumpus while the students prepare for AP exams, and then students work full-time on Wumpus after the AP exams until the end of the school year. We aim to get at least 10 weeks, preferably 12-14 weeks, of project time.
One of the things that makes Hunt the Wumpus exciting and rewarding is the opportunity to compete and win prizes. At the end of the school year we invite all schools and teams on a field trip to Microsoft. At the field trip we usually ask a speaker or two to talk about what it is like working in software. We award prizes to the top projects, and give students a chance to demonstrate their projects to the rest of the schools. We provide snacks and food, t-shirts and raffle prizes to make it fun. We also hold a short ceremony at the field trip to thank all of the mentors who invest their time to make the program happen.
We use a judging rubric to guide our judges in how to score the projects, and we provide this rubric to the students ahead of time. Historically we have had students show their projects to judges at the event, but we are evolving to do online judging. This presents some logistical hurdles with online submissions, but it saves time at the event, and gives judges more time to do thoughtful project evaluations and provide useful feedback to give to the students.
The Hunt the Wumpus project experience enforces AP computer science concepts and practice coding. Students get a realistic example of how software is built, learning the importance of communication and planning. They gain exposure to multiple software engineering disciplines. They also get valuable time with professionals who can talk about their own experiences in software.
Since we scale the project to both challenge top students and support weaker ones, we aim to make sure every student has a positive experience with software development. Even if they learn that it is not their favorite discipline, it is a valuable experience. They will better understand how to apply coding skills in their preferred subject area, and the communication skills they build will transfer to any field.
Hunt the Wumpus is also a source of monetary donations to the classroom. Microsoft matches employee volunteering time with a donation of $25 per hour to the school. At some of our schools, Wumpus volunteering ends up funding extra programs such as robotics and 3-D printing.
Please note, Wumpus is not a source of internship opportunities. We do not have a pipeline to funnel students into high school or college internships at Microsoft or other companies. However project experience like this is a valuable asset on any student resume.
There are many reasons for Microsoft to operate the Hunt the Wumpus project. Strategically we are connecting with the next generation of Microsoft employees, customers, and partners. (We know of at least half-a-dozen Microsoft employees who were once Wumpus students!) Mentoring students involves many of the same skills that managers need, so we are growing management experience in our employees. Solving student problems helps keep us sharp. And it gives our mentors job satisfaction, to have opportunities to contribute to the diversity and quality of younger generations of computer scientists.
In 2024, six local schools participated in Hunt the Wumpus: Bothell High School, Eastside Preparatory School, Innovation Lab High School, Garfield High School, Inglemoor High School, and Redmond High School. Across these schools, a total of about 40 teams built projects, made up of just over 200 students.
The original Hunt the Wumpus game was a text-based adventure game invented by Gregory Yob in 1973. For more information on game history, see Hunt the Wumpus - Wikipedia.
The Hunt the Wumpus mentoring program was started at Microsoft in 2004. Most of the program has operated in the greater Seattle area, but we have had branches in other states and even other countries.
The size of the program varies based on interest at local schools. At its peak just before COVID, there were over 270 students participating in Wumpus. The program shrank dramatically during COVID years, but has been rebuilding strong, returning to over 200 students in 2024. In its over 20-year history, Hunt the Wumpus has enriched the high school experiences of thousands of students.