I believe there's a fundamental reason there's distance between the two. I'm on to my second degree in Engineering at the moment but I remember back in my undergraduate days.
One thing you realise quickly when you're learning alongside mechanical, civil and electrical engineers is that if you get it wrong, people die. You can't afford to do quick solutions and fix it later. You have to get it right first time or lives could be at stake.
You could kill several people with any one of the dozen or so robots we have downstairs and poorly written software. When you realise that, it changes the way you program.