At GiantU, there is a common complaint from undergraduate engineering majors that none of their classes cover some of the more practical things employers expect them to know, like Matlab coding. There is also a common complaint among engineering graduate students that there are not enough *teaching* opportunities. A typical TA position in engineering entails a lot of grading, if you're very lucky, a recitation, and generally little student interaction. Unless you end up substituting for your advisor, you are very unlikely to ever lecture. Lab TAs get significantly more student interaction, but again, no lecture experience.
I believe these problems have a common solution: have graduate students prepare and teach mini-courses on the practical topics undergraduates are asking for. Quite frankly, when it comes to most software programs, it's the graduate students who are using them every day and know them inside and out. I acknowledge there are certainly a number of administrative issues in making this work, but both sides could benefit.