I am a First Year Physics major at Goshen College. I am supposed to create a final project for my programming class. I am thinking about doing the game Battleship. I realize that I could find the complete code somewhere online but I would really like to write my own.I came up with a list of things I would like to try to implement into the game and a general idea of how I would like the program to run.   

Make four 10 x 10 grids. One with stored locations for the computer's ships, one with the player's ships, and two to be displayed, keeping track of both you and the computer's guesses.
By using format (a,6), user/computer can guess location. 
Tells user what ship they are placing and how big it is. User gives a star
cordinate, then gives either up, left, or right to decide which direction
the ship lies. This is grid one. Grid two is a stored grid of ships. That
will be the computer's grid. The game will keep track of your guesses, 
and put circles where
you miss, x's where you hit and ~'s are water(spaces you haven't guessed.
This is grid three. Grid four is the computer's guesses.
Random computer guess until hit. Then use algorithm to check all adjacent
spaces until the ship is sunk.
Take turns
Display Grids three and four simultaneously. 

I really just don't know where to start. I have a general idea of the logic that I would need to create the game, I just don't know where to jump in and start defining programs. 
Thanks!
Your algorithm looks perfectly fine. As you aim for this to be implemented in Python, I'd start with creating simple PyGame (or other library of your choice) application, that only draws two of your grids. That will help you debug your other functionality, once you'll see it better than array dump in the console.
Alternatively, you may implement everything text-mode based just for now, and later enhance it with graphics — making your application more like "query-response", printing two grids with plain print() and asking for move with raw_input() — that simple.
Battleship in Python