Must probably one or more of the bunch of sensor around the engine gives wrong signals. Did you read out the faultcodes? The lambda (O2) sensor is the reason for alternating accelleration but not for black smoke. And a faulty computer would give you more headache. Good luck Michael