The good news is that the Check Engine Light came on. That means that a fault code was logged and will help the technician isolate the problem.
The bad news is that you still need to take it to a shop, preferably one that specializes in BMWs. It could be something easy like an ignition coil or spark plug, or it could be more more than that, its really hard to say based on the symptoms given. Find a reputable shop and have it looked at!