Mobile robots face an unpredictable, possibly dynamically changing environment and thus provide a challenging design platform. In this course students develop and improve their mechanical, electronics and coding skills using a holistic educational philosophy based on experiential learning and iterative design principles. The course combines lectures, laboratory experimentation and robotics design challenges to guide students into becoming better robotics designers. Topics covered include microcontroller programming using the programming language C, sensor data acquisition, transducer and actuator control.