Computer Science trains students in thought processes. Since quite a few companies use a limited number of tools and frameworks, most CS graduates can jump in and be productive pretty quickly, given the proper on-site training. Problems arise when employers expect graduates to be immediately productive working with unfamiliar tools in an unfamiliar environment.
Several undergraduate programs offer engineering practicum programs in which students are paired with organizations to work on open source software. These opportunities can help to familiarize students with some of the engineering practices in the industry. Every company is a bit different and development practices change often.