One of the things I love about this project is that is clearly demonstrates that both water and air take up space -- they have volume and can be displaced. Too often kids think of air as "nothing," or as "empty." This shows that to be untrue.
Also, it displays the importance of density: the bottle can be filled with water or air, but only with the denser water does it sink. You're filling the same exact space, but one is much heavier (i.e. it has more mass), and it is therefore a denser material.
All that said, let's get to the build! You'll need the following materials: a disposable water bottle, a drinking straw with a flexible neck, waterproof tape (I like duct tape), pennies or washers, rubber bands and scissors.
Start by using the scissors to place three small holes in the bottle along one side -- by the neck, in the middle and near the base. These will let the water in the submarine.
Next attach the straw. Place the end with the flexible bit into the neck of the bottle and secure with tape. Be sure that the straw is attached to the topside of the bottle, opposite the holes. Also be sure that the piece inside the bottle is aimed up, to allow the maximum amount of air to escape as the bottle fills with water. Bend the long part of the straw up, so that is can be used to add air. Use tape to completely seal the opening of the bottle.
To create ballast, make a stack of pennies and wrap them in duct tape. I'd suggest starting with three stacks of six pennies and adjusting as needed. Use rubber bands to secure the pennies to the underside of the submarine.
This is a great area of experimentation and exploration. How many pennies are need to get your submarine to fully submerge? Is it even possible to get the submarine to fully submerge? Does it matter where you attach the pennies along the body? Do you need to place an equal number of pennies in each stack? What happens if you don't?
Once you're happy with the number and placement of the pennies, dry off the submarine and tape the stacks of pennies on. It'll be easier to play with. Have fun!