Some of the major challenges that the humanity faces are related to energy. These include the global warming, which is a direct consequence of the kind and the amount of energy we use, but also limitations related to transport, heating and cooling, agriculture, medicine, and other areas. Information and communication technology (ICT) has recently gained focus due to its potential for optimizing energy consumption. For instance, in a “smart” building Internet of things (IoT) sensors could provide detailed occupancy and temperature information, which could then be used for efficient fine-grain cooling and heating. However, ICTs have also came into focus due to an increasing amount of energy they consume. Blockchain, large AI models, and other computing technology-related advances already make ICTs one of the fastest growing consumers of global energy. Diving down to the level of a single device, energy consumption is crucial as computing becomes ubiquitous. Battery-powered devices’ utility is directly related to the way the battery power is used.
In this class we will build the basic knowledge of energy constrained device programming. More specifically, we will:
Two practical projects will be executed: one on Raspberry PIs, the other on Android smartphones. The programming language of choice is C for Raspberry PI (with some Python for data analysis) and Kotlin (no previous knowledge needed) for Android. The class is taught in English.