Through a series of three preparatory laboratory assignments, the students will learn the basics of, and obtain practical experience with, the following: embedded software development, robots, sensors and actuators, ad-hoc wireless networking, computer vision, machine learning, and version control systems. The last five weeks are spent on a large design project in which the teams must design and build a system to achieve given complex tasks. In order to achieve these tasks, students need to incorporate knowledge from robotics, sensors and actuators, wireless communication, computer vision and machine learning. With the aim of improving the collaboration and teamwork skills, the students will be introduced to a version control system; a tool they will use throughout the course to track changes in their source code and coordinate their team effort when working on a shared code base. Moreover, they will be encouraged to plan and structure effective meetings based on a set of guidelines that will be covered throughout the course.