IMO the things that are most difficult for students of computer science to pick up during their education relate directly to the development process it self, especially things like team development and working with customers. My suggestion in light of that is to find real projects for them to work on. By this I mean that you should seek out a "clients" (could be friends, family, a group on campus, the university itself, local businesses, etc) that have a software need. For me the best learning experiences have always been the real life ones.
Dealing with Customers
A crucial part of the projects would be to have the students actually communicate with the "client" to make sure that the development process is headed in the direction they need. This would help the students learn to communicate with customers. My first web development job was with a small company where on occasion I had to learn this communication process. I found that after having worked directly with the customer on these occasions my ability to develop with the customer's needs always in mind greatly improved even when I wasn't in direct communication with them afterwards. Also it is sometimes difficult to communicate accurately when one person is highly technical and the other is not. This is an important skill to have and is often something that can only be obtained in real life situations.
Learning to Develop with a Team
This is an ability that can only be learned by experience. Programmers will almost always need to adjust their normal development patterns when working with others on the same project. They will need to learn how to communicate with other members of their team as well as coordinate their efforts. I would highly recommend using some sort of version control system in this process.
There's many other aspects to the process that could be explored in the manner you're looking at but these would be the most important in my eyes. I'm sure you were thinking more along the technical lines but the reality is that most programmers if they're even slightly good at what they do can teach themselves the more technical things as they're needed. I would focus on the things that aren't as easily self taught.