Ubiquitous computing aims to embed computers into everyday objects to make them invisible. It was envisioned by Mark Weiser as computers spreading into everything around us. Key aspects are devices interacting and coordinating without needing direct human interaction. Challenges include retrofitting environments for ubiquitous computing and ensuring impromptu interoperability and privacy between connected devices.