The table below gives a number of ideas that you might be able to do as a project. The ideas are vague and not well specified, so you'll have to figure out a lot of the details yourself for your project proposal.
In many cases, a web search on some of the keywords here will result in some useful matches. If you find any good related websites, let me know and I'll link them in here.
If you don't understand any of the ideas, talk to some TAs (more than one!). They'll try to describe what they can and even suggest alternative variations of the ideas.
When composing your proposal, try to be as specific as possible. You want to have clear goals so the TAs can decide whether it is too much work or too easy.
Lastly, I want every project to be as unique as possible. If another student has chosen your idea, see if you can make a variation of it. Talking to a TA should help you there. You can have the same idea as another student, but the details of what you accomplish can be very different. Send me mail when you've pretty much decided and I'll mark it as taken. This doesn't mean that others cannot do the same idea as you, it means that they must negotiate between a TA and you to make the project sufficiently different. Use the newsgroup to find out who else has your project idea (I won't be able to keep track!).
Thanks to Alagan for typing this all out!
Ciao and have fun!
| # | PROJECTS | BRIEF DESCRIPTION | Taken or not? |
| 1 | display of a website response timer | implement a digital (or analog) display to show the elapsed time | taken |
| 2 | spell checker | limited version with suggestions for mispelled ones | |
| 3 | a language parser | e.g., Java parser (keywords - red color and others black) | |
| 4 | generate an html and ascii file | e.g., for a course timetable | |
| 5 | generate a personalized exam schedule | display of schedules, conflicts when trying to add new schedule if any | |
| 6 | a GUI for a resume generator | with some entry boxes to enter data (name, a dress, experience etc.) and then display text format (or in HTML) | |
| 7 | a graphical address/phone book | ability to make an address book with provisions for adding addresses, deleting, sorting etc.. | taken |
| 8 | employee record keeping system | implement a simple database with add/update/delete/print | taken |
| 9 | word processor | a primitive wp capable of saving, retrieving text files, formatting pages, .... | taken |
| 10 | calculator | graphical, with basic functionality | taken |
| 11 | traveling salesman | find a path (a circuit!) to visit all the places. must work with any set of cities. plot the path chosen, it must begin and end at the same place! | taken |
| 12 | simulate inventory control | purchase, sold goods | taken |
| 13 | personal scheduler | similar to electronic scheduler with limited functionality | taken |
| 14 | stock trading | may be a stock trading contest | |
| 15 | simulation to help with other courses | e.g., graphical display of 3-D electromagnetic flux given a distribution | |
| 16 | simple circuit analysis | e.g., KVL or KCL - given a circuit diagram, compute the power | taken |
| 17 | marriage problem | sort of match-making according to sets of likes/dislikes | |
| 18 | battleship | e.g, two submarines shooting each other, may be at random, or e.g, the classic "board" game | taken |
| 19 | paint shop | similar to MS-paint, draw something, paint it, save, load, ... | taken |
| 20 | some thing to do with sports stats | eg. fantasy pool organizer | taken |
| 21 | a happy theatre seating program | seat people according to like/hate rules | |
| 22 | monte carlo method for calculating integrals (area) | other monte carlo simulations | |
| 23 | a word scrambler game | guess the anagram! | taken |
| 24 | a fortune teller | answer questions based on a description of the problem | |
| 25 | hangman | game in which player has to guess a word, one letter at a time. for every wrong guess he gets a part of hanging pole | taken |
| 26 | wheel of fortune | game, similar to hangman, less disastrous to losers... | taken |
| 27 | web crawler | search the web for specific things, e.g. mp3 music files | |
| 28 | connect4 | game | taken |
| 29 | mastermind | game - in addition to rule checking, even code-guessing is possible! | taken |
| 30 | cribbage | card game - score a given cribbage hand | |
| 31 | checkers | game - implement the rules of the game, simple computer-player? | taken |
| 32 | game of life | not really a game, see textbook (exercise P9.29) | taken |
| 33 | fractals | see TAs, textbook (section 9.7) | taken |
| 34 | eliza | a simple computer-based psychotherapist. you type a sentence, it rephrases it as a question. for example, it may pick a verb "eat" out and then it asks you "why did you eat then?", etc. | |
| 35 | derivatives | read an equation from user, compute symbolic derivatives. not too difficult... recursive! | taken |
| 36 | plotter | read in x,y values, plot them in graphics, plot simple equations, etc | taken |
| 37 | tamagotchi | a real, living computer ;) | |
| 38 | virtual fish tank | variation of tamagotchi, screen saver, etc. | |
| 39 | paint-by-numbers | display a paint-by-numbers image. user chooses a colour and a region, computer fills in the region. | taken |
| 40 | lite-brite | variation of paint-by-numbers. add animation, colour cycling, ... | |
| 41 | bracelet maker | ||
| 42 | screen savers | animations -- lots of possibilities here. | |
| 43 | tetris | simple 2D version of the game. | taken |
| 44 | haiku writer | random poetry maker, according to the haiku style | |
| 45 | tank | game - two players, each with a fixed-position artillery guns. alternately pick angle and velocity of the next shell to destroy opponent. include weather effects like windspeed, rain, ... (See text, P8.19) | taken |
| 46 | slider game | display an image on a 4x4 grid, but one square is blank. shuffle the squares. must slide the random squares back in order using the blank square as a placeholder. | taken |
| 47 | hanoi (graphical) | graphical version of the tower of hanoi problem | |
| 48 | chinese checkers | difficult? | |
| 49 | sokoban | game - also called garbage collector. you push the garbage bins into the proper slots. a real mind-bender game. look on the net for the game board setups, implement the game. | taken |
| 50 | 2D n-body simulation | put objects (eg planets) in a 2-d plane, simulate forces of gravity. | taken |
| 51 | a graphical display of the cross-product | adjust two vectors and see the resulting cross product | taken |
| 52 | trivial pursuit | ask questions, verify answers, ... | taken |
| 53 | blackjack players | implement splits, aces... | taken |
| 54 | numerical analysis programs | interpolation, quadrature, splines, Bezier curves, ... | |
| 55 | matrix algebra package | matrix operations, inverse, determinant | taken |
| 56 | floating point software | emulate floating-point operations with integers. follow the IEEE floating-point standard. | |
| 57 | solitaire for two | card game, 2 compete to clear their own stack of cards first | taken |
| 58 | S.O.S. | like tic-tac-toe, but bigger board and more winning combinations to check. | taken |
| 59 | othello | game | taken |
| 60 | 3D rendering | draw simple objects in 3D, rotate them. | taken |
| 61 | poker | deal hands, detect a few types of winning hands. | taken |
| 62 | text encryption/decryption | type a string, have the program encode/decode it into another string so it is unreadable by others. come up with a good coding/encryption scheme. | taken |
| 63 | code breaker | have the computer try to break simple codes. for example, one simple code is to replace every letter with the next one up in the alphabet, so all 'a' become 'b', etc. ibwf gvo! | |
| 64 | home page generator | simple HTML/web page generator applet. | taken |
| 65 | maze | taken | |
| 66 | concentration | board game - turn over pairs of tiles, trying to make
a pair match also - two player version | taken |
| 67 | cannon breakout | like arkanoid, but a single non-moving cannon at the bottom. mouse click position determines angle and velocity of the shot, which bounces until it leaves the screen top or bottom, or the ball runs out of energy (loses energy with each bounce). | taken |
| 68 | snakes and ladders | game | taken |
| 69 | go | board game | taken |
| 70 | curve fitting | least squares | taken |
| 71 | whack-a-mole | reflex game | taken |
| 72 | periodic table | display elements. user asks for details about one element, or a molecule such as H2O. | taken |
| 73 | minesweeper | simple version of windows game one element, or a molecule such as H2O. | taken |
| 74 | risk | strategy board game | taken |
| 74 | educational math | simple arithmetic applet to do math drills. gets harder as you make progress. | taken |
| 75 | java tutorial | teaches and tests your java skills. | taken |
| 76 | pegged game | board game with pattern of pegs layed out on a board. one peg can jump an adjacent peg into an open spot on the other side. only horizontal and vertical jumps are permitted. the peg jumped over is removed, until only one peg remains. otherwise, the game is over. | taken |
| 77 | dice game | graphics applet, allows betting, tallies wins and losses. | taken |
| 78 | briscola | italian card game | taken |
| 79 | bank machine | store customers in linked lists, complex transactions, etc. | taken |
| 80 | polynomials | read polynomial terms in a linked list, add/mult/subtract, derivatives/integrate. allow polynomial contain > 1 variable (eg: x and y). perhaps add a "rational polynomial" class to do "divides". do factoring? | taken |
| 81 | graphical calendar | any month, any year, shows some important dates, add personal dates. | taken |
| 82 | crossword | game, different puzzles with clues & solutions. | taken |
| 83 | bingo | game, using applets | taken |
| 84 | library software | checkout books, inventory, late charges, etc. | taken |
| 85 | solitaire | card game | taken |
| CHALLENGING PROJECTS | |||
| D1 | cannibals + missionaries | get all cannibals aross the river without eating each other. | |
| D2 | build process (ps) tree | read the output of Unix 'ps -af' command, display as a tree. | |
| D3 | bridge | card game | |
| D4 | chess | implement valid-move checking, not computer-playing... | taken |
| D5 | sparse matrix algebra package | as idea 55, but it assumes the matrices may be HUGE and MOSTLY ZEROs. as a result, it stores the matrix as a 2-D linked list (rather than as arrays). any array element A[i,j] which equals zero (i.e., most of them) is not stored in the list. |