In this paper we present an introductory course on programming for about 190 mechanical engineering, design, and product-development engineering students. These students use 3D-modeling software to develop physical products. Programming is one of the tools in their toolbox, and writing algorithms can both improve the efficiency of their work and transform their work process. At the heart of the course, in line with CDIO Standard4, is a focus on real-world applications in an introductory programming course. Understanding why and how programming is a useful tool is considered to be of equal importance to learning fundamental programming concepts. Here we present and discuss the course and how we plan to change it in the future. We report the results of student evaluations and our own experiences. Our results, thus far, show that the applied approach has been instrumental in turning programming into a relevant topic for these non-programming engineering students. Currently, however, there is also a relatively long period of frustration and students experience an inability to use documentation and online resources. Moving forward, we plan to add a crash course with a traditional focus to the first week of the class, before starting on the applied work. It is our belief that this will make students feel more secure, and as a result allow them to be more self-sufficient in overcoming the practical challenges they face in the course.