The course investigates the use of sensors, embedded in mobile computation devices (e.g. smartphones, smartwatches, etc.), for understanding a user’s context, modelling a user’s behaviour, and devising novel applications based on the acquired information. The course covers the historical, theoretical, and research ground in order to help students understand modern mobile sensing approaches. Further, the course equips students with tools for a practical realisation of mobile sensing. The framework of choice is Android, the most popular mobile operating system. Within Android, the course investigates methods for one-off and periodic sensing of different sensors, data pre-processing, and on-device machine learning. Equipped with the theory, best practices, and the tools needed for application development, the course empowers students to develop their own state-of-the-art mobile sensing solutions. The solutions will be developed in small (two people) teams, will be continuously guided by the instructors, progress will be checked via two in-class presentations, and the final report, in the form of a workshop paper, that will be written for each of the projects. Lectures are accompanied by labs, where students will implement theoretical concepts in practice. Certain labs will be based on the analysis of publicly available mobile sensing research datasets, some will cover Android programming concepts, while some labs will be focused on specific issues that emerge during the students’ project development.