This subject is an introduction to mobile application development, including programming paradigms, models, technologies and platforms. The unique considerations for programming with mobile devices will be studied, including application architectures, mobile user interface issues, context-aware computing, the use of mobile sensing, middleware, mobile data management, and programming with wireless connections. Development of a range of mobile and wearable form factors will be discussed, from smartphones, to tablets of varying sizes. You will select one major platform as their specialisation to develop applications and implement their major programming assignment.