One neat thing I did in my CS classes in high school was 3D graphics - and I mean in software. It's REALLY interesting to make a wireframe 3D renderer, and the matrix math required to turn 3D points into 2D points is not that difficult. We made textual data files, read them into linked-lists, and displayed them using graph.h; if you think they're up for the challenge, I highly recommend it. The other REALLY cool thing I did was neural networks. You can make optical character recognition really easily - the equations for simple backwards-propagation neural networks (an easy NN solution) are on the web, although they are hard to find. My NN was able to recognize 8x8 pixel characters it had never seen before with 98% accuracy after training it for 15 minutes. Cool stuff. Email me, and I might be able to point you in the right direction.
One neat thing I did in my CS classes in high school was 3D graphics - and I mean in software. It's REALLY interesting to make a wireframe 3D renderer, and the matrix math required to turn 3D points into 2D points is not that difficult. We made textual data files, read them into linked-lists, and displayed them using graph.h; if you think they're up for the challenge, I highly recommend it. The other REALLY cool thing I did was neural networks. You can make optical character recognition really easily - the equations for simple backwards-propagation neural networks (an easy NN solution) are on the web, although they are hard to find. My NN was able to recognize 8x8 pixel characters it had never seen before with 98% accuracy after training it for 15 minutes. Cool stuff. Email me, and I might be able to point you in the right direction.