Projects
Below is a list of 22 possible projects in case you are out of ideas of what to work on. (And there are more on the way.) For each project I have written a basic description, noted some possible features that you might consider implementing, and in some cases provided linkes to relavent information.
Note, however, that most of these projects are fairly open ended. It's up to you to decide how sophisticated and elaborate you want to make your program. The thing I care about is that you are writing code and solving problems.
You are also not limited to these projects. The absolute best way to learn to program to have a goal that you actually care about that you can achieve with the help of a computer program. That goal might be to recreate a favorite computer game or write a brand new game that you've always wished existed. Or maybe you have some information you want to organize or manipulate in some way that is tedious to deal with on paper. Or maybe you want to experiment with computer generated graphics. So if there's something you want to work on that's not on this list, let's talk about it so I can give you some pointers about how you might get started.
Artificial life
Codes and ciphers
Games
Genetic algorithms
Graphics
Simulations
Solvers
Tools