Author: Jeff Kinne Contents: This file contains some ideas for C/C++ projects that might be fun for you to try out on your own. The only way to really learn programming is to try things out on your own (and get excited about it). Note: You'll only be able to do these if you are already a decent programmer. If you are still not a very good programmer, look at the practiceQuestions.txt file in this directory for references to look at (read them!), and do a bunch of those practice questions. After you're able to do those practice questions, then come back to look for a project to try. Project ideas: 1) name: games, games, games description: Code up any game that comes to mind. Here are a few that might be do-able, depending on how good a programmer you are: tic tac toe, connect 4, checkers, chess. advice: use a 2-dimensional array to store the state of the board advice: don't worry about making a computer AI. get it working with people choosing the moves first. advice: don't worry about checking if the people are making valid moves. get it working without checking for that first. examples: http://cs.indstate.edu/~jkinne/cs151-f2013/code/tictactoe.cpp http://cs.indstate.edu/~jkinne/cs151-f2013/code/maze.cpp http://cs.indstate.edu/~jkinne/cs151-s2013/code/connect4.c 2) name: more games description: Code up a classic video game. Video games require movement on the screen, which means you need more than just cout/cin or printf/scanf. One way to do movement is to us curses. reference: for curses, search for C curses. examples: http://cs.indstate.edu/~jkinne/cs151-f2013/code/bounce4.c http://cs.indstate.edu/~jkinne/cs151-f2013/code/readFromScreen.c http://cs.indstate.edu/~jkinne/cs151-f2013/code/stars.cpp http://cs.indstate.edu/~jkinne/cs151-f2013/code/bounce.c http://cs.indstate.edu/~jkinne/cs151-f2013/code/snake.cpp http://cs.indstate.edu/~jkinne/cs151-s2013/code/typingTimer.c http://cs.indstate.edu/~jkinne/cs151-s2013/code/simpleEditor.c http://cs.indstate.edu/~jkinne/cs151-s2013/code/simpleEditorColor2.c http://cs.indstate.edu/~jkinne/cs151-s2013/code/simpleCursesMouse.c 3) name: find huge primes description: Geoff Exoo and I have been finding huge prime numbers (tens of thousands to millions of digits). How large of a prime number can you find? goal 1: using 64-bit integers and trial division, find the largest prime number you can that is only composed of odd digits. goal 2: same - prime only composed of odd digits, but now use the GMP library to deal with numbers larger than 64 bits. examples: search for gmp c or gmp c++ online goal 3: use a more sophisticated method than trial division to verify a number is prime. use the Fermat primality test to test if a given number is prime. Or use the Miller-Rabin primality test. There are versions of these in the GMP library that you can use. goal 4: use the Lucas prime test to generate prime numbers. Ask me about this... 4) name: typing practice description: Make a "teach typing" game that kids could use. Be creative... 5) name: calculator description: make a program that acts kind of like graphing calculator. make it so you could type something like 5+5, and the program would compute that for you. to make it work, you'd need to be able to read that as a string and then separate out the numbers and the operators. 6) name: other ideas description: make up your own, or search for project choices on http://cs.indstate.edu/~jkinne/cs151-s2013/assign.html for some other ideas.