Additional profile information on Alfred Thompson at Google+
John Montgomery is really asking the good questions these days. One of the things that teachers struggle with is of course how to explain difficult concepts to younger and younger children. John asks about explaining inheritance to an eight-year-old as one very specific example. There is some discussion and some ideas in the comments to his blog already. Do they work for you?
How do you explain programming inheritance? Does your explaination scale down to the level of an eight-year-old? If so I'd love to read it and I'm sure that John would as well.
The write up and the project are not my work but come from a partner team here at Microsoft. I think it well worth passing along.
What do we work on now that the AP exam is over? Hunt the Wombat is a 4-6 week project designed to give AP Computer Science students the opportunity to apply their programming skills, gain broader awareness and understanding of the software development process and have fun along the way. By participating in a “real world” scenario where they build a computer game, students can gain experience with project teams, methodologies and core development phases: Discovery, Design, Development and Deployment.
The idea for the project was conceived when a computer science teacher at a local Seattle area high school talked about post-exam projects with a former student who now works at Microsoft. The Microsoft team created project-based material for the high school students to build the game called, Hunt the Wumpus. The original game was developed by Gregory Yob and published by Creative Computing in the September/October 1975 issue. Since then, it has become a popular game for programming enthusiasts and college students to reprogram in the language of the day.
The “solution” to this project is a working version of the Hunt the Wombat program based on the one created during the Microsoft-student liaison. The course design team has standardized and cleaned up the code as well as added some sophistication to the graphics. However, much of the program design and algorithms remain intact. As with any problem, there can be many ways to solve it. Part of the fascination of this project is seeing how the student teams interpret the requirements and develop their solutions.
Our scenario begins with the Project Manager, Chad, welcoming the students to the Monkey Barrel Software Company. The previous Development Lead, Moe, left the company and took his team of developers with him. The students have been “hired” to pick up where Moe and his team left off. The 4-5 member teams are competing against each other to have their software selected as the final product to be distributed in SemiColon Cereal Company’s cereal boxes.
In our version, the game is called Hunt for the Wombat. The player is lost in a cave made up of 30 interconnected rooms. Moving from room to room in search of the creature called the Wombat, the player wins the game by shooting a dart into the room where the Wombat is hiding. The player can buy more darts and avoid hazards by answering trivia questions along the way. The player loses the game if he moves into the same room as the Wombat and is unable to survive by answering the trivia questions. The original game had bats and pits as hazards. Our creative team gave it some new flair and substituted electromagnets and vortexes. The player is a RoboAnt.
-An in depth chapter summary article each of the 6 units.
-An interactive HTML version of the course that students can work with locally.
-A set of project tasks with annotated solutions.
-PowerPoint slides to deliver a lecture on each unit to your students.-Project files with sample code for you and your students to get started.-Exercises to practice the skills and master the concepts.
Upon completion of the project, students will be able to:
· Work in a team of 4-5 members to develop a software project
· Demonstrate leadership and communication skills as a member of a team
· Describe how a software development effort is organized and the roles of various team members
· Identify the advantages and disadvantages of different development methodologies
· Describe four phases of the software development process
· Interpret system requirement and design documents
· Create and adhere to programming style guides and standards
· Write project plans, status reports, and project documentation that includes class diagrams, internal program comments and a user manual
· Execute unit and user acceptance testing
· Prepare a Marketing presentation for the project
· Prepare a post-project reflection
· Some AP students using Visual Studio .NET may not have programming experience with topics outside of the AP skill set. The course explains and gives code examples in the following areas:
o form and menu creation
o graphics handling
o text file processing
o key press events
o using parseInt
· Students should be familiar with the Java syntax and that students are competent in the AP Computer Science skill set
· Students should be capable of using a development tool like Visual J# and have some version of Visual J# loaded and working on a PC workstation (either in Visual Studio .NET 2003 or Visual J# 2005 Express Edition or higher)
· Download the curriculum materials here.
· If your lab is not equipped with a current version of Visual Studio, Visual J# 2005 Express Edition is available for download free here. Students are also welcome to download and install this software on their home PCs as well.