Try some of the following in addition to those already suggested - all free:
Sculpture Garden at the National Gallery of Art - great outdoor space with a fountain and cafe.
Take a ride out to Haines Point (East Potomac Park). There is lots of room to run, watch the planes take off from DCA and a metal sculpture (The Awakening) that kids love.
Bureau of Printing and Engraving - free tickets required (peak). Ticket distribution starts at 8AM daily (get there early to get a spot).
US Postal Museum - located next to Union Station - have lunch at the food court, then walk next door for the museum. Cool vehicles and other exhibits kids enjoy.
The Washington Monument requires tickets if you want to go up, which might be cool for your son. Distribution starts at 8:30AM, but line forms early and from my experience, during peak times, there are always disappointed people.
Lots more to do, but with a 4 yr old, you have to watch the boredom factor.
The best paid attraction is the DC Ducks (www.dcducks.com
You'll have a car, so you can find a cheap suburban hotel in MD or VA and take the metro into the city. You don't want to drive and find parking in town during the week...trust me.