# Interesting Projects–A Collection

It seems as though teachers are always looking for new projects to use with students. Projects get stale (at least to a teacher who has been grading lots of them for a long time) or seem to not fit with a current crop of students or just never seem right. So the hunt goes on for more. When I come up with programing projects I like to post them here on my blog for use, comments, feedback and in the hopes that people will help make them better. I tag them with the projects tag to make them easier for people to find as well. But recently it struck me that an annotated list of some of the more interesting projects might be in order. So here it is.

Programming Projects Using Arrays This is a collection for the APCS mailing list of projects teachers have suggested for teaching arrays. They should work with any programming language.

Whack Something Game for Windows Phone 7 – This is a “how to” I wrote for creating a whack a mole style game for the Windows Phone 7. It could easily be used/modified to create a similar game for Windows or the Xbox since it uses XNA Game Studio.

The Credit Card Project – Do you know how credit cards are validated? I think a lot of students would be interested in this project that includes knowing something about the codes that identify types of credit cards and a check digit to validate the number.

FizzBuzz–A Programming Question – this was based on an interview question I read about. The comments are interesting and include both a lot of discussion about this particular project and similar questions. This one uses loops and discussion statements in an interesting combination.

Lines Can Be Fun This is a discussion of some interesting graphical line drawing projects. There is some sample code using Small Basic but you could use these ideas in most languages that support simple graphics.

Would you play this game? A simulation of a card game with the idea of determining if it is a reasonable game to play as defined by being something one can actually win at. It uses random numbers, arrays and loops.

Visualizations and Sorting Some ideas around projects that show or play as in sound how sorting algorithms work. Something to make sorting more interesting than just “magic” behind the scenes.

ASCII Art For Fun and Projects – Old school ASCII art projects may seem passé but a lot of today’s students don’t know about them which makes these ideas “new to them.” And they can be fun.

Monte Carlo Simulation – Slot Machines – How do slot machines work? Add some graphics to this one and really make it rock.

Monte Carlo Simulation – Roulette – how does the house win at Roulette? Random numbers, probability and creating a simulation are all a part of this project.

Who Designed That User Interface – How would you design an ATM interface? Yeah it involves money. This is a chance to not only have students implement a user interface but learn about data checking/validation and how it all fits with usability.

Are You Using a Strong Password – On one hand this is a simple data validation project that looks at characters and does some evaluation. On the other hand it is an opportunity to talk about security, what makes a strong password and why strong passwords are important.

Coding Up A Coded Message – Not surprisingly this is about codes and cyphers. I find that a lot of younger kids are fascinated with hiding messages with codes. This allows for a lot of interesting character manipulation and some good algorithm discussions.

Fun With Formulas Did you know that horsepower was based on James Watt finding that a work horse could lift a 1,000 pound weight 33 feet in 60 seconds? I didn’t either but it makes for a fun project. Sample code in C#, Visual Basic and a screenshot of a cool solution table using Excel. Yep, programming sorts of things in Excel. Who knew?

Fun With Colors Move the sliders for red, blue and green to adjust the color values of a color display. This is the sort of thing designers use for all sorts of color picking routines. It shows something about how color mixing works as well as making a fast and easy project to let students experience success quickly.

Binary Number Game – A lot of traffic comes to this blog from people looking for ways to teach binary numbers. This post describes one good learning game/project and opens the door to more with a little imagination. One might as well make a game out of learning when possible.

The Four Digit Problem – How would you randomly pick a four digit number with no repeating digits? Would you use recursion? You could. Or loops? That would work as well. What’s the best way to do this/

A Simple Check Digit Project This project uses the formula for validating passport numbers. With more and more people needing passports at a younger and younger age this project has some relevance to many. Having a meaningful project to discuss check digits (which are apparently not as inherently interesting to everyone as the yare to me) makes this a pretty good project if I do say so myself.