For starters, I'd clean the IAC on the side of the throttle body. Ensure the TB itself is clean. Maybe test the TPS to ensure it's not giving a false reading.