Of automatic chicken coops and cocktail machines Engineers learn application-oriented programming
Not only is every plane and every car equipped with it, it can even be found in the occasional toaster: Hardly any product in the physical world can do without software. And it is hard to imagine everyday engineering without it. In the course “Anwendungsorientierte Programmierung für Ingenieure” (“Application-oriented programming for engineers”), mechanical engineering students can realise their own ideas, experience the advantages of agile software development and realise exciting projects. For example, students have developed an automated chicken coop.
“Why do we have to attend such a large computer science module in the mechanical engineering degree programme!?” This is a question that the supervisors of the course “Anwendungorientierte Programmierung für Ingenieur*innen (API)” (Application-oriented programming for engineers), Jan Backhaus, Andreas Dekiert and Finn Hübner, hear regularly. The answer is simple: most products – whether avionics systems, self-driving cars or wind turbines – consist to a large extent of software, which is therefore an important part of engineers’ work. Furthermore, software is an important tool in their everyday work: CAD programmes, simulation tools, measurement data recording and evaluation are indispensable tools.
Engineers are often involved in the software development process. Mastering a programming language can help make life easier by automating many recurring tasks. But efficient planning and execution of a development project in a team – large projects can only be done together and require special consultation and cooperation – has to be learned. And even if you don’t want to do your own programming later on, it’s important to speak the language of programmers in order to be able to define requirements so that others can implement them.
So why not just study computer science? “From my point of view, studying mechanical engineering combines the best of both worlds. On the one hand, we can set ourselves apart with special knowledge of the system environment, for example of air and space vehicles, define the requirements very precisely and at the same time create a tangible physical product with IT,” says Finn Hübner.
Learning through one’s own independent projects
Although the theoretical basics are a mandatory prerequisite, you only learn the skills you need by trying things out and doing them yourself. “Students first look at you panicked when we tell them that they can implement any project they want in the semester-long project portfolio,” Jan Backhaus reports.
“We firmly believe that it’s the most fun and you learn the most when you can freely implement your own ideas, which may even solve problems from your own everyday life. And the creative ideas and feedback at the end of the semester prove us right. Besides, we don’t leave anyone to fend for themselves.”
For example, a group member of the “AutoChick Project” was experiencing the problem that a lot of effort was needed every day in his parents’ chicken coop in order to take good care of the chickens. The project team of Kilian Müske, Lukas Kauschmann, Marten Büttner and Töbe Bischoff took this as an opportunity to develop an automatic monitoring and control system for the birds. Thus, the flap into the outdoor enclosure can be opened and closed time-controlled, the feed level can be monitored live, the egg production can be logged and the chickens can be ejected from the coop with a gentle ejection device (no animal was harmed during the project).
“Working on such a big project as absolute beginners and coding together brought joy and despair closer together than we expected. To tackle a task together, to fail and to keep working on it – until finally all bugs are fixed, definitely motivated us the most as a group, even if it was only a blinking LED,” is how the students describe their work on the project.
“You shouldn’t be afraid of programming, even as a mechanical engineer. Because the API project allows us to enter the subject matter gently. Later, in everyday professional life, it will certainly be easier to work together with the computer scientists.”
The project presented is just one example of the creative variety of project ideas. Everything from small computer games and cocktail machines to programmes for laying out screw connections and flight control software for a self-built drone has been included. An Arduino, a small microcontroller, is usually used. With this, the interlocking of software and hardware can be experienced particularly well in a playful way, for example when a motor is controlled or text is shown on a display through programme code.
Well prepared for the professional world
The application-oriented and practical teaching of skills is also a priority in the hall exercise. Tools and methods that make work easier are tried out together. In “live coding”, for example, messages are exchanged via Morse code, measured values are logged and graphical user interfaces are created. The hardware-related programming language C++ is taught and the advantages of a version control system such as Git are demonstrated. Agile, self-determined working, as is increasingly common in business, is promoted.
Even more future-proof thanks to the new examination regulations
The changeover to the new examination regulations will make the degree programmes even more future-proof in terms of digitalisation. The theoretical basics of computer science and its tools are taught over two semesters right at the beginning of the degree programme. The course “Anwendungorientierte Programmierung für Ingenieure” will in future be assigned to the specialisations in addition to a series of lectures on digitalisation topics. In this way, practical projects can be implemented even better. For example, programmable quadrocopters (Aerospace Engineering specialisation) or model vehicles (Automotive Engineering specialisation) will be available.
It is no longer possible to imagine engineering without computer science. The mechanical engineering degree prepares students for the workplace of the future. By implementing one’s own project ideas in teaching, for example in the course ” Anwendungorientierte Programmierung für Ingenieur*innen” (“Application-oriented programming for engineers”), learning can be particularly practice-oriented.
Text: Finn Hübner