Sample Projects for APS105S

HIT RELOAD, AS THIS LIST CHANGES OFTEN!!!

This list will grow! Check back often for new ideas!

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.