I wrote some AI strategy for this project on another thread.
Writing the AI that gets the computer to make a good move will be the hardest part. You will need to write code that will do 2 major things:
1) Create all possible board combinations that the computer can create on the next move. Since tic-tac-toe is a rather simple game you have the advantage of not having to create a perfect system. Computers are fast enough that you can compare all possible board combinations without bogging the computer down. The number of possible boards you would need to compare would be at most 9 (the very first move) and at least 1 (the very last move).
2) Rank these possible board combinations based on a value system to determine which move is the best move.
This wikipedia page has a good ranking system:
1. Complete three in a row (WIN).
2. Block their opponent from completing three in a row.
3. Threaten a win with two possible completions in two rows.
4. Avoid a configuration in which the opponent can force the win.
5. Threaten a win with a possible completion (two in a row).
6. Prevent the opponent from getting two in a row.
7. Play in the middle box.
8. Play in a corner box.
9. Play on a side box.
I would rank a board in which the next move wins as 10,000, a board in which the next move loses as -1, and rank the rest of the boards using values you give to the list above. After you have ranked all the boards and found the best move (highest value), you need to make the computer take that move. You can then toss away the temporary boards you created since we got that information we wanted for that round (the best move).