Machines are a great way of teaching systems design.  It’s also a great way to teach this whole concept of backward design or planning which a number of teachers, including myself, use a lot in planning a course.  Backwards design focuses on making sure the goal is clear and creating the parts of the machine from the end of the machine to the beginning.  This also includes test each part of the machine out before you proceed to the system that comes before it.  It does take a while to design a Rube Goldberg Machine but with persistence and planning, the experience is a rewarding and by the end of the experience the students have realized they have undergone the process of engineering.  This becomes their aha moment which is somethings that we want in the education.